crowdsec-tracker-api 1.102.3__py3-none-any.whl → 1.102.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,6 +38,7 @@ __all__ = [
38
38
  'Classification',
39
39
  'Classifications',
40
40
  'EntityType',
41
+ 'ExploitationPhase',
41
42
  'GetCVEIPsResponsePage',
42
43
  'GetCVEResponse',
43
44
  'GetCVESubscribedIntegrationsResponsePage',
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: <stdin>
3
- # timestamp: 2026-01-29T17:02:55+00:00
3
+ # timestamp: 2026-02-06T10:14:41+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -144,73 +144,6 @@ class CvssScore(RootModelSdk[float]):
144
144
  ]
145
145
 
146
146
 
147
- class CVEResponseBase(BaseModelSdk):
148
- id: Annotated[str, Field(description='ID of the CVE', title='Id')]
149
- name: Annotated[str, Field(description='Name of the CVE', title='Name')]
150
- title: Annotated[str, Field(description='Title of the CVE', title='Title')]
151
- affected_components: Annotated[
152
- List[AffectedComponent],
153
- Field(description='List of affected components', title='Affected Components'),
154
- ]
155
- crowdsec_score: Annotated[
156
- int,
157
- Field(
158
- description='Live Exploit Tracker score of the CVE',
159
- ge=0,
160
- le=10,
161
- title='Crowdsec Score',
162
- ),
163
- ]
164
- opportunity_score: Annotated[
165
- Optional[int],
166
- Field(
167
- description="Opportunity score indicating if it's an opportunistic(0) or targeted(5) attack (between 0-5)",
168
- ge=0,
169
- le=5,
170
- title='Opportunity Score',
171
- ),
172
- ] = 0
173
- momentum_score: Annotated[
174
- Optional[int],
175
- Field(
176
- description="Momentum score indicating the vulnerability's trendiness based on signal comparison with the previous month. Higher scores (4-5) indicate significantly more signals this month than last month's average, while lower scores (0-1) indicate declining activity (between 0-5)",
177
- ge=0,
178
- le=5,
179
- title='Momentum Score',
180
- ),
181
- ] = 0
182
- first_seen: Annotated[
183
- Optional[datetime], Field(description='First seen date', title='First Seen')
184
- ] = None
185
- last_seen: Annotated[
186
- Optional[datetime], Field(description='Last seen date', title='Last Seen')
187
- ] = None
188
- nb_ips: Annotated[
189
- int, Field(description='Number of unique IPs affected', ge=0, title='Nb Ips')
190
- ]
191
- published_date: Annotated[
192
- datetime, Field(description='Published date of the CVE', title='Published Date')
193
- ]
194
- cvss_score: Annotated[
195
- Optional[CvssScore],
196
- Field(description='CVSS score of the CVE', title='Cvss Score'),
197
- ] = None
198
- has_public_exploit: Annotated[
199
- bool,
200
- Field(
201
- description='Indicates if there is a public exploit for the CVE',
202
- title='Has Public Exploit',
203
- ),
204
- ]
205
- rule_release_date: Annotated[
206
- Optional[datetime],
207
- Field(
208
- description='Release date of the associated detection rule',
209
- title='Rule Release Date',
210
- ),
211
- ] = None
212
-
213
-
214
147
  class CVEsubscription(BaseModelSdk):
215
148
  id: Annotated[str, Field(title='Id')]
216
149
 
@@ -252,6 +185,19 @@ class EntityType(StrEnum):
252
185
  LOG_PROCESSOR = 'log_processor'
253
186
 
254
187
 
188
+ class ExploitationPhase(BaseModelSdk):
189
+ name: Annotated[
190
+ str, Field(description='Name of the exploitation phase', title='Name')
191
+ ]
192
+ label: Annotated[
193
+ str, Field(description='Label of the exploitation phase', title='Label')
194
+ ]
195
+ description: Annotated[
196
+ str,
197
+ Field(description='Description of the exploitation phase', title='Description'),
198
+ ]
199
+
200
+
255
201
  class GetCVEResponse(BaseModelSdk):
256
202
  id: Annotated[str, Field(description='ID of the CVE', title='Id')]
257
203
  name: Annotated[str, Field(description='Name of the CVE', title='Name')]
@@ -317,6 +263,9 @@ class GetCVEResponse(BaseModelSdk):
317
263
  title='Rule Release Date',
318
264
  ),
319
265
  ] = None
