From 5e0c03614d18a61ae3e724aed7d5056502c3125c Mon Sep 17 00:00:00 2001 From: mazzma12 <23187108+mazzma12@users.noreply.github.com> Date: Mon, 27 Apr 2026 12:05:54 +0000 Subject: [PATCH] Update python SDK v0.15.28 --- .../__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..c4ed24c2d4fd2146d2eca694dab67e89743e0082 100644 GIT binary patch delta 20 acmcblc1ewUIWI340}x0AzTe30E(`!Wrv)_t 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..693ff2cbb43f878372f7f90d95cd7daf4f5f82be 100644 GIT binary patch delta 20 acmbQFG)akjIWI340}yZozTe2rE(icHr3705 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..56ddd71b509297dca705770d0b6cbc8d0972a900 100644 GIT binary patch delta 20 acmca$bHRptIWI340}yZozTe30DhB{Q3I$dG 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..dc04893644c44fdbffd8b5e5ea6191609e6a2329 100644 GIT binary patch delta 2258 zcmZWqX;_rk73RIed^7A289)sR?g(KSmI5wGHCi=k6pdQ7IwBclD$L*vSa@pG)JLmz zY0NcVaRDK5Ngjj64{`)Wj6^{bw42Cr2EXfuKV$GwJXq1oqpICN|d{sn`;h# zrK-2OvJSv-b=8qd#zwpI8y}f?;TkV>PJI-EOdZBqS1Zn5(c!YX{z5tMH$I}djX}?&zb=A7ZTvbA@Znc4Zb2|FxO6wfobYCBa%$pF zQWKM-6BEs`=7h-D*wolqzAPz}Z@OHLP+opLl+XL78Bsjt$~KsJ^A&+)ZogWJk=*~< z2Y6Mjy!Hf`Ac1X|&5LiGKnBmcS%z%xbxV~c*4-*XA)j&kdn{Ea-Ps9crC#fABdx`SjLp*rGma9Rn2e)NhNihhO^k5%#L5|6&5$ujes~P3qt8 zt!GNDCbNRSdn}qCYI}s!YQ@7G-~#X4aRt}ZrybMX4YxIj0=>fdSJC^_CyWVi49)Z0wJQj<>lHczVJpP zO2kGVlwyxa@!OhJX#^k5Jd{vxJ`N9*a zVrDPQfw!pcg+uVCMZFOUm}ujR7zhlcno#@<1Pww7R?w$|ut@fVUK)ZWVB7x*JsKhV zTq-JuVkauZ%t%zCO87;|O6o*S6v|OAY%k#=8pNn*RN$<56piETf`NzaGts#iR71HW zt8+~j75;LdhvRS*cf~tq8S*}b$77OCY1jO%d~;(o?M#9I3p8qMkv|JTWJ^X2SWlyf z^S@Jl(=Aj+DJ$xuQ)B)Cw^i)3C)fJl)wS9UysCZxm3kW951 zNHbz4`DNpb4%O7+z)i*iJb$e6q7z{{rI-ARaoy5Xcu69Z>jKD0(VnlF^&QC)L8<5Chwki8BCsrw|pd^4D_^4-fF7< z1bvOlr<$#UYO65~G?GxrWZ(nU7@^>0`o0c!9oysEU7VQv0`sQd)nk&}CSP8$p$Faj z919^gY0hyNv~ZaXV8EATYs8;C(L|HZ<1@Vy<|ji;qs}^*8IAu29y-HX&E(JMa5bia z%3H7+xIxJ`5CXJP+D-gihjuEt1E*eL{u29Ggm+*$UpAzVxVjjD;(CYN<0DNliqIzc z$V~jL9|hk-f5=GC4599{)#gO93Y=( z2y>TlqrsNSSq5kfeqez&oz}5xuwDVY>z!cQp=X4&DsA@F(V c_Wz%EUvJl}kN)GD29Y~}1=H9e>`CZ90Nni-L;wH) 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-04-27T12:05:44+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..3511434083853f8ff47c944d209a80c6256d0b4b 100644 GIT binary patch delta 19 ZcmX@kc$|@YIWI340}yZozMsgw2LLaz1qT2C 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..3252fe1baa5522a384382f0597ce3b1e382de488 100644 GIT binary patch delta 27 hcmaEt@-BsYIWI340}x0AzTe25!pvx~xq$hf9sqkZ2!Q|q 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..1e3f978bce5198542ddcc2f791ce710bb8fe16da 100644 GIT binary patch delta 27 hcmeAw>nh`3&dbZi00a_&?>BNkVP>@0{DE1@8~|@A2m$~A 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..c1c121ede8f8b84a080d1ba9d35448d7122bccb1 100644 GIT binary patch delta 27 hcmewx`Ztt&IWI340}x0AzTe2bgPGA{^AToCbpU<^2weaG 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..f6fdaecbacdf93d698b3b8e1e0d515cc84161c2b 100644 GIT binary patch delta 27 hcmX>jb4G@HIWI340}x0AzTe2r&&+7CS(@398vtM~1`_}P 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..660b4ec14efd978374e8ee612438ebc343294054 100644 GIT binary patch delta 27 hcmbOqIzNY5;5Q2s{7) delta 27 hcmbOqIzNmc}$XfIWI340}x0AzTe1Q&%|i4xtqzF3jkyo2Iv3) delta 27 hcmX>mc}$XfIWI340}xDhe7=#po{7BPmF*90hwqo{@0RUP$1~C8t delta 27 hcmZp%Z?WfI&dbZi00fgApKs*WV`enlY{l#)0{~yR29f{( diff --git a/crowdsec_service_api/services/__pycache__/metrics.cpython-311.pyc b/crowdsec_service_api/services/__pycache__/metrics.cpython-311.pyc index 319ef0f78ff8bcef5b7ef765fe96db88daad312a..b91cdf97bc55dbe89ff497368a91b4f5ed8f943f 100644 GIT binary patch delta 27 hcmZ1>vOvO;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..348560d5d2b935d64a82338c55cc3fef02c8ea0d 100644 GIT binary patch delta 27 hcmdllyI+=jIWI340}x0AzTe3GjET`=^CzaW+yH6R2txn> 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..836da8d83205e20d05a360244bf9f1fc38059ff6 100644 GIT binary patch delta 27 hcmcaDc3X^lIWI340}x0AzTe1wnTgS2^L?fo4ghS52lD^` 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..385cbcf65589af1cc3e469a12043382640a17e8b 100644 GIT binary patch delta 27 hcmdn3vs;IIIWI340}x0AzTe1Q&CF=Axt)275CCRl2Xg=b 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..d72d64f32b68ebf9430cdbc10787b2779d836d00 100644 GIT binary patch delta 27 hcmaD6@FIYFIWI340}x0AzTe1wmYLCF^G)V{6##mH2&Mo4 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..ae7babf 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.28") def list_allowlists( self, diff --git a/crowdsec_service_api/services/blocklists.py b/crowdsec_service_api/services/blocklists.py index 65bf0d6..fb37c58 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.28") def get_blocklists( self, diff --git a/crowdsec_service_api/services/cves.py b/crowdsec_service_api/services/cves.py index b0d0745..f99d2e7 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.28") def get_cves( self, diff --git a/crowdsec_service_api/services/decisions.py b/crowdsec_service_api/services/decisions.py index 077a642..f78409f 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.28") def get_decisions( self, diff --git a/crowdsec_service_api/services/fingerprints.py b/crowdsec_service_api/services/fingerprints.py index 25d9ac6..b762383 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.28") def get_fingerprint_rules( self, diff --git a/crowdsec_service_api/services/hub.py b/crowdsec_service_api/services/hub.py index d488520..e02c9da 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.28") def get_index( self, diff --git a/crowdsec_service_api/services/info.py b/crowdsec_service_api/services/info.py index 9137d39..2979300 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.28") def get_info( self, diff --git a/crowdsec_service_api/services/integrations.py b/crowdsec_service_api/services/integrations.py index d5e2589..e23eab3 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.28") def get_integrations( self, diff --git a/crowdsec_service_api/services/metrics.py b/crowdsec_service_api/services/metrics.py index df84939..939594d 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.28") def get_metrics_remediation( self, diff --git a/crowdsec_service_api/services/products.py b/crowdsec_service_api/services/products.py index 02e32df..9a4fd5b 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.28") def get_products( self, diff --git a/crowdsec_service_api/services/tracker_events.py b/crowdsec_service_api/services/tracker_events.py index eddace0..576b0c3 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.28") 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..4f9ec12 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.28") def get_tags( self, diff --git a/crowdsec_service_api/services/vendors.py b/crowdsec_service_api/services/vendors.py index c5ae5fb..6799da8 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.28") def get_vendors( self, diff --git a/public-openapi.json b/public-openapi.json index 0492c9e..ea09839 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.7", "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..5d3fdd8 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.28" license = { text = "MIT" } authors = [ { name="crowdsec", email="info@crowdsec.net" } diff --git a/uv.lock b/uv.lock index 613efa8..682a642 100644 --- a/uv.lock +++ b/uv.lock @@ -26,30 +26,30 @@ wheels = [ [[package]] name = "botocore" -version = "1.42.92" +version = "1.42.96" 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/61/77/2c333622a1d47cf5bf73cdcab0cb6c92addafbef2ec05f81b9f75687d9e5/botocore-1.42.96.tar.gz", hash = "sha256:75b3b841ffacaa944f645196655a21ca777591dd8911e732bfb6614545af0250", size = 15263344, upload-time = "2026-04-24T19:47:05.283Z" } 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/45/56/152c3a859ca1b9d77ed16deac3cf81682013677c68cf5715698781fc81bd/botocore-1.42.96-py3-none-any.whl", hash = "sha256:db2c3e2006628be6fde81a24124a6563c363d6982fb92728837cf174bad9d98a", size = 14945920, upload-time = "2026-04-24T19:47:00.323Z" }, ] [[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.28" 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]]