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.
- crowdsec_tracker_api/__init__.py +1 -0
- crowdsec_tracker_api/models.py +96 -77
- crowdsec_tracker_api/services/cves.py +1 -1
- crowdsec_tracker_api/services/integrations.py +1 -1
- {crowdsec_tracker_api-1.102.3.dist-info → crowdsec_tracker_api-1.102.4.dist-info}/METADATA +1 -1
- crowdsec_tracker_api-1.102.4.dist-info/RECORD +12 -0
- crowdsec_tracker_api-1.102.3.dist-info/RECORD +0 -12
- {crowdsec_tracker_api-1.102.3.dist-info → crowdsec_tracker_api-1.102.4.dist-info}/WHEEL +0 -0
- {crowdsec_tracker_api-1.102.3.dist-info → crowdsec_tracker_api-1.102.4.dist-info}/licenses/LICENSE +0 -0
- {crowdsec_tracker_api-1.102.3.dist-info → crowdsec_tracker_api-1.102.4.dist-info}/top_level.txt +0 -0
crowdsec_tracker_api/__init__.py
CHANGED
crowdsec_tracker_api/models.py
CHANGED
|
@@ -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,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.
|
|
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,
|
|
@@ -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,,
|
|
File without changes
|
{crowdsec_tracker_api-1.102.3.dist-info → crowdsec_tracker_api-1.102.4.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{crowdsec_tracker_api-1.102.3.dist-info → crowdsec_tracker_api-1.102.4.dist-info}/top_level.txt
RENAMED
|
File without changes
|