266
+ exploitation_phase: Annotated[
267
+ ExploitationPhase, Field(description='Current exploitation phase of the CVE')
268
+ ]
320
269
  references: Annotated[
321
270
  List[str],
322
271
  Field(description='List of references for the CVE', title='References'),
@@ -342,15 +291,6 @@ class GetCVEsFilterBy(StrEnum):
342
291
  IS_PUBLIC = 'is_public'
343
292
 
344
293
 
345
- class GetCVEsResponsePage(BaseModelSdk):
346
- items: Annotated[List[CVEResponseBase], Field(title='Items')]
347
- total: Annotated[int, Field(ge=0, title='Total')]
348
- page: Annotated[int, Field(ge=1, title='Page')]
349
- size: Annotated[int, Field(ge=1, title='Size')]
350
- pages: Annotated[int, Field(ge=0, title='Pages')]
351
- links: Links
352
-
353
-
354
294
  class GetCVEsSortBy(StrEnum):
355
295
  RULE_RELEASE_DATE = 'rule_release_date'
356
296
  TRENDING = 'trending'
@@ -923,6 +863,76 @@ class IntegrationUpdateResponse(BaseModelSdk):
923
863
  ] = None
924
864
 
925
865
 
866
+ class CVEResponseBase(BaseModelSdk):
867
+ id: Annotated[str, Field(description='ID of the CVE', title='Id')]
868
+ name: Annotated[str, Field(description='Name of the CVE', title='Name')]
869
+ title: Annotated[str, Field(description='Title of the CVE', title='Title')]
870
+ affected_components: Annotated[
871
+ List[AffectedComponent],
872
+ Field(description='List of affected components', title='Affected Components'),
873
+ ]
874
+ crowdsec_score: Annotated[
875
+ int,
876
+ Field(
877
+ description='Live Exploit Tracker score of the CVE',
878
+ ge=0,
879
+ le=10,
880
+ title='Crowdsec Score',
881
+ ),
882
+ ]
883
+ opportunity_score: Annotated[
884
+ Optional[int],
885
+ Field(
886
+ description="Opportunity score indicating if it's an opportunistic(0) or targeted(5) attack (between 0-5)",
887
+ ge=0,
888
+ le=5,
889
+ title='Opportunity Score',
890
+ ),
891
+ ] = 0
892
+ momentum_score: Annotated[
893
+ Optional[int],
894
+ Field(
895
+ description="Momentum score indicating the vulnerability's trendiness based on signal comparison with the previous month. Higher scores (4-5) indicate significantly more signals this month than last month's average, while lower scores (0-1) indicate declining activity (between 0-5)",
896
+ ge=0,
897
+ le=5,
898
+ title='Momentum Score',
899
+ ),
900
+ ] = 0
901
+ first_seen: Annotated[
902
+ Optional[datetime], Field(description='First seen date', title='First Seen')
903
+ ] = None
904
+ last_seen: Annotated[
905
+ Optional[datetime], Field(description='Last seen date', title='Last Seen')
906
+ ] = None
907
+ nb_ips: Annotated[
908
+ int, Field(description='Number of unique IPs affected', ge=0, title='Nb Ips')
909
+ ]
910
+ published_date: Annotated[
911
+ datetime, Field(description='Published date of the CVE', title='Published Date')
912
+ ]
913
+ cvss_score: Annotated[
914
+ Optional[CvssScore],
915
+ Field(description='CVSS score of the CVE', title='Cvss Score'),
916
+ ] = None
917
+ has_public_exploit: Annotated[
918
+ bool,
919
+ Field(
920
+ description='Indicates if there is a public exploit for the CVE',
921
+ title='Has Public Exploit',
922
+ ),
923
+ ]
924
+ rule_release_date: Annotated[
925
+ Optional[datetime],
926
+ Field(
927
+ description='Release date of the associated detection rule',
928
+ title='Rule Release Date',
929
+ ),
930
+ ] = None
931
+ exploitation_phase: Annotated[
932
+ ExploitationPhase, Field(description='Current exploitation phase of the CVE')
933
+ ]
934
+
935
+
926
936
  class GetCVESubscribedIntegrationsResponsePage(BaseModelSdk):
927
937
  items: Annotated[List[IntegrationResponse], Field(title='Items')]
928
938
  total: Annotated[int, Field(ge=0, title='Total')]
@@ -932,6 +942,15 @@ class GetCVESubscribedIntegrationsResponsePage(BaseModelSdk):
932
942
  links: Links
933
943
 
934
944
 
945
+ class GetCVEsResponsePage(BaseModelSdk):
946
+ items: Annotated[List[CVEResponseBase], Field(title='Items')]
947
+ total: Annotated[int, Field(ge=0, title='Total')]
948
+ page: Annotated[int, Field(ge=1, title='Page')]
949
+ size: Annotated[int, Field(ge=1, title='Size')]
950
+ pages: Annotated[int, Field(ge=0, title='Pages')]
951
+ links: Links
952
+
953
+
935
954
  class IPItem(BaseModelSdk):
936
955
  ip: Annotated[str, Field(description='IP address', title='Ip')]
