crowdsec-tracker-api 1.102.2__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-29T15:05:21+00:00
3
+ # timestamp: 2026-02-06T10:14:41+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -144,64 +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
- first_seen: Annotated[
174
- Optional[datetime], Field(description='First seen date', title='First Seen')
175
- ] = None
176
- last_seen: Annotated[
177
- Optional[datetime], Field(description='Last seen date', title='Last Seen')
178
- ] = None
179
- nb_ips: Annotated[
180
- int, Field(description='Number of unique IPs affected', ge=0, title='Nb Ips')
181
- ]
182
- published_date: Annotated[
183
- datetime, Field(description='Published date of the CVE', title='Published Date')
184
- ]
185
- cvss_score: Annotated[
186
- Optional[CvssScore],
187
- Field(description='CVSS score of the CVE', title='Cvss Score'),
188
- ] = None
189
- has_public_exploit: Annotated[
190
- bool,
191
- Field(
192
- description='Indicates if there is a public exploit for the CVE',
193
- title='Has Public Exploit',
194
- ),
195
- ]
196
- rule_release_date: Annotated[
197
- Optional[datetime],
198
- Field(
199
- description='Release date of the associated detection rule',
200
- title='Rule Release Date',
201
- ),
202
- ] = None
203
-
204
-
205
147
  class CVEsubscription(BaseModelSdk):
206
148
  id: Annotated[str, Field(title='Id')]
207
149
 
@@ -243,6 +185,19 @@ class EntityType(StrEnum):
243
185
  LOG_PROCESSOR = 'log_processor'
244
186
 
245
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
+
246
201
  class GetCVEResponse(BaseModelSdk):
247
202
  id: Annotated[str, Field(description='ID of the CVE', title='Id')]
248
203
  name: Annotated[str, Field(description='Name of the CVE', title='Name')]
@@ -269,6 +224,15 @@ class GetCVEResponse(BaseModelSdk):
269
224
  title='Opportunity Score',
270
225
  ),
271
226
  ] = 0
227
+ momentum_score: Annotated[
228
+ Optional[int],
229
+ Field(
230
+ 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)",
231
+ ge=0,
232
+ le=5,
233
+ title='Momentum Score',
234
+ ),
235
+ ] = 0
272
236
  first_seen: Annotated[
273
237
  Optional[datetime], Field(description='First seen date', title='First Seen')
274
238
  ] = None
@@ -299,6 +263,9 @@ class GetCVEResponse(BaseModelSdk):
299
263
  title='Rule Release Date',
300
264
  ),
301
265
  ] = None
266
+ exploitation_phase: Annotated[
267
+ ExploitationPhase, Field(description='Current exploitation phase of the CVE')
268
+ ]
302
269
  references: Annotated[
303
270
  List[str],
304
271
  Field(description='List of references for the CVE', title='References'),
@@ -324,15 +291,6 @@ class GetCVEsFilterBy(StrEnum):
324
291
  IS_PUBLIC = 'is_public'
325
292
 
326
293
 
327
- class GetCVEsResponsePage(BaseModelSdk):
328
- items: Annotated[List[CVEResponseBase], Field(title='Items')]
329
- total: Annotated[int, Field(ge=0, title='Total')]
330
- page: Annotated[int, Field(ge=1, title='Page')]
331
- size: Annotated[int, Field(ge=1, title='Size')]
332
- pages: Annotated[int, Field(ge=0, title='Pages')]
333
- links: Links
334
-
335
-
336
294
  class GetCVEsSortBy(StrEnum):
337
295
  RULE_RELEASE_DATE = 'rule_release_date'
338
296
  TRENDING = 'trending'
@@ -905,6 +863,76 @@ class IntegrationUpdateResponse(BaseModelSdk):
905
863
  ] = None
906
864
 
907
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
+
908
936
  class GetCVESubscribedIntegrationsResponsePage(BaseModelSdk):
909
937
  items: Annotated[List[IntegrationResponse], Field(title='Items')]
910
938
  total: Annotated[int, Field(ge=0, title='Total')]
@@ -914,6 +942,15 @@ class GetCVESubscribedIntegrationsResponsePage(BaseModelSdk):
914
942
  links: Links
915
943
 
916
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
+
917
954
  class IPItem(BaseModelSdk):
918
955
  ip: Annotated[str, Field(description='IP address', title='Ip')]
919
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.2")
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.2")
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.2
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=DtfeJQQSZSC50xEuNoOh6q1uUrfAMBB036hl7oQTQ-A,33166
5
- crowdsec_tracker_api/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- crowdsec_tracker_api/services/cves.py,sha256=_x6Y92XvTIca3KeKoR75ITr_tfVocGO4xcVHgS5Ze4U,6253
7
- crowdsec_tracker_api/services/integrations.py,sha256=bGRD7O6cO7buCuh7T0KIDm0UddgBwzwTmUkixc8KPd4,5485
8
- crowdsec_tracker_api-1.102.2.dist-info/licenses/LICENSE,sha256=j45pumtJxZpjQgYGZmkayxGnQpy6a28TqtJvTzxoPRE,1064
9
- crowdsec_tracker_api-1.102.2.dist-info/METADATA,sha256=eGzCFKr150T92yTI72jd515srhLlqRl_lvQSVGzI1FM,1207
10
- crowdsec_tracker_api-1.102.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
11
- crowdsec_tracker_api-1.102.2.dist-info/top_level.txt,sha256=PjzuJQNS-E2cYLihw-evV3MrsY9OWAb8QNKEFEg1hhE,21
12
- crowdsec_tracker_api-1.102.2.dist-info/RECORD,,