Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified crowdsec_service_api/__pycache__/__init__.cpython-311.pyc
Binary file not shown.
Binary file modified crowdsec_service_api/__pycache__/base_model.cpython-311.pyc
Binary file not shown.
Binary file modified crowdsec_service_api/__pycache__/http_client.cpython-311.pyc
Binary file not shown.
Binary file modified crowdsec_service_api/__pycache__/models.cpython-311.pyc
Binary file not shown.
7 changes: 6 additions & 1 deletion crowdsec_service_api/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# generated by datamodel-codegen:
# filename: <stdin>
# timestamp: 2026-04-21T09:21:23+00:00
# timestamp: 2026-04-21T09:59:01+00:00

from __future__ import annotations

Expand Down Expand Up @@ -1017,34 +1017,39 @@ 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
defender_countries: Annotated[
Optional[Dict[str, int]],
Field(
description='Defender country distribution (country code → count)',
examples=[{'BE': 13, 'FR': 22, 'NL': 22}],
title='Defender Countries',
),
] = None
industry_types: Annotated[
Optional[Dict[str, int]],
Field(
description='Industry type distribution (type → count)',
examples=[{'commerce': 65, 'government': 5, 'non_profit': 30}],
title='Industry Types',
),
] = None
industry_risk_profiles: Annotated[
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
attacker_objectives: Annotated[
Optional[Dict[str, int]],
Field(
description='Attacker objective distribution (objective → count)',
examples=[{'data_exfiltration': 10, 'infrastructure_takeover': 90}],
title='Attacker Objectives',
),
] = None
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified crowdsec_service_api/services/__pycache__/cves.cpython-311.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified crowdsec_service_api/services/__pycache__/hub.cpython-311.pyc
Binary file not shown.
Binary file modified crowdsec_service_api/services/__pycache__/info.cpython-311.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/allowlists.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def list_allowlists(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/blocklists.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_blocklists(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/cves.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_cves(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/decisions.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_decisions(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/fingerprints.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_fingerprint_rules(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/hub.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_index(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_info(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/integrations.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_integrations(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_metrics_remediation(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/products.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_products(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/tracker_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_exploitation_phase_change_events(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/tracker_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_tags(
self,
Expand Down
2 changes: 1 addition & 1 deletion crowdsec_service_api/services/vendors.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.27")

def get_vendors(
self,
Expand Down
46 changes: 40 additions & 6 deletions public-openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"info": {
"title": "Service API",
"description": "This is the API to manage Crowdsec services",
"version": "1.70.4",
"version": "1.70.5",
"contact": {
"name": "CrowdSec",
"url": "https://crowdsec.net",
Expand Down Expand Up @@ -13402,15 +13402,29 @@
},
"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": {
"type": "integer"
},
"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": {
Expand All @@ -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": {
Expand All @@ -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": {
Expand All @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "crowdsec_service_api"
version = "v0.15.26"
version = "v0.15.27"
license = { text = "MIT" }
authors = [
{ name="crowdsec", email="info@crowdsec.net" }
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.