937
956
  reputation: Annotated[
@@ -11,7 +11,7 @@ from ..http_client import HttpClient
11
11
 
12
12
  class Cves(Service):
13
13
  def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None:
14
- super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_tracker_api/1.102.3")
14
+ super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_tracker_api/1.102.4")
15
15
 
16
16
  def get_cves(
17
17
  self,
@@ -11,7 +11,7 @@ from ..http_client import HttpClient
11
11
 
12
12
  class Integrations(Service):
13
13
  def __init__(self, auth: Auth, base_url: str = "https://admin.api.crowdsec.net/v1") -> None:
14
- super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_tracker_api/1.102.3")
14
+ super().__init__(base_url=base_url, auth=auth, user_agent="crowdsec_tracker_api/1.102.4")
15
15
 
16
16
  def get_integrations(
17
17
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crowdsec_tracker_api
3
- Version: 1.102.3
3
+ Version: 1.102.4
4
4
  Summary: This is the API to manage Crowdsec Live Exploit Tracker service
5
5
  Author-email: crowdsec <info@crowdsec.net>
6
6
  License: MIT
@@ -0,0 +1,12 @@
1
+ crowdsec_tracker_api/__init__.py,sha256=Az2RS49xlD39TLGTPl7EPFU-H1LvxPV9nvnRn7mFumU,1447
2
+ crowdsec_tracker_api/base_model.py,sha256=z6dOHObB9zrdrBvt1sEymqWkTo2jKVo3tj0rtQmah9A,1978
3
+ crowdsec_tracker_api/http_client.py,sha256=HdEn7rolYXCSVZDy2l5AejO9mYdHVjuXWAPt_5W7xT0,4794
4
+ crowdsec_tracker_api/models.py,sha256=zmirqSTUPvjIa1UC7K8bnxP8tpMYBg9FPpjxity1hwE,34730
5
+ crowdsec_tracker_api/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ crowdsec_tracker_api/services/cves.py,sha256=QJUBLZwaURbNfgpw2SDuorQHQ9Uofm6X1QaWbMQcUqs,6253
7
+ crowdsec_tracker_api/services/integrations.py,sha256=7WFvwoEAFpWJvoP5v7Rth8Kh2csv6Kw56ISfmFxPo6g,5485
8
+ crowdsec_tracker_api-1.102.4.dist-info/licenses/LICENSE,sha256=j45pumtJxZpjQgYGZmkayxGnQpy6a28TqtJvTzxoPRE,1064
9
+ crowdsec_tracker_api-1.102.4.dist-info/METADATA,sha256=cO5c5y1_vKH6NAAmdOXMVtyC8I-eZ8fVJ46bmlTmt8Q,1207
10
+ crowdsec_tracker_api-1.102.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
11
+ crowdsec_tracker_api-1.102.4.dist-info/top_level.txt,sha256=PjzuJQNS-E2cYLihw-evV3MrsY9OWAb8QNKEFEg1hhE,21
12
+ crowdsec_tracker_api-1.102.4.dist-info/RECORD,,
@@ -1,12 +0,0 @@
1
- crowdsec_tracker_api/__init__.py,sha256=42XsiTFcmamQkuNRPN9PNAKT9X_3cQJotEhS3yfoy84,1422
2
- crowdsec_tracker_api/base_model.py,sha256=z6dOHObB9zrdrBvt1sEymqWkTo2jKVo3tj0rtQmah9A,1978
3
- crowdsec_tracker_api/http_client.py,sha256=HdEn7rolYXCSVZDy2l5AejO9mYdHVjuXWAPt_5W7xT0,4794
4
- crowdsec_tracker_api/models.py,sha256=r4LIgSCpol4u9oKHynN0RbJhw3KDUgmpkD1dq_yKAEs,34084
5
- crowdsec_tracker_api/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- crowdsec_tracker_api/services/cves.py,sha256=KTvOl5TCilmse2e6siYtSUsEP7JUElxzn3fhRdRdcN4,6253
7
- crowdsec_tracker_api/services/integrations.py,sha256=y7tp32-1T92JoqKMZdsl3i7q2kBFoY5U2CDiRMMtkto,5485
8
- crowdsec_tracker_api-1.102.3.dist-info/licenses/LICENSE,sha256=j45pumtJxZpjQgYGZmkayxGnQpy6a28TqtJvTzxoPRE,1064
9
- crowdsec_tracker_api-1.102.3.dist-info/METADATA,sha256=14uIcMAX46umeCfigBuaJy4XbkF5hwiIp4dV9K1lBrA,1207
10
- crowdsec_tracker_api-1.102.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
11
- crowdsec_tracker_api-1.102.3.dist-info/top_level.txt,sha256=PjzuJQNS-E2cYLihw-evV3MrsY9OWAb8QNKEFEg1hhE,21
12
- crowdsec_tracker_api-1.102.3.dist-info/RECORD,,