add missing remediation-statuses endpoint

This commit is contained in:
Peter Annabel 2025-08-06 15:11:23 -05:00
parent c45bf96447
commit 339b0fea2a
4 changed files with 47 additions and 1 deletions

View File

@ -1,6 +1,6 @@
[project]
name = "pyironscales"
version = "0.1.1"
version = "0.1.2"
authors = [
{ name="Peter Annabel", email="peter.annabel@gmail.com" },
]

View File

@ -1,4 +1,5 @@
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
from pyironscales.endpoints.ironscales.CompanyIdStatsRemediationStatusesEndpoint import CompanyIdStatsRemediationStatusesEndpoint
from pyironscales.interfaces import (
IGettable,
)
@ -16,6 +17,7 @@ class CompanyIdStatsEndpoint(
def __init__(self, client, parent_endpoint=None) -> None:
IronscalesEndpoint.__init__(self, client, "stats/", parent_endpoint=parent_endpoint)
IGettable.__init__(self, CompanyStatisticsAndLicense)
self.remediation_statuses = self._register_child_endpoint(CompanyIdStatsRemediationStatusesEndpoint(client, parent_endpoint=self))
def get(
self,

View File

@ -0,0 +1,38 @@
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
from pyironscales.interfaces import (
IGettable,
)
from pyironscales.models.ironscales import CompanyStatsRemediationStatuses
from pyironscales.types import (
JSON,
IronscalesRequestParams,
)
class CompanyIdStatsRemediationStatusesEndpoint(
IronscalesEndpoint,
IGettable[CompanyStatsRemediationStatuses, IronscalesRequestParams],
):
def __init__(self, client, parent_endpoint=None) -> None:
IronscalesEndpoint.__init__(self, client, "remediation-statuses/", parent_endpoint=parent_endpoint)
IGettable.__init__(self, CompanyStatsRemediationStatuses)
def get(
self,
data: JSON | None = None,
params: IronscalesRequestParams | None = None,
) -> CompanyStatsRemediationStatuses:
"""
Performs a GET request against the /company/{id}/stats/remediation-statuses/ endpoint.
Parameters:
data (dict[str, Any]): The data to send in the request body.
params (dict[str, int | str]): The parameters to send in the request query string.
Returns:
CompanyStatsRemediationStatuses: The parsed response data.
"""
return self._parse_one(
CompanyStatsRemediationStatuses,
super()._make_request("GET", data=data, params=params).json(),
)

View File

@ -154,6 +154,12 @@ class CompanyStatisticsAndLicense(IronscalesModel):
activeMailboxes: bool | None = Field(default=None, alias="activeMailboxes")
lastMailboxSyncDate: datetime | None = Field(default=None, alias="lastMailboxSyncDate")
class CompanyStatsRemediationStatuses(IronscalesModel):
phishing: dict[str, int] | None = Field(default=None, alias="Phishing")
spam: dict[str, int] | None = Field(default=None, alias="Spam")
safe: dict[str, int] | None = Field(default=None, alias="Safe")
unclassified: dict[str, int] | None = Field(default=None, alias="Unclassified")
class EscalatedEmails(IronscalesModel):
arrival_date: datetime | None = Field(default=None, alias="ArrivalDate")
incident_id: int | None = Field(default=None, alias="IncidentId")