From b828f6eabbe17e427151304105e96611f77dd03f Mon Sep 17 00:00:00 2001 From: AlteredCoder <64792091+AlteredCoder@users.noreply.github.com> Date: Mon, 4 May 2026 12:56:25 +0000 Subject: [PATCH] Update python SDK v0.15.29 --- .../__pycache__/__init__.cpython-311.pyc | Bin 4946 -> 4946 bytes .../__pycache__/base_model.cpython-311.pyc | Bin 4370 -> 4370 bytes .../__pycache__/http_client.cpython-311.pyc | Bin 7760 -> 7760 bytes .../__pycache__/models.cpython-311.pyc | Bin 149055 -> 149348 bytes crowdsec_service_api/models.py | 9 +++- .../__pycache__/__init__.cpython-311.pyc | Bin 199 -> 199 bytes .../__pycache__/allowlists.cpython-311.pyc | Bin 12910 -> 12910 bytes .../__pycache__/blocklists.cpython-311.pyc | Bin 15114 -> 15114 bytes .../services/__pycache__/cves.cpython-311.pyc | Bin 11005 -> 11005 bytes .../__pycache__/decisions.cpython-311.pyc | Bin 3660 -> 3660 bytes .../__pycache__/fingerprints.cpython-311.pyc | Bin 10911 -> 10911 bytes .../services/__pycache__/hub.cpython-311.pyc | Bin 3270 -> 3270 bytes .../services/__pycache__/info.cpython-311.pyc | Bin 2028 -> 2028 bytes .../__pycache__/integrations.cpython-311.pyc | Bin 8068 -> 8068 bytes .../__pycache__/metrics.cpython-311.pyc | Bin 2600 -> 2600 bytes .../__pycache__/products.cpython-311.pyc | Bin 3775 -> 3775 bytes .../tracker_events.cpython-311.pyc | Bin 2907 -> 2907 bytes .../__pycache__/tracker_tags.cpython-311.pyc | Bin 5691 -> 5691 bytes .../__pycache__/vendors.cpython-311.pyc | Bin 10344 -> 10344 bytes crowdsec_service_api/services/allowlists.py | 2 +- crowdsec_service_api/services/blocklists.py | 2 +- crowdsec_service_api/services/cves.py | 2 +- crowdsec_service_api/services/decisions.py | 2 +- crowdsec_service_api/services/fingerprints.py | 2 +- crowdsec_service_api/services/hub.py | 2 +- crowdsec_service_api/services/info.py | 2 +- crowdsec_service_api/services/integrations.py | 2 +- crowdsec_service_api/services/metrics.py | 2 +- crowdsec_service_api/services/products.py | 2 +- .../services/tracker_events.py | 2 +- crowdsec_service_api/services/tracker_tags.py | 2 +- crowdsec_service_api/services/vendors.py | 2 +- public-openapi.json | 48 +++++++++++++++--- pyproject.toml | 2 +- uv.lock | 26 +++++----- 35 files changed, 75 insertions(+), 36 deletions(-) diff --git a/crowdsec_service_api/__pycache__/__init__.cpython-311.pyc b/crowdsec_service_api/__pycache__/__init__.cpython-311.pyc index 163833128b3d84b09ebdf0faece86a7e81a98355..f59aade77f4f77a8f197d1a12f9c87c95acc920d 100644 GIT binary patch delta 20 acmcblc1ewUIWI340}y0S|FMzVT^ImAy#?0* delta 20 acmcblc1ewUIWI340}xDhe7=#}T^Im9dQ diff --git a/crowdsec_service_api/__pycache__/base_model.cpython-311.pyc b/crowdsec_service_api/__pycache__/base_model.cpython-311.pyc index 20476fbbd38df73fef49d875e9b27b16023ef750..8e0ee62d41b453548a03397f92637631bd188299 100644 GIT binary patch delta 20 acmbQFG)akjIWI340}upG|FMyqT@U~?bp-PO delta 20 acmbQFG)akjIWI340}wPgKHtdAE(icKWdyqb diff --git a/crowdsec_service_api/__pycache__/http_client.cpython-311.pyc b/crowdsec_service_api/__pycache__/http_client.cpython-311.pyc index d4fd3942ca303cfa7c5b4da3e0ae730f52566507..0451b5943f8950d7fa34f6104921cf6a08ff5bc5 100644 GIT binary patch delta 20 acmca$bHRptIWI340}upG|FMzVRSp0_+6C?a delta 20 acmca$bHRptIWI340}wPgKHtdgDhB{S$_2In diff --git a/crowdsec_service_api/__pycache__/models.cpython-311.pyc b/crowdsec_service_api/__pycache__/models.cpython-311.pyc index aa2975956d24551ca8e4a277f2124e4e271e9716..441e40bd0c8a28aad8015750f63f9f96a2364858 100644 GIT binary patch delta 2258 zcmZWqX;_rk73RIed^7A289)sRDz1cOSPHl#)o9hEQ8a4RDgqf~3e4aPPl@oe_7%OYv#)p-tSd`cv+Qmh-G1FPHwivIdb+N2929CC@Ca5Av|Qz zYp=?aIYyqQO_isZ_&4Y9=c;46IZ1qJb>e^VMvv8a8oFD-Z2q@`S@KBoYGkY=9(FKd z)U)x@?KwFXN4iC_0%O|dM@ux95uQuC~Ko1}EBS#24PRA-(eKRqwsVM)nL&9Z3e zOLwA{Xz`)MT z{!(Rcbww?J5$eh#`xzVK%3D4%@xs*}>fE|;2CKUI*e?MGKY6?u3)Rf}p}=BZamK`V zHB@0GPirj2I?hhiVFN#YVhgtN^e>*`1D^WjKJ4cHC-}VZQ!UIqG@r>8&`) zzdC&l=hTWbS9G|nt~{(>#4B51<`=FAByii+GK}KB z*FM0@>i%nwfr%2>hB>^Xr4i{o^F}$cxyMaamRNhU2!(v+t?#i!oqT&clofi}qg=kY zGf3_6*ZyD|_2PkE_Wb_maOX2xx1d;k*g6&{;Yr_?U>Cpi?L+KVPyNjVwolI^7n#(5 z++D|%8ck+7fA?4fKh*XRr__oEIly_|x8n+~sZTm)xEgM05CvkLo&~B49vNKWqZW1^ z0tTt^Px}B7VxSNDz2ArczV^rEh~YiD%8yKdvf_cx;*V`(jLhbgZpQs@M?r$o~y zu8@;U6K#4_B13Ff!0|guG{6V2(F7w_0EKkM4SHaexZsXztQG4$Pz)i$J>})vEWYqW z14_jPFO*@Ii1$Vtc9YCxIar0lLpuD$wrKPb&A!-xYRdCNDr1Kgo|R%IH-AI}O=7qS zMYtrIOlZbcQ5k^ExF?bW@iE%PlR#`kr`Q^V578w?_rxh*ox#P$5yIrBzkF33Pxyky zBr&TO=E74{^}-?eQbBJ7118$=Ji>r5st(4lz=jyaSvUCeB`Kkl&=;{loX820gt0U< z6fXf2L{>jM#x!B+4`LR>Pos<(fEHMHnxqo)MZiFmVmW;}5CyU)^uk~)2HW~G^ym=T z=Q6Q>D7K?Q%o>LMs1!covXWX+9gaPy6V?}S5%pqp1S)VwJdD6`cHY24_L}HyB&wiX zlGQnvRLo9WULXJ+!(7d_)&$AO~$7r;&YNs)G!`L8QW^)^VXQC>=oS8V>|sR83&khPJ@n-%0ub*ucO@6a9uOJ z_AhP^8b1>O3jrnqCMg4E(Py;A)4yHf}c9Y;jEiaOJEe3{(%z3iou{1Fi4u%A( zNk_5~v&bhKr*){JW;<>$=I8!Xl@}cd(J8&;UySpnrowZ_8Y!{>t92Mb2MckZVH174 z2vZFxryrN$0mFT2TY=v|d8CoDWYJ;dScx5gk$S#^@kS-U!^P#h){Wb+gS6=03|hF1dNANivNqr^?r5UP=kS?c3GtC3rc-Av%#0>{12>&vjb`#?bhrxB zKzo|83TUB(76bvUlzaof)}ftBZ^NNin6Jb>5}_Sf#+MH6Bd#ujzqsBZ_xMN?j3T&6 zJ~EU3=tF^b(I0YB!|!1dFp^f^#~?7fua>EBKLT%RYQs2&h4g%foDx2wk$=Z&0}hba zQ-rw6xDjAWof76JvuPH47a>SA+(sYDb7R$7 zxJVDS3T&L8d}ac9WR0FKcrp)Qvbf>J+Ax#8@@C)3=Z%j0vSna4iIZz4Tl%4C*kE`) caQXkwyRWuu)`$ObO^3)GzyfL9VD>oppJ-(l<^TWy delta 1826 zcmZXUdr+0f8OHtXfpZSXH40)V1PlhRaJVQ!YlI=O?Zk{$lhjs0$i%UxgJMn^Ynp^~ zyvIn<9kW6NMG~1hh610>3L*xzD%t=#ru7P5&_X4MV!S1i?$MdFGyVSfzWw&SJ@4~A zyPbtT`#)dimeS%pnsdvl3y$QT4Gxq*QcJCcc zky&NRR~lThts(W1Z>D^4U%YJES0r6sPKL>CJ44j;Rs8Q#?idwG_zxDjb>~QVr*S0_ z);s$HAl6#CYi@*}B2j@1K>n(&l%w)) zTf4o*YtW$nWLZ6DWbMgXoBb>E>;77mdo#p3{?$j&FJJxV4e_0qoOQYwVSRmiC^)4! zTf!5v^lW!nLdr|7NomPRY01fPNv_1i#ED~Ft~8fRzCSTS?mbr}!n{>YB12`t`F3Ju z_Ju8sm)~AcBuUv`PO6;HQNa}JOvio1^FO#cW#6Tf%$5f)HFTsh^PQc= zyeZ$iddL2@w}CprgWTGB?GNxrE4(WmHpsc%4Q#T8|ND6;mh-NcQ6UGe-=@;)?+HPC z<}Ksj39+8)Efnmrs`_G~+4{%LJVdLv>hKrCWLvYh%2c1N`_(=8nbCeQQ7hsB4s5yb$pi&!TD`A&95zG<(s*9f>SJ>-JLiaAuVB>UL2no=p zazZKQlzI?K2dCB9VSG%NdMk{b^r-0JY~zkPFq}_#pcXtyix{x0lyG+7Q0?I~Fj#;5 zBO@gl|zQ>xNv!X}_m)aO@!qfHi5tw;Br;48D zJ~Pw@F=%qsi7|w#*(15cYn5rw0Qu_2v25jieJ+-_V1=GJn)hI{Hl7aHqRx!vQ`2t2 zICfL5lE)kT^{Qh$RWz!?I8JjwEr_Rv<7&8z!?fy)E?O~-S10lfooYvtN#CWXCNslk z?=g7YT^{1~u@n>{(5WuD2vH?-3Dt$E#KTbCnC2N$gwyo)NP&9sPnZrddjDi{1o1j5 zoje=4x-gSCJ4^MxpL0tX%+=Gd*&W+Vpj#mm636PRGg&QY(RnX(!i#fy%CC7&AoPm4 zEHFn+^<vFr$M$_G5|Sx)h4>U_={d#!k2=l^yE_VVUeyX zV~Lr+0^~`#buD(Gm;`Ja;l!|X6KtJeXs=%!?`VG5|Pl8Nn{vcU!ZAzftgG2qki`M)=&3)i8@3`@Z)Q<@Sam2vkPf6Co0=le1n)2{FsQ> z{e&Abbi2P81urN^pt!+H`fi};hb( -# timestamp: 2026-04-21T09:21:23+00:00 +# timestamp: 2026-05-04T12:56:11+00:00 from __future__ import annotations @@ -1017,6 +1017,7 @@ class ThreatContext(BaseModelSdk): Optional[Dict[str, int]], Field( description='Attacker country distribution (country code → count)', + examples=[{'FR': 18, 'NL': 23, 'US': 36}], title='Attacker Countries', ), ] = None @@ -1024,6 +1025,7 @@ class ThreatContext(BaseModelSdk): Optional[Dict[str, int]], Field( description='Defender country distribution (country code → count)', + examples=[{'BE': 13, 'FR': 22, 'NL': 22}], title='Defender Countries', ), ] = None @@ -1031,6 +1033,7 @@ class ThreatContext(BaseModelSdk): Optional[Dict[str, int]], Field( description='Industry type distribution (type → count)', + examples=[{'commerce': 65, 'government': 5, 'non_profit': 30}], title='Industry Types', ), ] = None @@ -1038,6 +1041,7 @@ class ThreatContext(BaseModelSdk): Optional[Dict[str, int]], Field( description='Industry risk profile distribution (profile → count)', + examples=[{'SOHO': 25, 'public_service': 10, 'technology_business': 65}], title='Industry Risk Profiles', ), ] = None @@ -1045,6 +1049,7 @@ class ThreatContext(BaseModelSdk): Optional[Dict[str, int]], Field( description='Attacker objective distribution (objective → count)', + examples=[{'data_exfiltration': 10, 'infrastructure_takeover': 90}], title='Attacker Objectives', ), ] = None @@ -1306,7 +1311,7 @@ class BlocklistsUploadBlocklistContentQueryParameters(BaseModelSdk): Optional[datetime], Field( description='Blocklist expiration', - examples=['2026-04-17T08:43:44.302226+00:00'], + examples=['2026-04-24T08:57:58.552024+00:00'], title='Expiration', ), ] = None diff --git a/crowdsec_service_api/services/__pycache__/__init__.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/__init__.cpython-311.pyc index c6a195485a921a398d492e3c22dc5b9a5c1e8b3e..1fb34ebcb573c58208f064c6efcf1698b5efe525 100644 GIT binary patch delta 19 ZcmX@kc$|@YIWI340}upG|1pt!4*)Xh1)l%_ delta 19 ZcmX@kc$|@YIWI340}wPgKA*_F2LLh=1!n*N diff --git a/crowdsec_service_api/services/__pycache__/allowlists.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/allowlists.cpython-311.pyc index 6ea5649913ece2d4af0471a95e6407b7f34cbbfa..c5b5f51c49ae507a82a2337a455265fd124e6e9b 100644 GIT binary patch delta 27 hcmaEt@-BsYIWI340}y0S|FMxfg_+TEa{==|JphBg2_ygj delta 27 hcmaEt@-BsYIWI340}xDhe7=!8g_+T8a{==|Jph2R2;u+$ diff --git a/crowdsec_service_api/services/__pycache__/blocklists.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/blocklists.cpython-311.pyc index 3e7126a554c5292b40196089aaca9ec996dcb5c8..05dfacaf26897978e13b68a566471c6a47b21d9e 100644 GIT binary patch delta 27 hcmeAw>nh`3&dbZi00i07e{AG_!pvy7`2(|*IRJOF2&Di3 delta 27 hcmeAw>nh`3&dbZi00fgApKs)T!pvy4`2(|*IRJF02x9;M diff --git a/crowdsec_service_api/services/__pycache__/cves.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/cves.cpython-311.pyc index 9a076996aa71f12300f767d7e98a2145c0fd4f9b..88513788c6b9306384da589d26c5274b081f5078 100644 GIT binary patch delta 27 hcmewx`Ztt&IWI340}y0S|FMyK2Q#DP<|E9O>Hvn12><{9 delta 27 hcmewx`Ztt&IWI340}xDhe7=!;2Q#DD<|E9O>Hvd-2)+OS diff --git a/crowdsec_service_api/services/__pycache__/decisions.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/decisions.cpython-311.pyc index 1941bf870849533a837c2268c5684c33a52ba68b..65dd893359d4217613a5f9a65963138b5a094ca7 100644 GIT binary patch delta 27 hcmX>jb4G@HIWI340}y0S|FMyqpPA8evoy0IHvnk32DShI delta 27 hcmX>jb4G@HIWI340}xDhe7=#JpPA8Yvoy0IHvna<26O-b diff --git a/crowdsec_service_api/services/__pycache__/fingerprints.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/fingerprints.cpython-311.pyc index 100a01d31e4050bf875ca352f04a4837bf25920c..3d26ec5320d0a65e0d2f7b1c9dde8a7d38270a82 100644 GIT binary patch delta 27 hcmbOqIzNmc}$XfIWI340}y0S|FMy~o{7mc}$XfIWI340}xDhe7=#po{7vO;Px62gCpX delta 27 hcmZ1>vO;Pn?2Z8_q diff --git a/crowdsec_service_api/services/__pycache__/products.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/products.cpython-311.pyc index a5ee5ccc09ac3d37543c8da613a58feac6453b0b..4c03c9df86a162f3484381d99c1bfd947f73ea0d 100644 GIT binary patch delta 27 hcmdllyI+=jIWI340}y0S|FMz#855)B=1)v#xdC!s2<89) delta 27 hcmdllyI+=jIWI340}xDhe7=$U855(~=1)v#xdCrd2&4c2 diff --git a/crowdsec_service_api/services/__pycache__/tracker_events.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/tracker_events.cpython-311.pyc index 8bdc48e8456376c27f977642a666be33841d3948..536ba978d855c097c5b67817619bbef74fc4489e 100644 GIT binary patch delta 27 hcmcaDc3X^lIWI340}y0S|FMz#G83ca=KD-F8~}9`2$lc< delta 27 hcmcaDc3X^lIWI340}xDhe7=$UG83cO=KD-F8~}0%2vh(7 diff --git a/crowdsec_service_api/services/__pycache__/tracker_tags.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/tracker_tags.cpython-311.pyc index 0b93d873302031eef7a6f1bc852dabce0e225960..1336fa56faf80663c3c85e5ac46dd947fd021782 100644 GIT binary patch delta 27 hcmdn3vs;IIIWI340}y0S|FMy~nwimZb35}EApmae2o?YU delta 27 hcmdn3vs;IIIWI340}xDhe7=#pnwimTb35}EApmRP2h;!n diff --git a/crowdsec_service_api/services/__pycache__/vendors.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/vendors.cpython-311.pyc index fc8e30251a829f7d23890d38306f61a942afd774..76635934bb73e2b489dcaa7ca0782c00fa02efb7 100644 GIT binary patch delta 27 hcmaD6@FIYFIWI340}y0S|FMz#EHk6!=9|p@Dgc8E2}u9| delta 27 hcmaD6@FIYFIWI340}xDhe7=$UEHk6o=9|p@Dgb}~2?qcG diff --git a/crowdsec_service_api/services/allowlists.py b/crowdsec_service_api/services/allowlists.py index 8076a5e..0025708 100644 --- a/crowdsec_service_api/services/allowlists.py +++ b/crowdsec_service_api/services/allowlists.py @@ -11,7 +11,7 @@ class Allowlists(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def list_allowlists( self, diff --git a/crowdsec_service_api/services/blocklists.py b/crowdsec_service_api/services/blocklists.py index 65bf0d6..6eb9ce8 100644 --- a/crowdsec_service_api/services/blocklists.py +++ b/crowdsec_service_api/services/blocklists.py @@ -11,7 +11,7 @@ class Blocklists(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_blocklists( self, diff --git a/crowdsec_service_api/services/cves.py b/crowdsec_service_api/services/cves.py index b0d0745..c5d88d1 100644 --- a/crowdsec_service_api/services/cves.py +++ b/crowdsec_service_api/services/cves.py @@ -11,7 +11,7 @@ class Cves(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_cves( self, diff --git a/crowdsec_service_api/services/decisions.py b/crowdsec_service_api/services/decisions.py index 077a642..b50a280 100644 --- a/crowdsec_service_api/services/decisions.py +++ b/crowdsec_service_api/services/decisions.py @@ -11,7 +11,7 @@ class Decisions(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_decisions( self, diff --git a/crowdsec_service_api/services/fingerprints.py b/crowdsec_service_api/services/fingerprints.py index 25d9ac6..f73b65f 100644 --- a/crowdsec_service_api/services/fingerprints.py +++ b/crowdsec_service_api/services/fingerprints.py @@ -11,7 +11,7 @@ class Fingerprints(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_fingerprint_rules( self, diff --git a/crowdsec_service_api/services/hub.py b/crowdsec_service_api/services/hub.py index d488520..b8d780b 100644 --- a/crowdsec_service_api/services/hub.py +++ b/crowdsec_service_api/services/hub.py @@ -11,7 +11,7 @@ class Hub(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_index( self, diff --git a/crowdsec_service_api/services/info.py b/crowdsec_service_api/services/info.py index 9137d39..c8143d4 100644 --- a/crowdsec_service_api/services/info.py +++ b/crowdsec_service_api/services/info.py @@ -11,7 +11,7 @@ class Info(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_info( self, diff --git a/crowdsec_service_api/services/integrations.py b/crowdsec_service_api/services/integrations.py index d5e2589..2be1607 100644 --- a/crowdsec_service_api/services/integrations.py +++ b/crowdsec_service_api/services/integrations.py @@ -11,7 +11,7 @@ class Integrations(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_integrations( self, diff --git a/crowdsec_service_api/services/metrics.py b/crowdsec_service_api/services/metrics.py index df84939..40f9b2f 100644 --- a/crowdsec_service_api/services/metrics.py +++ b/crowdsec_service_api/services/metrics.py @@ -11,7 +11,7 @@ class Metrics(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_metrics_remediation( self, diff --git a/crowdsec_service_api/services/products.py b/crowdsec_service_api/services/products.py index 02e32df..a4ff39c 100644 --- a/crowdsec_service_api/services/products.py +++ b/crowdsec_service_api/services/products.py @@ -11,7 +11,7 @@ class Products(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_products( self, diff --git a/crowdsec_service_api/services/tracker_events.py b/crowdsec_service_api/services/tracker_events.py index eddace0..432c50b 100644 --- a/crowdsec_service_api/services/tracker_events.py +++ b/crowdsec_service_api/services/tracker_events.py @@ -11,7 +11,7 @@ class TrackerEvents(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_exploitation_phase_change_events( self, diff --git a/crowdsec_service_api/services/tracker_tags.py b/crowdsec_service_api/services/tracker_tags.py index 5485b3f..de92876 100644 --- a/crowdsec_service_api/services/tracker_tags.py +++ b/crowdsec_service_api/services/tracker_tags.py @@ -11,7 +11,7 @@ class TrackerTags(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_tags( self, diff --git a/crowdsec_service_api/services/vendors.py b/crowdsec_service_api/services/vendors.py index c5ae5fb..df61c92 100644 --- a/crowdsec_service_api/services/vendors.py +++ b/crowdsec_service_api/services/vendors.py @@ -11,7 +11,7 @@ class Vendors(Service): def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None: - super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.26") + super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_service_api/v0.15.29") def get_vendors( self, diff --git a/public-openapi.json b/public-openapi.json index 0492c9e..e38cb14 100644 --- a/public-openapi.json +++ b/public-openapi.json @@ -3,7 +3,7 @@ "info": { "title": "Service API", "description": "This is the API to manage Crowdsec services", - "version": "1.70.4", + "version": "1.70.8", "contact": { "name": "CrowdSec", "url": "https://crowdsec.net", @@ -1243,7 +1243,7 @@ ], "description": "Blocklist expiration", "examples": [ - "2026-04-17T08:43:44.302226+00:00" + "2026-04-24T08:57:58.552024+00:00" ], "title": "Expiration" }, @@ -13402,7 +13402,14 @@ }, "type": "object", "title": "Attacker Countries", - "description": "Attacker country distribution (country code \u2192 count)" + "description": "Attacker country distribution (country code \u2192 count)", + "examples": [ + { + "FR": 18, + "NL": 23, + "US": 36 + } + ] }, "defender_countries": { "additionalProperties": { @@ -13410,7 +13417,14 @@ }, "type": "object", "title": "Defender Countries", - "description": "Defender country distribution (country code \u2192 count)" + "description": "Defender country distribution (country code \u2192 count)", + "examples": [ + { + "BE": 13, + "FR": 22, + "NL": 22 + } + ] }, "industry_types": { "additionalProperties": { @@ -13421,7 +13435,14 @@ }, "type": "object", "title": "Industry Types", - "description": "Industry type distribution (type \u2192 count)" + "description": "Industry type distribution (type \u2192 count)", + "examples": [ + { + "commerce": 65, + "government": 5, + "non_profit": 30 + } + ] }, "industry_risk_profiles": { "additionalProperties": { @@ -13432,7 +13453,14 @@ }, "type": "object", "title": "Industry Risk Profiles", - "description": "Industry risk profile distribution (profile \u2192 count)" + "description": "Industry risk profile distribution (profile \u2192 count)", + "examples": [ + { + "SOHO": 25, + "public_service": 10, + "technology_business": 65 + } + ] }, "attacker_objectives": { "additionalProperties": { @@ -13443,7 +13471,13 @@ }, "type": "object", "title": "Attacker Objectives", - "description": "Attacker objective distribution (objective \u2192 count)" + "description": "Attacker objective distribution (objective \u2192 count)", + "examples": [ + { + "data_exfiltration": 10, + "infrastructure_takeover": 90 + } + ] } }, "type": "object", diff --git a/pyproject.toml b/pyproject.toml index a0f93d8..00f20f8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "crowdsec_service_api" -version = "v0.15.26" +version = "v0.15.29" license = { text = "MIT" } authors = [ { name="crowdsec", email="info@crowdsec.net" } diff --git a/uv.lock b/uv.lock index 613efa8..a8e88a8 100644 --- a/uv.lock +++ b/uv.lock @@ -26,30 +26,30 @@ wheels = [ [[package]] name = "botocore" -version = "1.42.92" +version = "1.43.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jmespath" }, { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d5/0a/6785ce224ba4483b3e1282d959e1dd2c2898823336f013464c43cb154036/botocore-1.42.92.tar.gz", hash = "sha256:f1193d3057a2d0267353d7ef4e136be37ea432336d097fcb1951fae566ca3a22", size = 15235239, upload-time = "2026-04-20T19:38:05.085Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/b0/65d4c85f16367fb6147d391652d0c386f24b029536f7026e7b98740166cd/botocore-1.43.2.tar.gz", hash = "sha256:7b2ec87b6d0720bff920451ce930e71c2a99cdea48d0eaa66ccf0b21ea747e03", size = 15301186, upload-time = "2026-05-01T19:42:59.748Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/b8/41d4d7ba75a4fb4f11362e96371a12695bc6ba0bb7cc680137db0213f97e/botocore-1.42.92-py3-none-any.whl", hash = "sha256:09ddefddbb1565ceef4b44b4b6e61b1ca5f12701d1494ecc85c1133d1b1e81fb", size = 14916275, upload-time = "2026-04-20T19:38:01.684Z" }, + { url = "https://files.pythonhosted.org/packages/bb/52/f57ded73f1527a18e0712281eb49c4ae240038bb4dc7083fd288b4adc811/botocore-1.43.2-py3-none-any.whl", hash = "sha256:b823454d751a1c24bb403b5b07ab65007689654abb21787df923684e0743976c", size = 14982693, upload-time = "2026-05-01T19:42:54.602Z" }, ] [[package]] name = "certifi" -version = "2026.2.25" +version = "2026.4.22" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +sdist = { url = "https://files.pythonhosted.org/packages/25/ee/6caf7a40c36a1220410afe15a1cc64993a1f864871f698c0f93acb72842a/certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580", size = 137077, upload-time = "2026-04-22T11:26:11.191Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, + { url = "https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a", size = 135707, upload-time = "2026-04-22T11:26:09.372Z" }, ] [[package]] name = "crowdsec-service-api" -version = "0.15.26" +version = "0.15.29" source = { editable = "." } dependencies = [ { name = "botocore" }, @@ -126,11 +126,11 @@ wheels = [ [[package]] name = "idna" -version = "3.11" +version = "3.13" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ce/cc/762dfb036166873f0059f3b7de4565e1b5bc3d6f28a414c13da27e442f99/idna-3.13.tar.gz", hash = "sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242", size = 194210, upload-time = "2026-04-22T16:42:42.314Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, + { url = "https://files.pythonhosted.org/packages/5d/13/ad7d7ca3808a898b4612b6fe93cde56b53f3034dcde235acb1f0e1df24c6/idna-3.13-py3-none-any.whl", hash = "sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3", size = 68629, upload-time = "2026-04-22T16:42:40.909Z" }, ] [[package]] @@ -320,11 +320,11 @@ wheels = [ [[package]] name = "tzdata" -version = "2026.1" +version = "2026.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/19/f5/cd531b2d15a671a40c0f66cf06bc3570a12cd56eef98960068ebbad1bf5a/tzdata-2026.1.tar.gz", hash = "sha256:67658a1903c75917309e753fdc349ac0efd8c27db7a0cb406a25be4840f87f98", size = 197639, upload-time = "2026-04-03T11:25:22.002Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/19/1b9b0e29f30c6d35cb345486df41110984ea67ae69dddbc0e8a100999493/tzdata-2026.2.tar.gz", hash = "sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10", size = 198254, upload-time = "2026-04-24T15:22:08.651Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/70/d460bd685a170790ec89317e9bd33047988e4bce507b831f5db771e142de/tzdata-2026.1-py2.py3-none-any.whl", hash = "sha256:4b1d2be7ac37ceafd7327b961aa3a54e467efbdb563a23655fbfe0d39cfc42a9", size = 348952, upload-time = "2026-04-03T11:25:20.313Z" }, + { url = "https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl", hash = "sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7", size = 349321, upload-time = "2026-04-24T15:22:05.876Z" }, ] [[package]]