crowdsec-tracker-api 1.102.2__tar.gz → 1.102.4__tar.gz
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.
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/PKG-INFO +1 -1
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/__init__.py +1 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/models.py +105 -68
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/services/cves.py +1 -1
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/services/integrations.py +1 -1
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api.egg-info/PKG-INFO +1 -1
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/pyproject.toml +1 -1
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/LICENSE +0 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/README.md +0 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/base_model.py +0 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/http_client.py +0 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/services/__init__.py +0 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api.egg-info/SOURCES.txt +0 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api.egg-info/dependency_links.txt +0 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api.egg-info/requires.txt +0 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api.egg-info/top_level.txt +0 -0
- {crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/setup.cfg +0 -0
{crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/models.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: <stdin>
|
|
3
|
-
# timestamp: 2026-
|
|
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[
|
{crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/services/cves.py
RENAMED
|
@@ -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.
|
|
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.
|
|
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,
|
|
File without changes
|
|
File without changes
|
{crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/base_model.py
RENAMED
|
File without changes
|
{crowdsec_tracker_api-1.102.2 → crowdsec_tracker_api-1.102.4}/crowdsec_tracker_api/http_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|