mirror of
				https://github.com/brygphilomena/pyironscales.git
				synced 2025-11-04 00:07:28 +00:00 
			
		
		
		
	Implement all endpoints without pagination
This commit is contained in:
		
							parent
							
								
									83a238d206
								
							
						
					
					
						commit
						00aa2fd4fd
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -206,3 +206,4 @@ marimo/_static/
 | 
			
		||||
marimo/_lsp/
 | 
			
		||||
__marimo__/
 | 
			
		||||
src/ironscales_scratchpad.py
 | 
			
		||||
src/pyironscales/endpoints/ironscales/old/
 | 
			
		||||
 | 
			
		||||
@ -1,16 +1,16 @@
 | 
			
		||||
import typing
 | 
			
		||||
import json
 | 
			
		||||
from datetime import datetime, timedelta, timezone
 | 
			
		||||
 | 
			
		||||
from pyironscales.clients.base_client import IronscalesClient
 | 
			
		||||
from pyironscales.config import Config
 | 
			
		||||
 | 
			
		||||
if typing.TYPE_CHECKING:
 | 
			
		||||
    from pyironscales.endpoints.ironscales.SurveysEndpoint import SurveysEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.AnswersEndpoint import AnswersEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.CustomersEndpoint import CustomersEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.QuestionsEndpoint import QuestionsEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.TeamMembersEndpoint import TeamMembersEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.ResponsesEndpoint import ResponsesEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.CampaignsEndpoint import CampaignsEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.CompanyEndpoint import CompanyEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.EmailsEndpoint import EmailsEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.IncidentEndpoint import IncidentEndpoint
 | 
			
		||||
    from pyironscales.endpoints.ironscales.IntegrationsEndpoint import IntegrationsEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IronscalesAPIClient(IronscalesClient):
 | 
			
		||||
@ -22,7 +22,7 @@ class IronscalesAPIClient(IronscalesClient):
 | 
			
		||||
    def __init__(
 | 
			
		||||
        self,
 | 
			
		||||
        privatekey: str,
 | 
			
		||||
        scope: str,
 | 
			
		||||
        scopes: list,
 | 
			
		||||
    ) -> None:
 | 
			
		||||
        """
 | 
			
		||||
        Initializes the client with the given credentials.
 | 
			
		||||
@ -31,7 +31,7 @@ class IronscalesAPIClient(IronscalesClient):
 | 
			
		||||
            privatekey (str): Your Ironscales API private key.
 | 
			
		||||
        """
 | 
			
		||||
        self.privatekey: str = privatekey
 | 
			
		||||
        self.scope: list = scope
 | 
			
		||||
        self.scopes: list = json.loads(scopes) if isinstance(json.loads(scopes), list) else [json.loads(scopes)]
 | 
			
		||||
        self.token_expiry_time: datetime = datetime.now(tz=timezone.utc)
 | 
			
		||||
 | 
			
		||||
        # Grab first access token
 | 
			
		||||
@ -39,10 +39,34 @@ class IronscalesAPIClient(IronscalesClient):
 | 
			
		||||
 | 
			
		||||
    # Initializing endpoints
 | 
			
		||||
    @property
 | 
			
		||||
    def surveys(self) -> "SurveysEndpoint":
 | 
			
		||||
        from pyironscales.endpoints.ironscales.SurveysEndpoint import SurveysEndpoint
 | 
			
		||||
    def campaigns(self) -> "CampaignsEndpoint":
 | 
			
		||||
        from pyironscales.endpoints.ironscales.CampaignsEndpoint import CampaignsEndpoint
 | 
			
		||||
 | 
			
		||||
        return SurveysEndpoint(self)
 | 
			
		||||
        return CampaignsEndpoint(self)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def company(self) -> "CompanyEndpoint":
 | 
			
		||||
        from pyironscales.endpoints.ironscales.CompanyEndpoint import CompanyEndpoint
 | 
			
		||||
 | 
			
		||||
        return CompanyEndpoint(self)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def emails(self) -> "EmailsEndpoint":
 | 
			
		||||
        from pyironscales.endpoints.ironscales.EmailsEndpoint import EmailsEndpoint
 | 
			
		||||
 | 
			
		||||
        return EmailsEndpoint(self)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def incident(self) -> "IncidentEndpoint":
 | 
			
		||||
        from pyironscales.endpoints.ironscales.IncidentEndpoint import IncidentEndpoint
 | 
			
		||||
 | 
			
		||||
        return IncidentEndpoint(self)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def integrations(self) -> "IntegrationsEndpoint":
 | 
			
		||||
        from pyironscales.endpoints.ironscales.IntegrationsEndpoint import IntegrationsEndpoint
 | 
			
		||||
 | 
			
		||||
        return IntegrationsEndpoint(self)
 | 
			
		||||
 | 
			
		||||
    def _get_url(self) -> str:
 | 
			
		||||
        """
 | 
			
		||||
@ -61,17 +85,16 @@ class IronscalesAPIClient(IronscalesClient):
 | 
			
		||||
            "POST",
 | 
			
		||||
            f"{self._get_url()}/get-token/",
 | 
			
		||||
            data={
 | 
			
		||||
                "key": self.privatekey,
 | 
			
		||||
                "scopes": self.scope
 | 
			
		||||
            "key": self.privatekey,
 | 
			
		||||
            "scopes": self.scopes
 | 
			
		||||
                },
 | 
			
		||||
            headers={
 | 
			
		||||
                "Content-Type": "application/json",
 | 
			
		||||
                "Accept": "application/json"
 | 
			
		||||
                },
 | 
			
		||||
        )
 | 
			
		||||
        auth_resp_json = auth_response.json()
 | 
			
		||||
        token = auth_resp_json["jwt"]
 | 
			
		||||
        expires_in_sec = auth_resp_json["expires_in"]
 | 
			
		||||
        expires_in_sec = 43200
 | 
			
		||||
        self.token_expiry_time = datetime.now(tz=timezone.utc) + timedelta(seconds=expires_in_sec)
 | 
			
		||||
        return token
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,24 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.AnswersIdEndpoint import AnswersIdEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.AnswersSearchEndpoint import AnswersSearchEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AnswersEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "answers", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.search = self._register_child_endpoint(AnswersSearchEndpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> AnswersIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized AnswersIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            AnswersIdEndpoint: The initialized AnswersIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = AnswersIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -1,66 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IPaginateable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Answer
 | 
			
		||||
from pyironscales.responses.paginated_response import PaginatedResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AnswersSearchEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[Answer, IronscalesRequestParams],
 | 
			
		||||
    IPaginateable[Answer, IronscalesRequestParams],
 | 
			
		||||
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "search", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, Answer)
 | 
			
		||||
        IPaginateable.__init__(self, Answer)
 | 
			
		||||
 | 
			
		||||
    def paginated(
 | 
			
		||||
        self,
 | 
			
		||||
        page: int,
 | 
			
		||||
        limit: int,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> PaginatedResponse[Answer]:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /answers/search endpoint and returns an initialized PaginatedResponse object.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            page (int): The page number to request.
 | 
			
		||||
            limit (int): The number of results to return per page.
 | 
			
		||||
            params (dict[str, int | str]): The parameters to send in the request query string.
 | 
			
		||||
        Returns:
 | 
			
		||||
            PaginatedResponse[Answer]: The initialized PaginatedResponse object.
 | 
			
		||||
        """
 | 
			
		||||
        if params:
 | 
			
		||||
            params["page[number]"] = page
 | 
			
		||||
            params["page[size]"] = limit
 | 
			
		||||
        else:
 | 
			
		||||
            params = {"page[number]": page, "page[size]": limit}
 | 
			
		||||
        return PaginatedResponse(
 | 
			
		||||
            super()._make_request("POST", params=params),
 | 
			
		||||
            Answer,
 | 
			
		||||
            self,
 | 
			
		||||
            "answers",
 | 
			
		||||
            page,
 | 
			
		||||
            limit,
 | 
			
		||||
            params,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> Answer:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /answers/search 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:
 | 
			
		||||
            Survey: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(Answer, super()._make_request("POST", data=data, params=params).json().get('answers', {}))
 | 
			
		||||
							
								
								
									
										22
									
								
								src/pyironscales/endpoints/ironscales/CampaignsEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/pyironscales/endpoints/ironscales/CampaignsEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CampaignsIdEndpoint import CampaignsIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CampaignsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "campaigns", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> CampaignsIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized CampaignsIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            CampaignsIdEndpoint: The initialized CampaignsIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = CampaignsIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Campaigns
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CampaignsIdDetailsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[Campaigns, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "details", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Campaigns)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Campaigns:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /campaigns/{id}/details 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Campaigns,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('campaigns', {}),
 | 
			
		||||
        )
 | 
			
		||||
							
								
								
									
										17
									
								
								src/pyironscales/endpoints/ironscales/CampaignsIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/pyironscales/endpoints/ironscales/CampaignsIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.models.ironscales import Answer
 | 
			
		||||
from pyironscales.endpoints.ironscales.CampaignsIdDetailsEndpoint import CampaignsIdDetailsEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CampaignsIdParticipantDetailsEndpoint import CampaignsIdParticipantDetailsEndpoint
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CampaignsIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.search = self._register_child_endpoint(CampaignsIdDetailsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.search = self._register_child_endpoint(CampaignsIdParticipantDetailsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CampaignParticipants
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CampaignsIdParticipantDetailsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CampaignParticipants, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "participantdetails", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CampaignParticipants)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CampaignParticipants:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /campaigns/{id}/participantdetails 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CampaignParticipants,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('participants', {}),
 | 
			
		||||
        )
 | 
			
		||||
@ -2,30 +2,29 @@ from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CustomerBulk
 | 
			
		||||
from pyironscales.models.ironscales import PartnerCompany
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CustomersBulkEndpoint(
 | 
			
		||||
class CompanyCreateEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[CustomerBulk, IronscalesRequestParams],
 | 
			
		||||
 | 
			
		||||
    IPostable[PartnerCompany, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "bulk", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, CustomerBulk)
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "create", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, PartnerCompany)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CustomerBulk:
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> PartnerCompany:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /customers/bulk endpoint.
 | 
			
		||||
        Performs a POST request against the /company/create 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:
 | 
			
		||||
            Survey: The parsed response data.
 | 
			
		||||
            Survey: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CustomerBulk, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
        return self._parse_one(PartnerCompany, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
							
								
								
									
										26
									
								
								src/pyironscales/endpoints/ironscales/CompanyEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/pyironscales/endpoints/ironscales/CompanyEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyIdEndpoint import CompanyIdEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyCreateEndpoint import CompanyCreateEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyListEndpoint import CompanyListEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CompanyEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "company", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.create = self._register_child_endpoint(CompanyCreateEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.list = self._register_child_endpoint(CompanyListEndpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> CompanyIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized CompanyIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            CompanyIdEndpoint: The initialized CompanyIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = CompanyIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -0,0 +1,65 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IDeleteable
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Company911Email
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CompanyId911EmailEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[Company911Email, IronscalesRequestParams],
 | 
			
		||||
    IPostable[Company911Email, IronscalesRequestParams],
 | 
			
		||||
    IDeleteable[IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "911-email/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Company911Email)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Company911Email:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /company/{id}/911-email/ 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:
 | 
			
		||||
            Company911Email: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Company911Email,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> Company911Email:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /company/{id}/911-email/ 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:
 | 
			
		||||
            Survey: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(Company911Email, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
 | 
			
		||||
    def delete(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> Company911Email:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a DELETE request against the /company/{id}/911-email/ 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:
 | 
			
		||||
            Company911Email: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(Company911Email, super()._make_request("DELETE", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,71 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyIdAutoSyncGroupsEndpoint import CompanyIdAutoSyncGroupsEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyIdAutoSyncMailboxesEndpoint import CompanyIdAutoSyncMailboxesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IDeleteable
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyAutoSyncStatus
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CompanyIdAutoSyncEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyAutoSyncStatus, IronscalesRequestParams],
 | 
			
		||||
    IPostable[CompanyAutoSyncStatus, IronscalesRequestParams],
 | 
			
		||||
    IDeleteable[IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "auto-sync/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyAutoSyncStatus)
 | 
			
		||||
        IPostable.__init__(self, CompanyAutoSyncStatus)
 | 
			
		||||
        IDeleteable.__init__(self, CompanyAutoSyncStatus)
 | 
			
		||||
        self.groups = self._register_child_endpoint(CompanyIdAutoSyncGroupsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.mailboxes = self._register_child_endpoint(CompanyIdAutoSyncMailboxesEndpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyAutoSyncStatus:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /company/{id}/auto-sync/ 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:
 | 
			
		||||
            CompanyAutoSyncStatus: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyAutoSyncStatus,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyAutoSyncStatus:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /company/{id}/auto-sync/ 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:
 | 
			
		||||
            CompanyAutoSyncStatus: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CompanyAutoSyncStatus, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
 | 
			
		||||
    def delete(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyAutoSyncStatus:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a DELETE request against the /company/{id}/auto-sync/ 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:
 | 
			
		||||
            CompanyAutoSyncStatus: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CompanyAutoSyncStatus, super()._make_request("DELETE", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyAutoSyncGroups
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CompanyIdAutoSyncGroupsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyAutoSyncGroups, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "groups/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyAutoSyncGroups)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyAutoSyncGroups:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /company/{id}/auto-sync/groups/ 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:
 | 
			
		||||
            CompanyAutoSyncGroups: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            CompanyAutoSyncGroups,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('groups', {}),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyMailboxes
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CompanyIdAutoSyncMailboxesEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyMailboxes, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "mailboxes/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyMailboxes)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyMailboxes:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /company/{id}/auto-sync/mailboxes/ 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:
 | 
			
		||||
            CompanyMailboxes: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            CompanyMailboxes,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('emails', {}),
 | 
			
		||||
        )
 | 
			
		||||
							
								
								
									
										84
									
								
								src/pyironscales/endpoints/ironscales/CompanyIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								src/pyironscales/endpoints/ironscales/CompanyIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,84 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPuttable,
 | 
			
		||||
    IDeleteable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import PartnerCompany
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyId911EmailEndpoint import CompanyId911EmailEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyIdAutoSyncEndpoint import CompanyIdAutoSyncEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyIdFeaturesEndpoint import CompanyIdFeaturesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyIdManifestEndpoint import CompanyIdManifestEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyIdStatsEndpoint import CompanyIdStatsEndpoint
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CompanyIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[PartnerCompany, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[PartnerCompany, IronscalesRequestParams],
 | 
			
		||||
    IDeleteable[IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, PartnerCompany)
 | 
			
		||||
        IPuttable.__init__(self, PartnerCompany)
 | 
			
		||||
        IDeleteable.__init__(self, PartnerCompany)
 | 
			
		||||
        self._911_email = self._register_child_endpoint(CompanyId911EmailEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.auto_sync = self._register_child_endpoint(CompanyIdAutoSyncEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.features = self._register_child_endpoint(CompanyIdFeaturesEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.manifest = self._register_child_endpoint(CompanyIdManifestEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.stats = self._register_child_endpoint(CompanyIdStatsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> PartnerCompany:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /company/{id} 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            PartnerCompany,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> PartnerCompany:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /company/{id} 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:
 | 
			
		||||
            PartnerCompany: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            PartnerCompany,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def delete(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> PartnerCompany:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a DELETE request against the /company/{id}/ 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:
 | 
			
		||||
            PartnerCompany: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(PartnerCompany, super()._make_request("DELETE", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,74 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IPuttable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyFeaturesStates
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CompanyIdFeaturesEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyFeaturesStates, IronscalesRequestParams],
 | 
			
		||||
    IPostable[CompanyFeaturesStates, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[CompanyFeaturesStates, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "features/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyFeaturesStates)
 | 
			
		||||
        IPostable.__init__(self, CompanyFeaturesStates)
 | 
			
		||||
        IPuttable.__init__(self, CompanyFeaturesStates)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyFeaturesStates:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /company/{id}/features/ 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:
 | 
			
		||||
            CompanyFeaturesStates: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyFeaturesStates,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyFeaturesStates:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /company/{id}/features/ 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:
 | 
			
		||||
            CompanyAutoSyncStatus: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CompanyFeaturesStates, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyFeaturesStates:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /company/{id} 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:
 | 
			
		||||
            CompanyFeaturesStates: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyFeaturesStates,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -2,30 +2,29 @@ from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Response
 | 
			
		||||
from pyironscales.models.ironscales import CompanyManifest
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ResponsesCreateOrUpdateEndpoint(
 | 
			
		||||
class CompanyIdManifestEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[Response, IronscalesRequestParams],
 | 
			
		||||
 | 
			
		||||
    IPostable[CompanyManifest, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "create-or-update", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, Response)
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "manifest/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, CompanyManifest)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> Response:
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyManifest:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /responses/create-or-update endpoint.
 | 
			
		||||
        Performs a POST request against the /company/{id}/manifest/ 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:
 | 
			
		||||
            Survey: The parsed response data.
 | 
			
		||||
            CompanyManifest: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(Response, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
        return self._parse_one(CompanyManifest, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyStatisticsAndLicense
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CompanyIdStatsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyStatisticsAndLicense, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "stats/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyStatisticsAndLicense)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyStatisticsAndLicense:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /company/{id}/stats/ 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:
 | 
			
		||||
            CompanyStatisticsAndLicense: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyStatisticsAndLicense,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
							
								
								
									
										40
									
								
								src/pyironscales/endpoints/ironscales/CompanyListEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/pyironscales/endpoints/ironscales/CompanyListEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CompanyListV2Endpoint import CompanyListV2Endpoint
 | 
			
		||||
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import PartnerCompany
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CompanyListEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[PartnerCompany, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "list", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, PartnerCompany)
 | 
			
		||||
        self.v2 = self._register_child_endpoint(CompanyListV2Endpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> PartnerCompany:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /company/list 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            PartnerCompany,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('companies', {}),
 | 
			
		||||
        )
 | 
			
		||||
@ -2,37 +2,36 @@ from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Question
 | 
			
		||||
from pyironscales.models.ironscales import PartnerCompanyV2
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class QuestionsEndpoint(
 | 
			
		||||
class CompanyListV2Endpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[Question, IronscalesRequestParams],
 | 
			
		||||
    IGettable[PartnerCompanyV2, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "questions", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Question)
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "v2", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, PartnerCompanyV2)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Question:
 | 
			
		||||
    ) -> PartnerCompanyV2:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /questions endpoint.
 | 
			
		||||
        Performs a GET request against the /company/list/v2 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:
 | 
			
		||||
            Question: The parsed response data.
 | 
			
		||||
            PartnerCompanyV2: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        print("get")
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            Question,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('questions', {}),
 | 
			
		||||
            PartnerCompanyV2,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('data', {}),
 | 
			
		||||
        )
 | 
			
		||||
@ -1,46 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CustomersIdEndpoint import CustomersIdEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.CustomersBulkEndpoint import CustomersBulkEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Customer
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CustomersEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[Customer, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "customers", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, Customer)
 | 
			
		||||
        self.bulk = self._register_child_endpoint(CustomersBulkEndpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> CustomersIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized CustomersIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            CustomersIdEndpoint: The initialized CustomersIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = CustomersIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> Customer:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /customers 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:
 | 
			
		||||
            Customer: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(Customer, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -1,59 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPuttable
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Customer
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CustomersIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[Customer, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[Customer, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Customer)
 | 
			
		||||
        IPuttable.__init__(self, Customer)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Customer:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /customers/{id} 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Customer,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Customer:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /customers/{id} 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:
 | 
			
		||||
            Customer: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Customer,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
							
								
								
									
										22
									
								
								src/pyironscales/endpoints/ironscales/EmailsEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/pyironscales/endpoints/ironscales/EmailsEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.EmailsIdEndpoint import EmailsIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EmailsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "emails", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> EmailsIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized EmailsIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            EmailsIdEndpoint: The initialized EmailsIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = EmailsIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -2,36 +2,36 @@ from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Response
 | 
			
		||||
from pyironscales.models.ironscales import EscalatedEmails
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ResponsesIdEndpoint(
 | 
			
		||||
class EmailsIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[Response, IronscalesRequestParams],
 | 
			
		||||
    IGettable[EscalatedEmails, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Response)
 | 
			
		||||
        IGettable.__init__(self, EscalatedEmails)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Response:
 | 
			
		||||
    ) -> EscalatedEmails:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /responses/{id} endpoint.
 | 
			
		||||
        Performs a GET request against the /emails/{id} 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
            EscalatedEmails: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Response,
 | 
			
		||||
            EscalatedEmails,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
							
								
								
									
										22
									
								
								src/pyironscales/endpoints/ironscales/IncidentEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/pyironscales/endpoints/ironscales/IncidentEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdEndpoint import IncidentIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IncidentEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "incident", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> IncidentIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized IncidentIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            IncidentIdEndpoint: The initialized IncidentIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = IncidentIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdClassifyIdEndpoint import IncidentIdClassifyIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IncidentIdClassifyEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "classify", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> IncidentIdClassifyIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized IncidentIdClassifyIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            IncidentIdClassifyIdEndpoint: The initialized IncidentIdClassifyIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = IncidentIdClassifyIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -2,30 +2,29 @@ from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CustomerBulk
 | 
			
		||||
from pyironscales.models.ironscales import IncidentClassify
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CustomersBulkEndpoint(
 | 
			
		||||
class IncidentIdClassifyIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[CustomerBulk, IronscalesRequestParams],
 | 
			
		||||
 | 
			
		||||
    IPostable[IncidentClassify, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "bulk", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, CustomerBulk)
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, IncidentClassify)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CustomerBulk:
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> IncidentClassify:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /customers/bulk endpoint.
 | 
			
		||||
        Performs a POST request against the /incident/{id}/classify/{id} 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:
 | 
			
		||||
            Survey: The parsed response data.
 | 
			
		||||
            IncidentClassify: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CustomerBulk, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
        return self._parse_one(IncidentClassify, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdDetailsIdEndpoint import IncidentIdDetailsIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IncidentIdDetailsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "details", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> IncidentIdDetailsIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized IncidentIdDetailsIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            IncidentIdDetailsIdEndpoint: The initialized IncidentIdDetailsIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = IncidentIdDetailsIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -1,37 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPuttable,
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Response
 | 
			
		||||
from pyironscales.models.ironscales import IncidentDetails
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ResponsesIdUpdateEndpoint(
 | 
			
		||||
class IncidentIdDetailsIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPuttable[Response, IronscalesRequestParams],
 | 
			
		||||
    IGettable[IncidentDetails, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPuttable.__init__(self, Response)
 | 
			
		||||
        IGettable.__init__(self, IncidentDetails)
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Response:
 | 
			
		||||
    ) -> IncidentDetails:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /responses/{id}/update endpoint.
 | 
			
		||||
        Performs a GET request against the /incident/{id}/details/{id} 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:
 | 
			
		||||
            Response: The parsed response data.
 | 
			
		||||
            IncidentDetails: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Response,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
            IncidentDetails,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
							
								
								
									
										31
									
								
								src/pyironscales/endpoints/ironscales/IncidentIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/pyironscales/endpoints/ironscales/IncidentIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdClassifyEndpoint import IncidentIdClassifyEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdDetailsEndpoint import IncidentIdDetailsEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdListEndpoint import IncidentIdListEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdScanbackListEndpoint import IncidentIdScanbackListEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdStatsEndpoint import IncidentIdStatsEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdStatusEndpoint import IncidentIdStatusEndpoint
 | 
			
		||||
 | 
			
		||||
class IncidentIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.classify = self._register_child_endpoint(IncidentIdClassifyEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.details = self._register_child_endpoint(IncidentIdDetailsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.list = self._register_child_endpoint(IncidentIdListEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.scanback_list = self._register_child_endpoint(IncidentIdScanbackListEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.stats = self._register_child_endpoint(IncidentIdStatsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> IncidentIdStatusEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized IncidentIdStatusEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            IncidentIdStatusEndpoint: The initialized IncidentIdStatusEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = IncidentIdStatusEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -2,37 +2,36 @@ from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Question
 | 
			
		||||
from pyironscales.models.ironscales import Incidents
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class QuestionsEndpoint(
 | 
			
		||||
class IncidentIdListEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[Question, IronscalesRequestParams],
 | 
			
		||||
    IGettable[Incidents, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "questions", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Question)
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "list/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Incidents)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Question:
 | 
			
		||||
    ) -> Incidents:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /questions endpoint.
 | 
			
		||||
        Performs a GET request against the /incident/{id}/list/ 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:
 | 
			
		||||
            Question: The parsed response data.
 | 
			
		||||
            Incidents: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        print("get")
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            Question,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('questions', {}),
 | 
			
		||||
            Incidents,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('incidents', {}),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import ScanbackIncidents
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IncidentIdScanbackListEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[ScanbackIncidents, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "scanback-list/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, ScanbackIncidents)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> ScanbackIncidents:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /incident/{id}/scanback-list 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:
 | 
			
		||||
            ScanbackIncidents: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            ScanbackIncidents,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('incidents', {}),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,10 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IncidentIdStatsRemediationStatusesEndpoint import IncidentIdStatsRemediationStatusesEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IncidentIdStatsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "stats", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.remediation_statuses = self._register_child_endpoint(IncidentIdStatsRemediationStatusesEndpoint(client, parent_endpoint=self))
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import RemediationStatusesStats
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IncidentIdStatsRemediationStatusesEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[RemediationStatusesStats, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "*", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, RemediationStatusesStats)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> RemediationStatusesStats:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /incident/{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:
 | 
			
		||||
            RemediationStatusesStats: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            RemediationStatusesStats,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import UnclassifiedIncidentIDs
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IncidentIdStatusEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[UnclassifiedIncidentIDs, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, UnclassifiedIncidentIDs)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> UnclassifiedIncidentIDs:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /incident/{id}/{status}/ 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:
 | 
			
		||||
            UnclassifiedIncidentIDs: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            UnclassifiedIncidentIDs,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IntegrationsIdEndpoint import IntegrationsIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IntegrationsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "integrations", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> IntegrationsIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized IntegrationsIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            IntegrationsIdEndpoint: The initialized IntegrationsIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = IntegrationsIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -0,0 +1,30 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import IntegrationDisableIntegration
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IntegrationsIdDisableIntegrationEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[IntegrationDisableIntegration, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "manifest/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, IntegrationDisableIntegration)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> IntegrationDisableIntegration:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /integrations/{id}/disable-integration/ 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:
 | 
			
		||||
            IntegrationDisableIntegration: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(IntegrationDisableIntegration, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,19 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IntegrationsIdIntegrationStatusEndpoint import IntegrationsIdIntegrationStatusEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IntegrationsIdDisableIntegrationEndpoint import IntegrationsIdDisableIntegrationEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IntegrationsIdGWSAuthorizeEndpoint import IntegrationsIdGWSAuthorizeEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IntegrationsIdGWSConsentRedirectURIEndpoint import IntegrationsIdGWSConsentRedirectURIEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IntegrationsIdO365AuthorizeEndpoint import IntegrationsIdO365AuthorizeEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.IntegrationsIdO365ConsentRedirectURIEndpoint import IntegrationsIdO365ConsentRedirectURIEndpoint
 | 
			
		||||
 | 
			
		||||
class IntegrationsIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.integration_status = self._register_child_endpoint(IntegrationsIdIntegrationStatusEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.disable_integration = self._register_child_endpoint(IntegrationsIdDisableIntegrationEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.gws_authorize_endpoint = self._register_child_endpoint(IntegrationsIdGWSAuthorizeEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.gws_consent_redirect_uri = self._register_child_endpoint(IntegrationsIdGWSConsentRedirectURIEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.o365_authorize = self._register_child_endpoint(IntegrationsIdO365AuthorizeEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.o365_consent_redirect_uri = self._register_child_endpoint(IntegrationsIdO365ConsentRedirectURIEndpoint(client, parent_endpoint=self))
 | 
			
		||||
@ -0,0 +1,30 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import IntegrationGWSAuthorizeResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IntegrationsIdGWSAuthorizeEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[IntegrationGWSAuthorizeResponse, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "gws-authorize/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, IntegrationGWSAuthorizeResponse)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> IntegrationGWSAuthorizeResponse:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /integrations/{id}/gws-authorize/ 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:
 | 
			
		||||
            IntegrationGWSAuthorizeResponse: The parsed IntegrationGWSAuthorizeResponse data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(IntegrationGWSAuthorizeResponse, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,30 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import IntegrationsGWSConsentRedirectURL
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IntegrationsIdGWSConsentRedirectURIEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[IntegrationsGWSConsentRedirectURL, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "gws-consent-redirect-uri/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, IntegrationsGWSConsentRedirectURL)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> IntegrationsGWSConsentRedirectURL:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /integrations/{id}/gws-consent-redirect-uri/ 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:
 | 
			
		||||
            IntegrationsGWSConsentRedirectURL: The parsed IntegrationsGWSConsentRedirectURL data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(IntegrationsGWSConsentRedirectURL, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import IntegrationStatus
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IntegrationsIdIntegrationStatusEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[IntegrationStatus, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "integration-status/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, IntegrationStatus)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> IntegrationStatus:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /integrations/{id}/integration-status/ 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:
 | 
			
		||||
            IntegrationStatus: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            IntegrationStatus,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,30 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import IntegrationO365AuthorizeResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IntegrationsIdO365AuthorizeEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[IntegrationO365AuthorizeResponse, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "o365-authorize/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, IntegrationO365AuthorizeResponse)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> IntegrationO365AuthorizeResponse:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /integrations/{id}/o365-authorize/ 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:
 | 
			
		||||
            IntegrationO365AuthorizeResponse: The parsed IntegrationO365AuthorizeResponse data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(IntegrationO365AuthorizeResponse, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,30 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import IntegrationsO365ConsentRedirectURLResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IntegrationsIdO365ConsentRedirectURIEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[IntegrationsO365ConsentRedirectURLResponse, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "o365-consent-redirect-uri/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, IntegrationsO365ConsentRedirectURLResponse)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> IntegrationsO365ConsentRedirectURLResponse:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /integrations/{id}/o365-consent-redirect-uri/ 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:
 | 
			
		||||
            IntegrationsO365ConsentRedirectURLResponse: The parsed IntegrationsO365ConsentRedirectURLResponse data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(IntegrationsO365ConsentRedirectURLResponse, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
							
								
								
									
										22
									
								
								src/pyironscales/endpoints/ironscales/MailboxesEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/pyironscales/endpoints/ironscales/MailboxesEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MailboxesIdEndpoint import MailboxesIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class MailboxesEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "mailboxes", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> MailboxesIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized MailboxesIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            MailboxesIdEndpoint: The initialized MailboxesIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = MailboxesIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import ComplianceReport
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class MailboxesIdComplianceReportEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[ComplianceReport, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "compliance-report/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, ComplianceReport)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> ComplianceReport:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /incident/{id}/{status}/ 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:
 | 
			
		||||
            ComplianceReport: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            ComplianceReport,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
							
								
								
									
										13
									
								
								src/pyironscales/endpoints/ironscales/MailboxesIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/pyironscales/endpoints/ironscales/MailboxesIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MailboxesIdComplianceReportEndpoint import MailboxesIdComplianceReportEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MailboxesIdListEndpoint import MailboxesIdListEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MailboxesIdUserCampaignsPerformanceEndpoint import MailboxesIdUserCampaignsPerformanceEndpoint
 | 
			
		||||
 | 
			
		||||
class MailboxesIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.compliance_report = self._register_child_endpoint(MailboxesIdComplianceReportEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.list = self._register_child_endpoint(MailboxesIdListEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.user_campaigns_performance = self._register_child_endpoint(MailboxesIdUserCampaignsPerformanceEndpoint(client, parent_endpoint=self))
 | 
			
		||||
@ -3,57 +3,57 @@ from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPuttable
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Answer
 | 
			
		||||
from pyironscales.models.ironscales import CompanyMailboxes, CompanyMailboxesPutResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AnswersIdEndpoint(
 | 
			
		||||
class MailboxesIdListEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[Answer, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[Answer, IronscalesRequestParams],
 | 
			
		||||
    IGettable[CompanyMailboxes, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[CompanyMailboxes, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Answer)
 | 
			
		||||
        IPuttable.__init__(self, Answer)
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "list/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyMailboxes)
 | 
			
		||||
        IPuttable.__init__(self, CompanyMailboxes)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Answer:
 | 
			
		||||
    ) -> CompanyMailboxes:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /answers/{id} endpoint.
 | 
			
		||||
        Performs a GET request against the /mailboxes/{id}/list/ 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
            CompanyMailboxes: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Answer,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            CompanyMailboxes,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('incidents', {}),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Answer:
 | 
			
		||||
    ) -> CompanyMailboxesPutResponse:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /answers/{id} endpoint.
 | 
			
		||||
        Performs a PUT request against the /company/{id}/list/ 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:
 | 
			
		||||
            Answer: The parsed response data.
 | 
			
		||||
            CompanyMailboxesPutResponse: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Answer,
 | 
			
		||||
            CompanyMailboxesPutResponse,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import UserCampaignPerformance
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class MailboxesIdUserCampaignsPerformanceEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[UserCampaignPerformance, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "user-campaigns-performance/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, UserCampaignPerformance)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> UserCampaignPerformance:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /mailboxes/{id}/user-campaigns-performance/ 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:
 | 
			
		||||
            UserCampaignPerformance: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            UserCampaignPerformance,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('incidents', {}),
 | 
			
		||||
        )
 | 
			
		||||
							
								
								
									
										22
									
								
								src/pyironscales/endpoints/ironscales/MitigationEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/pyironscales/endpoints/ironscales/MitigationEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationIdEndpoint import MitigationIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class MitigationEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "mitigations", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> MitigationIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized MitigationIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            MitigationIdEndpoint: The initialized MitigationIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = MitigationIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -0,0 +1,15 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdDetailsEndpoint import MitigationsIdDetailsEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdImpersonationEndpoint import MitigationsIdImpersonationEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdIncidentsEndpoint import MitigationsIdIncidentsEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdStatsEndpoint import MitigationsIdStatsEndpoint
 | 
			
		||||
 | 
			
		||||
class MitigationIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.details = self._register_child_endpoint(MitigationsIdDetailsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.impersonation = self._register_child_endpoint(MitigationsIdImpersonationEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.incidents = self._register_child_endpoint(MitigationsIdIncidentsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.stats = self._register_child_endpoint(MitigationsIdStatsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
@ -0,0 +1,30 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdDetailsEndpoint import MitigationsIdDetailsEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyMitigationDetails, CompanyMitigationDetailsPostResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class IncidentIdDetailsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[CompanyMitigationDetails, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "details/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, CompanyMitigationDetailsPostResponse)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyMitigationDetailsPostResponse:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /mitigations/{id}/details/ 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:
 | 
			
		||||
            CompanyMitigationDetailsPostResponse: The parsed CompanyMitigationDetailsPostResponse data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CompanyMitigationDetailsPostResponse, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,51 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyImpersonationIncidents
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class MitigationsIdImpersonationDetailsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyImpersonationIncidents, IronscalesRequestParams],
 | 
			
		||||
    IPostable[CompanyImpersonationIncidents, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "details/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyImpersonationIncidents)
 | 
			
		||||
        IPostable.__init__(self, CompanyImpersonationIncidents)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyImpersonationIncidents:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /mitigations/{id}/impersonation/details/ 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:
 | 
			
		||||
            CompanyImpersonationIncidents: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            CompanyImpersonationIncidents,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('incidents', {}),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyImpersonationIncidents:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /mitigations/{id}/details/ 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:
 | 
			
		||||
            CompanyImpersonationIncidents: The parsed CompanyImpersonationIncidents data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CompanyImpersonationIncidents, super()._make_request("POST", data=data, params=params).json().get('incidents', {}))
 | 
			
		||||
@ -0,0 +1,9 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdImpersonationDetailsEndpoint import MitigationsIdImpersonationDetailsEndpoint
 | 
			
		||||
 | 
			
		||||
class MitigationsIdImpersonationEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "impersonation", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.details = self._register_child_endpoint(MitigationsIdImpersonationDetailsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
@ -0,0 +1,36 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import IncidentDetails
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class MitigationsIdIncidentsDetailsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[IncidentDetails, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "details/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, IncidentDetails)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> IncidentDetails:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /mitigations/{id}/incidents/details/ 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:
 | 
			
		||||
            IncidentDetails: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            IncidentDetails,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('incidents', {}),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,9 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdIncidentsDetailsEndpoint import MitigationsIdIncidentsDetailsEndpoint
 | 
			
		||||
 | 
			
		||||
class MitigationsIdIncidentsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "incidents", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.details = self._register_child_endpoint(MitigationsIdIncidentsDetailsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
@ -0,0 +1,36 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyEmailStatistics
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class MitigationsIdStatsEmailsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyEmailStatistics, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "emails/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyEmailStatistics)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyEmailStatistics:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /mitigations/{id}/stats/emails/ 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:
 | 
			
		||||
            CompanyMitigationStatistics: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyEmailStatistics,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,44 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdStatsEmailsEndpoint import MitigationsIdStatsEmailsEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdStatsMostTargetedDepartmentsEndpoint import MitigationsIdStatsMostTargetedDepartmentsEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdStatsMostTargetedEmployeesEndpoint import MitigationsIdStatsMostTargetedEmployeesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.MitigationsIdStatsV2Endpoint import MitigationsIdStatsV2Endpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyMitigationStatistics
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class MitigationsIdStatsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyMitigationStatistics, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "stats/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyMitigationStatistics)
 | 
			
		||||
        self.emails = self._register_child_endpoint(MitigationsIdStatsEmailsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.most_targeted_departments = self._register_child_endpoint(MitigationsIdStatsMostTargetedDepartmentsEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.most_targeted_employees = self._register_child_endpoint(MitigationsIdStatsMostTargetedEmployeesEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.v2 = self._register_child_endpoint(MitigationsIdStatsV2Endpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyMitigationStatistics:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /mitigations/{id}/stats/ 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:
 | 
			
		||||
            CompanyMitigationStatistics: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyMitigationStatistics,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,36 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import MostTargetedDepartments
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class MitigationsIdStatsMostTargetedDepartmentsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[MostTargetedDepartments, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "most-targeted-departments/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, MostTargetedDepartments)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> MostTargetedDepartments:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /mitigations/{id}/stats/most-targeted-departments/ 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:
 | 
			
		||||
            MostTargetedDepartments: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            MostTargetedDepartments,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,36 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import MostTargetedEmployees
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class MitigationsIdStatsMostTargetedEmployeesEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[MostTargetedEmployees, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "most-targeted-employees/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, MostTargetedEmployees)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> MostTargetedEmployees:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /mitigations/{id}/stats/most-targeted-employees/ 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:
 | 
			
		||||
            MostTargetedEmployees: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            MostTargetedEmployees,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,36 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyMitigationStatisticsV2
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class MitigationsIdStatsV2Endpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyMitigationStatisticsV2, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "v2/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyMitigationStatisticsV2)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyMitigationStatisticsV2:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /mitigations/{id}/stats/v2/ 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:
 | 
			
		||||
            CompanyMitigationStatisticsV2: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyMitigationStatisticsV2,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,21 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.PlanDetailsDomainsIdEndpoint import PlanDetailsDomainsIdEndpoint
 | 
			
		||||
 | 
			
		||||
class CompanyListEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "list", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> PlanDetailsDomainsIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized PlanDetailsDomainsIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            PlanDetailsDomainsIdEndpoint: The initialized PlanDetailsDomainsIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = PlanDetailsDomainsIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -0,0 +1,65 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPuttable,
 | 
			
		||||
    IDeleteable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyLicensedDomains, CompanyLicensedDomainsPutResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PlanDetailsDomainsIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyLicensedDomains, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[CompanyLicensedDomains, IronscalesRequestParams],
 | 
			
		||||
    IDeleteable[IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyLicensedDomains)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyLicensedDomains:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /plan-details/domains/{id}/ 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:
 | 
			
		||||
            CompanyLicensedDomains: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyLicensedDomains,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyLicensedDomainsPutResponse:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /plan-details/domains/{id}/ 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:
 | 
			
		||||
            CompanyLicensedDomainsPutResponse: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CompanyLicensedDomainsPutResponse, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
 | 
			
		||||
    def delete(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyLicensedDomains:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a DELETE request against the /plan-details/domains/{id}/ 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:
 | 
			
		||||
            CompanyLicensedDomains: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CompanyLicensedDomains, super()._make_request("DELETE", data=data, params=params).json())
 | 
			
		||||
							
								
								
									
										22
									
								
								src/pyironscales/endpoints/ironscales/PlanDetailsEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/pyironscales/endpoints/ironscales/PlanDetailsEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.PlanDetailsIdEndpoint import PlanDetailsIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PlanDetailsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "plan-details", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> PlanDetailsIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized PlanDetailsIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            PlanDetailsIdEndpoint: The initialized PlanDetailsIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = PlanDetailsIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -2,36 +2,36 @@ from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import TeamMember
 | 
			
		||||
from pyironscales.models.ironscales import CompanyLicense
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TeamMembersIdEndpoint(
 | 
			
		||||
class PlanDetailsIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[TeamMember, IronscalesRequestParams],
 | 
			
		||||
    IGettable[CompanyLicense, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, TeamMember)
 | 
			
		||||
        IGettable.__init__(self, CompanyLicense)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> TeamMember:
 | 
			
		||||
    ) -> CompanyLicense:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /team-members/{id} endpoint.
 | 
			
		||||
        Performs a GET request against the /emails/{id} 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
            CompanyLicense: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            TeamMember,
 | 
			
		||||
            CompanyLicense,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -1,31 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Response
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ResponsesCreateOrUpdateEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[Response, IronscalesRequestParams],
 | 
			
		||||
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "create-or-update", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, Response)
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> Response:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /responses/create-or-update 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:
 | 
			
		||||
            Survey: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(Response, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -1,26 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.ResponsesIdEndpoint import ResponsesIdEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.ResponsesSearchEndpoint import ResponsesSearchEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.ResponsesCreateOrUpdateEndpoint import ResponsesCreateOrUpdateEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ResponsesEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "responses", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.search = self._register_child_endpoint(ResponsesSearchEndpoint(client, parent_endpoint=self))
 | 
			
		||||
        self.createorupdate = self._register_child_endpoint(ResponsesCreateOrUpdateEndpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> ResponsesIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized ResponsesIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            ResponsesIdEndpoint: The initialized ResponsesIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = ResponsesIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -1,68 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import Endpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IPaginateable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Response
 | 
			
		||||
from pyironscales.responses.paginated_response import PaginatedResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    RequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ResponsesSearchEndpoint(
 | 
			
		||||
    Endpoint,
 | 
			
		||||
    IPostable[Response, RequestParams],
 | 
			
		||||
    IPaginateable[Response, RequestParams],
 | 
			
		||||
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        Endpoint.__init__(self, client, "search", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, Response)
 | 
			
		||||
        IPaginateable.__init__(self, Response)
 | 
			
		||||
 | 
			
		||||
    def paginated(
 | 
			
		||||
        self,
 | 
			
		||||
        page: int,
 | 
			
		||||
        limit: int,
 | 
			
		||||
        params: RequestParams | None = None,
 | 
			
		||||
    ) -> PaginatedResponse[Response]:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /responses/search endpoint and returns an initialized PaginatedResponse object.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            page (int): The page number to request.
 | 
			
		||||
            limit (int): The number of results to return per page.
 | 
			
		||||
            params (dict[str, int | str]): The parameters to send in the request query string.
 | 
			
		||||
        Returns:
 | 
			
		||||
            PaginatedResponse[Response]: The initialized PaginatedResponse object.
 | 
			
		||||
        """
 | 
			
		||||
        if params:
 | 
			
		||||
            params["page[number]"] = page
 | 
			
		||||
            params["page[size]"] = limit
 | 
			
		||||
        else:
 | 
			
		||||
            params = {"page[number]": page, "page[size]": limit}
 | 
			
		||||
        return PaginatedResponse(
 | 
			
		||||
            super()._make_request("POST", params=params),
 | 
			
		||||
            Response,
 | 
			
		||||
            self,
 | 
			
		||||
            "responses",
 | 
			
		||||
            page,
 | 
			
		||||
            limit,
 | 
			
		||||
            params,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    #TODO: How do I paginate a post?
 | 
			
		||||
    def post(self, data: JSON | None = None, params: RequestParams | None = None) -> Response:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /responses/search 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:
 | 
			
		||||
            Survey: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(Response, super()._make_request("POST", data=data, params=params).json().get('responses', {}))
 | 
			
		||||
							
								
								
									
										22
									
								
								src/pyironscales/endpoints/ironscales/SettingsEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/pyironscales/endpoints/ironscales/SettingsEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.SettingsIdEndpoint import SettingsIdEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SettingsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "settings", parent_endpoint=parent_endpoint)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> SettingsIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized SettingsIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            SettingsIdEndpoint: The initialized SettingsIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = SettingsIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
@ -1,41 +1,40 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPuttable
 | 
			
		||||
    IPuttable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Answer
 | 
			
		||||
from pyironscales.models.ironscales import AccountTakeoverSensitivySettings
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AnswersIdEndpoint(
 | 
			
		||||
class SettingsIdAccountTakeoverEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[Answer, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[Answer, IronscalesRequestParams],
 | 
			
		||||
    IGettable[AccountTakeoverSensitivySettings, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[AccountTakeoverSensitivySettings, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Answer)
 | 
			
		||||
        IPuttable.__init__(self, Answer)
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "account-takeover/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, AccountTakeoverSensitivySettings)
 | 
			
		||||
        IPuttable.__init__(self, AccountTakeoverSensitivySettings)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Answer:
 | 
			
		||||
    ) -> AccountTakeoverSensitivySettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /answers/{id} endpoint.
 | 
			
		||||
        Performs a GET request against the /settings/{id}/account-takeover/ 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
            AccountTakeoverSensitivySettings: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Answer,
 | 
			
		||||
            AccountTakeoverSensitivySettings,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
@ -43,17 +42,17 @@ class AnswersIdEndpoint(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Answer:
 | 
			
		||||
    ) -> AccountTakeoverSensitivySettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /answers/{id} endpoint.
 | 
			
		||||
        Performs a PUT request against the /settings/{id}/account-takeover/ 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:
 | 
			
		||||
            Answer: The parsed response data.
 | 
			
		||||
            AccountTakeoverSensitivySettings: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Answer,
 | 
			
		||||
            AccountTakeoverSensitivySettings,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,86 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IPuttable,
 | 
			
		||||
    IDeleteable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import AllowListSettings
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class SettingsIdAllowListEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[AllowListSettings, IronscalesRequestParams],
 | 
			
		||||
    IPostable[AllowListSettings, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[AllowListSettings, IronscalesRequestParams],
 | 
			
		||||
    IDeleteable[IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "allow-list/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, AllowListSettings)
 | 
			
		||||
        IPuttable.__init__(self, AllowListSettings)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> AllowListSettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /settings/{id}/allow-list/ 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:
 | 
			
		||||
            AllowListSettings: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            AllowListSettings,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> AllowListSettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /settings/{id}/allow-list/ 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:
 | 
			
		||||
            AllowListSettings: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(AllowListSettings, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> AllowListSettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /settings/{id}/allow-list/ 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:
 | 
			
		||||
            AllowListSettings: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            AllowListSettings,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def delete(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> AllowListSettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a DELETE request against the /settings/{id}/allow-list/ 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:
 | 
			
		||||
            AllowListSettings: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(AllowListSettings, super()._make_request("DELETE", data=data, params=params).json())
 | 
			
		||||
@ -0,0 +1,86 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IPuttable,
 | 
			
		||||
    IDeleteable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import ChallengedAlerts
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class SettingsIdChallengedAlertsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[ChallengedAlerts, IronscalesRequestParams],
 | 
			
		||||
    IPostable[ChallengedAlerts, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[ChallengedAlerts, IronscalesRequestParams],
 | 
			
		||||
    IDeleteable[IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "challenged-alerts/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, ChallengedAlerts)
 | 
			
		||||
        IPuttable.__init__(self, ChallengedAlerts)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> ChallengedAlerts:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /settings/{id}/challenged-alerts/ 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:
 | 
			
		||||
            ChallengedAlerts: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            ChallengedAlerts,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> ChallengedAlerts:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /settings/{id}/challenged-alerts/ 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:
 | 
			
		||||
            ChallengedAlerts: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(ChallengedAlerts, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> ChallengedAlerts:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /settings/{id}/challenged-alerts/ 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:
 | 
			
		||||
            ChallengedAlerts: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            ChallengedAlerts,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def delete(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> ChallengedAlerts:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a DELETE request against the /settings/{id}/challenged-alerts/ 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:
 | 
			
		||||
            ChallengedAlerts: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(ChallengedAlerts, super()._make_request("DELETE", data=data, params=params).json())
 | 
			
		||||
							
								
								
									
										40
									
								
								src/pyironscales/endpoints/ironscales/SettingsIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/pyironscales/endpoints/ironscales/SettingsIdEndpoint.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.SettingsIdAccountTakeoverEndpoint import SettingsIdAccountTakeoverEndpoint
 | 
			
		||||
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyLicense
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SettingsIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyLicense, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyLicense)
 | 
			
		||||
        self.account_takeover = self._register_child_endpoint(SettingsIdAccountTakeoverEndpoint(client, parent_endpoint=self))
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyLicense:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /emails/{id} 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:
 | 
			
		||||
            CompanyLicense: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyLicense,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -0,0 +1,86 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IPuttable,
 | 
			
		||||
    IDeleteable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import CompanyNotificationSettings
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class SettingsIdChallengedAlertsEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[CompanyNotificationSettings, IronscalesRequestParams],
 | 
			
		||||
    IPostable[CompanyNotificationSettings, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[CompanyNotificationSettings, IronscalesRequestParams],
 | 
			
		||||
    IDeleteable[IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "incident-alerts/", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, CompanyNotificationSettings)
 | 
			
		||||
        IPuttable.__init__(self, CompanyNotificationSettings)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyNotificationSettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /settings/{id}/incident-alerts/ 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:
 | 
			
		||||
            CompanyNotificationSettings: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyNotificationSettings,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyNotificationSettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /settings/{id}/incident-alerts/ 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:
 | 
			
		||||
            CompanyNotificationSettings: The parsed Company data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CompanyNotificationSettings, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> CompanyNotificationSettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /settings/{id}/incident-alerts/ 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:
 | 
			
		||||
            CompanyNotificationSettings: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            CompanyNotificationSettings,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def delete(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> CompanyNotificationSettings:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a DELETE request against the /settings/{id}/incident-alerts/ 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:
 | 
			
		||||
            CompanyNotificationSettings: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(CompanyNotificationSettings, super()._make_request("DELETE", data=data, params=params).json())
 | 
			
		||||
@ -1,52 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import Endpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.SurveysIdEndpoint import SurveysIdEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Survey
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    RequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SurveysEndpoint(
 | 
			
		||||
    Endpoint,
 | 
			
		||||
    IGettable[Survey, RequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        Endpoint.__init__(self, client, "surveys", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Survey)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> SurveysIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized SurveysIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            SurveysIdEndpoint: The initialized SurveysIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = SurveysIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: RequestParams | None = None,
 | 
			
		||||
    ) -> Survey:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /surveys 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:
 | 
			
		||||
            Survey: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        print("get")
 | 
			
		||||
        return self._parse_many(
 | 
			
		||||
            Survey,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json().get('surveys', {}),
 | 
			
		||||
        )
 | 
			
		||||
@ -1,31 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import Endpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import SurveyEmail
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    RequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SurveysIdEmailEndpoint(
 | 
			
		||||
    Endpoint,
 | 
			
		||||
    IPostable[SurveyEmail, RequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        Endpoint.__init__(self, client, "email", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, SurveyEmail)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: RequestParams | None = None) -> SurveyEmail:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /surveys/{id}/email 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:
 | 
			
		||||
            SurveyEmail: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(SurveyEmail, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -1,10 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import Endpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.SurveysIdEmailEndpoint import SurveysIdEmailEndpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SurveysIdEndpoint(
 | 
			
		||||
    Endpoint,
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        Endpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        self.email = self._register_child_endpoint(SurveysIdEmailEndpoint(client, parent_endpoint=self))
 | 
			
		||||
@ -1,44 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import Endpoint
 | 
			
		||||
from pyironscales.endpoints.ironscales.TeamMembersIdEndpoint import TeamMembersIdEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import TeamMember
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    RequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TeamMembersEndpoint(
 | 
			
		||||
    Endpoint,
 | 
			
		||||
    IPostable[TeamMember, RequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        Endpoint.__init__(self, client, "team-members", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, TeamMember)
 | 
			
		||||
 | 
			
		||||
    def id(self, id: int) -> TeamMembersIdEndpoint:
 | 
			
		||||
        """
 | 
			
		||||
        Sets the ID for this endpoint and returns an initialized TeamMembersIdEndpoint object to move down the chain.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            id (int): The ID to set.
 | 
			
		||||
        Returns:
 | 
			
		||||
            TeamMembersIdEndpoint: The initialized TeamMembersIdEndpoint object.
 | 
			
		||||
        """
 | 
			
		||||
        child = TeamMembersIdEndpoint(self.client, parent_endpoint=self)
 | 
			
		||||
        child._id = id
 | 
			
		||||
        return child
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: RequestParams | None = None) -> TeamMember:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /team-members 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:
 | 
			
		||||
            TeamMember: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(TeamMember, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -1,37 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import Endpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import TeamMember
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    RequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TeamMembersIdEndpoint(
 | 
			
		||||
    Endpoint,
 | 
			
		||||
    IGettable[TeamMember, RequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        Endpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, TeamMember)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: RequestParams | None = None,
 | 
			
		||||
    ) -> TeamMember:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /team-members/{id} 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            TeamMember,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -1,66 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IPaginateable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Answer
 | 
			
		||||
from pyironscales.responses.paginated_response import PaginatedResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AnswersSearchEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[Answer, IronscalesRequestParams],
 | 
			
		||||
    IPaginateable[Answer, IronscalesRequestParams],
 | 
			
		||||
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "search", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, Answer)
 | 
			
		||||
        IPaginateable.__init__(self, Answer)
 | 
			
		||||
 | 
			
		||||
    def paginated(
 | 
			
		||||
        self,
 | 
			
		||||
        page: int,
 | 
			
		||||
        limit: int,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> PaginatedResponse[Answer]:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /answers/search endpoint and returns an initialized PaginatedResponse object.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            page (int): The page number to request.
 | 
			
		||||
            limit (int): The number of results to return per page.
 | 
			
		||||
            params (dict[str, int | str]): The parameters to send in the request query string.
 | 
			
		||||
        Returns:
 | 
			
		||||
            PaginatedResponse[Answer]: The initialized PaginatedResponse object.
 | 
			
		||||
        """
 | 
			
		||||
        if params:
 | 
			
		||||
            params["page[number]"] = page
 | 
			
		||||
            params["page[size]"] = limit
 | 
			
		||||
        else:
 | 
			
		||||
            params = {"page[number]": page, "page[size]": limit}
 | 
			
		||||
        return PaginatedResponse(
 | 
			
		||||
            super()._make_request("POST", params=params),
 | 
			
		||||
            Answer,
 | 
			
		||||
            self,
 | 
			
		||||
            "answers",
 | 
			
		||||
            page,
 | 
			
		||||
            limit,
 | 
			
		||||
            params,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> Answer:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /answers/search 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:
 | 
			
		||||
            Survey: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(Answer, super()._make_request("POST", data=data, params=params).json().get('answers', {}))
 | 
			
		||||
@ -1,59 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
    IPuttable
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Customer
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CustomersIdEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IGettable[Customer, IronscalesRequestParams],
 | 
			
		||||
    IPuttable[Customer, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Customer)
 | 
			
		||||
        IPuttable.__init__(self, Customer)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Customer:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /customers/{id} 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Customer,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> Customer:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /customers/{id} 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:
 | 
			
		||||
            Customer: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Customer,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -1,37 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import Endpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IGettable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Response
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    RequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ResponsesIdEndpoint(
 | 
			
		||||
    Endpoint,
 | 
			
		||||
    IGettable[Response, RequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        Endpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IGettable.__init__(self, Response)
 | 
			
		||||
 | 
			
		||||
    def get(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: RequestParams | None = None,
 | 
			
		||||
    ) -> Response:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a GET request against the /responses/{id} 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:
 | 
			
		||||
            AuthInformation: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Response,
 | 
			
		||||
            super()._make_request("GET", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -1,37 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import Endpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPuttable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Response
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    RequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ResponsesIdUpdateEndpoint(
 | 
			
		||||
    Endpoint,
 | 
			
		||||
    IPuttable[Response, RequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        Endpoint.__init__(self, client, "{id}", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPuttable.__init__(self, Response)
 | 
			
		||||
 | 
			
		||||
    def put(
 | 
			
		||||
        self,
 | 
			
		||||
        data: JSON | None = None,
 | 
			
		||||
        params: RequestParams | None = None,
 | 
			
		||||
    ) -> Response:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a PUT request against the /responses/{id}/update 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:
 | 
			
		||||
            Response: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(
 | 
			
		||||
            Response,
 | 
			
		||||
            super()._make_request("PUT", data=data, params=params).json(),
 | 
			
		||||
        )
 | 
			
		||||
@ -1,68 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
    IPaginateable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import Response
 | 
			
		||||
from pyironscales.responses.paginated_response import PaginatedResponse
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ResponsesSearchEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[Response, IronscalesRequestParams],
 | 
			
		||||
    IPaginateable[Response, IronscalesRequestParams],
 | 
			
		||||
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "search", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, Response)
 | 
			
		||||
        IPaginateable.__init__(self, Response)
 | 
			
		||||
 | 
			
		||||
    def paginated(
 | 
			
		||||
        self,
 | 
			
		||||
        page: int,
 | 
			
		||||
        limit: int,
 | 
			
		||||
        params: IronscalesRequestParams | None = None,
 | 
			
		||||
    ) -> PaginatedResponse[Response]:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /responses/search endpoint and returns an initialized PaginatedResponse object.
 | 
			
		||||
 | 
			
		||||
        Parameters:
 | 
			
		||||
            page (int): The page number to request.
 | 
			
		||||
            limit (int): The number of results to return per page.
 | 
			
		||||
            params (dict[str, int | str]): The parameters to send in the request query string.
 | 
			
		||||
        Returns:
 | 
			
		||||
            PaginatedResponse[Response]: The initialized PaginatedResponse object.
 | 
			
		||||
        """
 | 
			
		||||
        if params:
 | 
			
		||||
            params["page[number]"] = page
 | 
			
		||||
            params["page[size]"] = limit
 | 
			
		||||
        else:
 | 
			
		||||
            params = {"page[number]": page, "page[size]": limit}
 | 
			
		||||
        return PaginatedResponse(
 | 
			
		||||
            super()._make_request("POST", params=params),
 | 
			
		||||
            Response,
 | 
			
		||||
            self,
 | 
			
		||||
            "responses",
 | 
			
		||||
            page,
 | 
			
		||||
            limit,
 | 
			
		||||
            params,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    #TODO: How do I paginate a post?
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> Response:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /responses/search 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:
 | 
			
		||||
            Survey: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_many(Response, super()._make_request("POST", data=data, params=params).json().get('responses', {}))
 | 
			
		||||
@ -1,31 +0,0 @@
 | 
			
		||||
from pyironscales.endpoints.base.base_endpoint import IronscalesEndpoint
 | 
			
		||||
from pyironscales.interfaces import (
 | 
			
		||||
    IPostable,
 | 
			
		||||
)
 | 
			
		||||
from pyironscales.models.ironscales import SurveyEmail
 | 
			
		||||
from pyironscales.types import (
 | 
			
		||||
    JSON,
 | 
			
		||||
    IronscalesRequestParams,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SurveysIdEmailEndpoint(
 | 
			
		||||
    IronscalesEndpoint,
 | 
			
		||||
    IPostable[SurveyEmail, IronscalesRequestParams],
 | 
			
		||||
):
 | 
			
		||||
    def __init__(self, client, parent_endpoint=None) -> None:
 | 
			
		||||
        IronscalesEndpoint.__init__(self, client, "email", parent_endpoint=parent_endpoint)
 | 
			
		||||
        IPostable.__init__(self, SurveyEmail)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def post(self, data: JSON | None = None, params: IronscalesRequestParams | None = None) -> SurveyEmail:
 | 
			
		||||
        """
 | 
			
		||||
        Performs a POST request against the /surveys/{id}/email 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:
 | 
			
		||||
            SurveyEmail: The parsed response data.
 | 
			
		||||
        """
 | 
			
		||||
        return self._parse_one(SurveyEmail, super()._make_request("POST", data=data, params=params).json())
 | 
			
		||||
@ -16,61 +16,429 @@ class Pagination(IronscalesModel):
 | 
			
		||||
    next_page_url: str | None = Field(default=None, alias="NextPageURL")
 | 
			
		||||
    next_page_token: str | None = Field(default=None, alias="NextPageToken")
 | 
			
		||||
    
 | 
			
		||||
class Answer(IronscalesModel):
 | 
			
		||||
    id: int | None = Field(default=None, alias="Id")
 | 
			
		||||
    created: datetime | None = Field(default=None, alias="Created")
 | 
			
		||||
    modified: datetime | None = Field(default=None, alias="Modified")
 | 
			
		||||
    question: dict[str, Any] | None = Field(default=None, alias="Question")
 | 
			
		||||
    choice: str | None = Field(default=None, alias="Choice")
 | 
			
		||||
    choice_label: str | None = Field(default=None, alias="ChoiceLabel")
 | 
			
		||||
    choices: list | None = Field(default=None, alias="Choices")
 | 
			
		||||
    sentiment: str | None = Field(default=None, alias="Sentiment")
 | 
			
		||||
    comment: str | None = Field(default=None, alias="Comment")
 | 
			
		||||
    follow_up_answer: str | None = Field(default=None, alias="FollowUpAnswer")
 | 
			
		||||
    follow_up_answer_choice: str | None = Field(default=None, alias="FollowUpAnswerChoice")
 | 
			
		||||
    follow_up_answer_choices: list | None = Field(default=None, alias="FollowUpAnswerChoices")
 | 
			
		||||
    survey: dict[str, str | int] | None = Field(default=None, alias="Survey")
 | 
			
		||||
    published_as_testimonial: bool | None = Field(default=None, alias="PublishedAsTestimonial")
 | 
			
		||||
    response_id: int | None = Field(default=None, alias="ResponseId")
 | 
			
		||||
class Campaigns(IronscalesModel):
 | 
			
		||||
    campaignID: int | None = Field(default=None, alias="CampaignId")
 | 
			
		||||
    campaignName: str | None = Field(default=None, alias="CampaignName")
 | 
			
		||||
    campaignStatus: str | None = Field(default=None, alias="CampaignStatus")
 | 
			
		||||
    flowType: str | None = Field(default=None, alias="FlowType")
 | 
			
		||||
    language: str | None = Field(default=None, alias="Language")
 | 
			
		||||
    maxEmailPerDay: int | None = Field(default=None, alias="MaxEmailPerDay")
 | 
			
		||||
    endDate: datetime | None = Field(default=None, alias="Modified")
 | 
			
		||||
    launchDate: datetime | None = Field(default=None, alias="Modified")
 | 
			
		||||
    emailsSent: int | None = Field(default=None, alias="EmailsSent")
 | 
			
		||||
    participants: int | None = Field(default=None, alias="Participants")
 | 
			
		||||
    emailsBounced: int | None = Field(default=None, alias="EmailsBounced")
 | 
			
		||||
    numberOfClickedParticipants: int | None = Field(default=None, alias="NumberOfClickedParticipants")
 | 
			
		||||
    numberOfTrainedParticipants: int | None = Field(default=None, alias="NumberOfTrainedParticipants")
 | 
			
		||||
    numberOfTrainedParticipatns: int | None = Field(default=None, alias="NumberOfTrainedParticipatns") #Seems ironscales had a type and for some reason continued to include it alongside the fixed string
 | 
			
		||||
    numberOfReportedParticipants: int | None = Field(default=None, alias="NumberOfReportedParticipants")
 | 
			
		||||
    numberOfReadParticipants: int | None = Field(default=None, alias="NumberOfReadParticipants")
 | 
			
		||||
    numberOfDeleted: int | None = Field(default=None, alias="NumberOfDeleted")
 | 
			
		||||
    attackReadinessFirstReport: str | None = Field(default=None, alias="AttackReadinessFirstReport")
 | 
			
		||||
    attackReadinessMitigationTime: str | None = Field(default=None, alias="AttackReadinessMitigationTime")
 | 
			
		||||
    attackReadinessLuredBeforeMitigation: str | None = Field(default=None, alias="AttackReadinessLuredBeforeMitigation")
 | 
			
		||||
    attackReadinessReportsToMitigate: str | None = Field(default=None, alias="AttackReadinessReportsToMitigate")
 | 
			
		||||
    companyId: int | None = Field(default=None, alias="CompanyId")
 | 
			
		||||
    randomized: bool | None = Field(default=None, alias="Randomized")
 | 
			
		||||
 | 
			
		||||
class Customer(IronscalesModel):
 | 
			
		||||
    id: int | None = Field(default=None, alias="Id")
 | 
			
		||||
    external_id: str | None = Field(default=None, alias="ExternalId")
 | 
			
		||||
    created: datetime | None = Field(default=None, alias="Created")
 | 
			
		||||
    modified: datetime | None = Field(default=None, alias="Modified")
 | 
			
		||||
class CampaignParticipants(IronscalesModel):
 | 
			
		||||
    internalID: int | None = Field(default=None, alias="InternalID")
 | 
			
		||||
    name: str | None = Field(default=None, alias="Name")
 | 
			
		||||
    email: str | None = Field(default=None, alias="Email")
 | 
			
		||||
    displayName: str | None = Field(default=None, alias="DisplayName")
 | 
			
		||||
    lastUpdate: datetime | None = Field(default=None, alias="LastUpdate")
 | 
			
		||||
    title: str | None = Field(default=None, alias="Title")
 | 
			
		||||
    department: str | None = Field(default=None, alias="Department")
 | 
			
		||||
    company: str | None = Field(default=None, alias="Company")
 | 
			
		||||
    custom_attributes: dict[str, str | int] | None = Field(default=None, alias="CustomAttributes")
 | 
			
		||||
 | 
			
		||||
class TeamMember(IronscalesModel):
 | 
			
		||||
    id: int | None = Field(default=None, alias="Id")
 | 
			
		||||
    external_id: str | None = Field(default=None, alias="ExternalId")
 | 
			
		||||
    created: datetime | None = Field(default=None, alias="Created")
 | 
			
		||||
    modified: datetime | None = Field(default=None, alias="Modified")
 | 
			
		||||
    name: str | None = Field(default=None, alias="Name")
 | 
			
		||||
    manager: str | None = Field(default=None, alias="Manager")
 | 
			
		||||
    office: str | None = Field(default=None, alias="Office")
 | 
			
		||||
    country: str | None = Field(default=None, alias="Country")
 | 
			
		||||
    city: str | None = Field(default=None, alias="City")
 | 
			
		||||
    sentAt: datetime | None = Field(default=None, alias="SentAt")
 | 
			
		||||
    opened: str | None = Field(default=None, alias="Opened")
 | 
			
		||||
    openedAt: datetime | None = Field(default=None, alias="OpenedAt")
 | 
			
		||||
    enteredDetails: str | None = Field(default=None, alias="EnteredDetails")
 | 
			
		||||
    trainingModule: str | None = Field(default=None, alias="TrainingModule")
 | 
			
		||||
    trainingVideoStarted: str | None = Field(default=None, alias="TrainingVideoStarted")
 | 
			
		||||
    awarenessLevel: str | None = Field(default=None, alias="AwarenessLevel")
 | 
			
		||||
    customTags: str | None = Field(default=None, alias="CustomTags")
 | 
			
		||||
    reported: str | None = Field(default=None, alias="Reported")
 | 
			
		||||
    reportedTime: datetime | None = Field(default=None, alias="ReportedTime")
 | 
			
		||||
    read: str | None = Field(default=None, alias="Read")
 | 
			
		||||
    clicked: str | None = Field(default=None, alias="Clicked")
 | 
			
		||||
    clickedTime: datetime | None = Field(default=None, alias="ClickedTime")
 | 
			
		||||
    resendTrainingDates: list[datetime] | None = Field(default=None, alias="ResendTrainingDates")
 | 
			
		||||
    deleted: str | None = Field(default=None, alias="Deleted")
 | 
			
		||||
    trained: str | None = Field(default=None, alias="Trained")
 | 
			
		||||
    trainingCompletionDate: datetime | None = Field(default=None, alias="TrainingCompletionDate")
 | 
			
		||||
    trainingScore: int | None = Field(default=None, alias="TrainingScore")
 | 
			
		||||
    trainingDuration: int | None = Field(default=None, alias="TrainingDuration")
 | 
			
		||||
    trainingStartedOn: datetime | None = Field(default=None, alias="TrainingStartedOn")
 | 
			
		||||
    email: str | None = Field(default=None, alias="Email")
 | 
			
		||||
    custom_attributes: dict[str, str | int] | None = Field(default=None, alias="CustomAttributes")
 | 
			
		||||
    template: str | None = Field(default=None, alias="Template")
 | 
			
		||||
    userIp: str | None = Field(default=None, alias="UserIp")
 | 
			
		||||
 | 
			
		||||
class Response(IronscalesModel):
 | 
			
		||||
    survey_id: int | None = Field(default=None, alias="SurveyId")
 | 
			
		||||
    tags: list | None = Field(default=None, alias="Tags")
 | 
			
		||||
    answers: list[dict[str, Any]] | None = Field(default=None, alias="Answers")
 | 
			
		||||
    team_members: list[dict[str, Any]] | None = Field(default=None, alias="TeamMembers")
 | 
			
		||||
    ticket: dict[str, Any] | None = Field(default=None, alias="Ticket")
 | 
			
		||||
    customer: dict[str, Any] | None = Field(default=None, alias="Customer")
 | 
			
		||||
 | 
			
		||||
class Survey(IronscalesModel):
 | 
			
		||||
class PartnerCompany(IronscalesModel):
 | 
			
		||||
    id: int | None = Field(default=None, alias="Id")
 | 
			
		||||
    name: str | None = Field(default=None, alias="Name")
 | 
			
		||||
    metric: str | None = Field(default=None, alias="Metric")
 | 
			
		||||
    survey_token: str | None = Field(default=None, alias="SurveyToken")
 | 
			
		||||
    survey_type: str | None = Field(default=None, alias="SurveyType")
 | 
			
		||||
    brand_name: str | None = Field(default=None, alias="BrandName")
 | 
			
		||||
    domain: str | None = Field(default=None, alias="Domain")
 | 
			
		||||
    ownerEmail: str | None = Field(default=None, alias="OwnerEmail")
 | 
			
		||||
    ownerName: str | None = Field(default=None, alias="OwnerName")
 | 
			
		||||
    country: str | None = Field(default=None, alias="Country")
 | 
			
		||||
    registrationDate: datetime | None = Field(default=None, alias="RegistrationDate")
 | 
			
		||||
    partner_id: int | None = Field(default=None, alias="PartnerID")
 | 
			
		||||
 | 
			
		||||
class CustomerBulk(IronscalesModel):
 | 
			
		||||
    request_id: str | None = Field(default=None, alias="RequestId")
 | 
			
		||||
    detail: str | None = Field(default=None, alias="Detail")
 | 
			
		||||
class PartnerCompanyV2(IronscalesModel):
 | 
			
		||||
    id: int | None = Field(default=None, alias="Id")
 | 
			
		||||
    name: str | None = Field(default=None, alias="Name")
 | 
			
		||||
    domain: str | None = Field(default=None, alias="Domain")
 | 
			
		||||
    ownerEmail: str | None = Field(default=None, alias="OwnerEmail")
 | 
			
		||||
    ownerName: str | None = Field(default=None, alias="OwnerName")
 | 
			
		||||
    country: str | None = Field(default=None, alias="Country")
 | 
			
		||||
    registrationDate: datetime | None = Field(default=None, alias="RegistrationDate")
 | 
			
		||||
    partner_id: int | None = Field(default=None, alias="PartnerID")
 | 
			
		||||
    planExpirationDate: datetime | None = Field(default=None, alias="PlanExpirationDate")
 | 
			
		||||
    trialPlanExpirationDate: datetime | None = Field(default=None, alias="TrialPlanExpirationDate")
 | 
			
		||||
    
 | 
			
		||||
class SurveyEmail(IronscalesModel):
 | 
			
		||||
    detail: str | None = Field(default=None, alias="Detail")
 | 
			
		||||
class CompanyAutoSyncStatus(IronscalesModel):
 | 
			
		||||
    in_progress: bool | None = Field(default=None, alias="InProgress")
 | 
			
		||||
    mailboxes_total_count: int | None = Field(default=None, alias="MailboxesTotalCount")
 | 
			
		||||
    protected_mailboxes_count: int | None = Field(default=None, alias="ProtectedMailboxesCount")
 | 
			
		||||
    enabled_mailboxes_count: int | None = Field(default=None, alias="EnabledMailboxesCount")
 | 
			
		||||
    synced_mailboxes_count: int | None = Field(default=None, alias="SyncedMailboxesCount")
 | 
			
		||||
    failed_mailboxes_count: int | None = Field(default=None, alias="FailedMailboxesCount")
 | 
			
		||||
    last_synced_at: datetime | None = Field(default=None, alias="LastSyncedAt")
 | 
			
		||||
 | 
			
		||||
class Company911Email(IronscalesModel):
 | 
			
		||||
    email: str | None = Field(default=None, alias="Email")
 | 
			
		||||
 | 
			
		||||
class CompanyAutoSyncGroups(IronscalesModel):
 | 
			
		||||
    id: str | None = Field(default=None, alias="Id")
 | 
			
		||||
    display_name: str | None = Field(default=None, alias="DisplayName")
 | 
			
		||||
    
 | 
			
		||||
class CompanyManifest(IronscalesModel):
 | 
			
		||||
    report_button: str | None = Field(default=None, alias="ReportButton")
 | 
			
		||||
    add_in_description: str | None = Field(default=None, alias="AddInDescription")
 | 
			
		||||
    report_phishing_caption: str | None = Field(default=None, alias="ReportPhishingCaption")
 | 
			
		||||
    provider_name: str | None = Field(default=None, alias="ProviderName")
 | 
			
		||||
    logo: str | None = Field(default=None, alias="Logo")
 | 
			
		||||
    
 | 
			
		||||
class CompanySyncedEmails(IronscalesModel):
 | 
			
		||||
    first_name: str | None = Field(default=None, alias="FirstName")
 | 
			
		||||
    last_name: str | None = Field(default=None, alias="LastName")
 | 
			
		||||
    email: str | None = Field(default=None, alias="Email")
 | 
			
		||||
    change_date: datetime | None = Field(default=None, alias="ChangeDate")
 | 
			
		||||
    
 | 
			
		||||
class CompanyFeaturesStates(IronscalesModel):
 | 
			
		||||
    silentMode: bool | None = Field(default=None, alias="SilentMode")
 | 
			
		||||
    silentModeMsg: bool | None = Field(default=None, alias="SilentModeMsg")
 | 
			
		||||
    ato: bool | None = Field(default=None, alias="ATO")
 | 
			
		||||
    serviceManagement: bool | None = Field(default=None, alias="ServiceManagement")
 | 
			
		||||
    trainingCampaignsWizer: bool | None = Field(default=None, alias="TrainingCampaignsWizer")
 | 
			
		||||
    api: bool | None = Field(default=None, alias="API")
 | 
			
		||||
    themisCoPilot: bool | None = Field(default=None, alias="ThemisCoPilot")
 | 
			
		||||
    attachmentsScan: bool | None = Field(default=None, alias="AttachmentsScan")
 | 
			
		||||
    linksScan: bool | None = Field(default=None, alias="LinksScan")
 | 
			
		||||
    STbundle: bool | None = Field(default=None, alias="STBundle")
 | 
			
		||||
    SATBundlePlus: bool | None = Field(default=None, alias="SATBundlePlus")
 | 
			
		||||
    AiEmpowerBundle: bool | None = Field(default=None, alias="AiEmpowerBundle")
 | 
			
		||||
    autopilotEnabled: bool | None = Field(default=None, alias="AutopilotEnabled")
 | 
			
		||||
 | 
			
		||||
class CompanyStatisticsAndLicense(IronscalesModel):
 | 
			
		||||
    openIncidentCount: int | None = Field(default=None, alias="OpenIncidentCount")
 | 
			
		||||
    highPriorityIncidentCount: int | None = Field(default=None, alias="highPriorityIncidentCount")
 | 
			
		||||
    mediumPriorityIncidentCount: int | None = Field(default=None, alias="mediumPriorityIncidentCount")
 | 
			
		||||
    lowPriorityIncidentCount: int | None = Field(default=None, alias="lowPriorityIncidentCount")
 | 
			
		||||
    activeAttacksCount: int | None = Field(default=None, alias="activeAttacksCount")
 | 
			
		||||
    license: dict[str, Any] | None = Field(default=None, alias="license")
 | 
			
		||||
    protectedMailboxes: bool | None = Field(default=None, alias="protectedMailboxes")
 | 
			
		||||
    activeMailboxes: bool | None = Field(default=None, alias="activeMailboxes")
 | 
			
		||||
    lastMailboxSyncDate: datetime | None = Field(default=None, alias="lastMailboxSyncDate")
 | 
			
		||||
 | 
			
		||||
class EscalatedEmails(IronscalesModel):
 | 
			
		||||
    arrival_date: datetime | None = Field(default=None, alias="ArrivalDate")
 | 
			
		||||
    incident_id: int | None = Field(default=None, alias="IncidentId")
 | 
			
		||||
    subject: str | None = Field(default=None, alias="Subject")
 | 
			
		||||
    sender_email: str | None = Field(default=None, alias="SenderEmail")
 | 
			
		||||
    recipient_name: str | None = Field(default=None, alias="RecipientName")
 | 
			
		||||
    recipient_email: str | None = Field(default=None, alias="RecipientEmail")
 | 
			
		||||
    primary_threat_type: str | None = Field(default=None, alias="PrimaryThreatType")
 | 
			
		||||
    is_scanback: bool | None = Field(default=None, alias="IsScanback")
 | 
			
		||||
    classification: str | None = Field(default=None, alias="Classification")
 | 
			
		||||
    incident_state: str | None = Field(default=None, alias="IncidentState")
 | 
			
		||||
    resolution: str | None = Field(default=None, alias="Resolution")
 | 
			
		||||
    sender_ip: str | None = Field(default=None, alias="SenderIp")
 | 
			
		||||
    reported_by: str | None = Field(default=None, alias="ReportedBy")
 | 
			
		||||
    mailbox_id: int | None = Field(default=None, alias="MailboxId")
 | 
			
		||||
    department: str | None = Field(default=None, alias="Department")
 | 
			
		||||
    remediated_time: datetime | None = Field(default=None, alias="RemediatedTime")
 | 
			
		||||
    mitigation_id: int | None = Field(default=None, alias="MitigationId")
 | 
			
		||||
 | 
			
		||||
class IncidentDetails(IronscalesModel):
 | 
			
		||||
    company_id: int | None = Field(default=None, alias="CompanyId")
 | 
			
		||||
    company_name: str | None = Field(default=None, alias="CompanyName")
 | 
			
		||||
    incident_id: int | None = Field(default=None, alias="IncidentId")
 | 
			
		||||
    classification: str | None = Field(default=None, alias="Classification")
 | 
			
		||||
    first_reported_by: str | None = Field(default=None, alias="FirstReportedBy")
 | 
			
		||||
    first_reported_date: datetime | None = Field(default=None, alias="FirstReportedDate")
 | 
			
		||||
    affected_mailbox_count: int | None = Field(default=None, alias="AffectedMailboxCount")
 | 
			
		||||
    sender_reputation: str | None = Field(default=None, alias="SenderReputation")
 | 
			
		||||
    banner_displayed: bool | None = Field(default=None, alias="BannerDisplayed")
 | 
			
		||||
    sender_email: str | None = Field(default=None, alias="SenderEmail")
 | 
			
		||||
    reply_to: str | None = Field(default=None, alias="ReplyTo")
 | 
			
		||||
    spf_result: str | None = Field(default=None, alias="SPFResult")
 | 
			
		||||
    sender_is_internal: bool | None = Field(default=None, alias="SenderIsInternal")
 | 
			
		||||
    themis_proba: float | None = Field(default=None, alias="ThemisProba")
 | 
			
		||||
    themis_verdict: str | None = Field(default=None, alias="ThemisVerdict")
 | 
			
		||||
    mail_server: dict[str, str] | None = Field(default=None, alias="MailServer")
 | 
			
		||||
    federation: dict[str, int | float] | None = Field(default=None, alias="Federation")
 | 
			
		||||
    reports: dict[str, str | dict[str, str]] | None = Field(default=None, alias="Reports")
 | 
			
		||||
    links: dict[str, str] | None = Field(default=None, alias="Links")
 | 
			
		||||
    attachments: dict[str, str | int] | None = Field(default=None, alias="Attachments")
 | 
			
		||||
    original_email_body: str | None = Field(default=None, alias="OriginalEmailBody")
 | 
			
		||||
    email_body_text: str | None = Field(default=None, alias="EmailBodyText")
 | 
			
		||||
    reported_by_end_user: bool | None = Field(default=None, alias="ReportedByEndUser")
 | 
			
		||||
    reporter_name: str | None = Field(default=None, alias="ReporterName")
 | 
			
		||||
 | 
			
		||||
class Incidents(IronscalesModel):
 | 
			
		||||
    incidentID: int | None = Field(default=None, alias="ArrivalDate")
 | 
			
		||||
    emailSubject: str | None = Field(default=None, alias="EmailSubject")
 | 
			
		||||
    linksCount: int | None = Field(default=None, alias="LinksCount")
 | 
			
		||||
    attachmentsCount: int | None = Field(default=None, alias="AttachmentsCount")
 | 
			
		||||
    recipientEmail: str | None = Field(default=None, alias="RecipientEmail")
 | 
			
		||||
    recipientName: str | None = Field(default=None, alias="RecipientName")
 | 
			
		||||
    classification: str | None = Field(default=None, alias="Classification")
 | 
			
		||||
    assignee: str | None = Field(default=None, alias="Assignee")
 | 
			
		||||
    senderName: str | None = Field(default=None, alias="SenderName")
 | 
			
		||||
    senderEmail: str | None = Field(default=None, alias="SenderEmail")
 | 
			
		||||
    affectedMailboxesCount: int | None = Field(default=None, alias="AffectedMailboxesCount")
 | 
			
		||||
    created: str | None = Field(default=None, alias="Created")
 | 
			
		||||
    reportedBy: str | None = Field(default=None, alias="ReportedBy")
 | 
			
		||||
    resolvedBy: str | None = Field(default=None, alias="ResolvedBy")
 | 
			
		||||
    incidentType: str | None = Field(default=None, alias="IncidentsType")
 | 
			
		||||
    commentsCount: int | None = Field(default=None, alias="CommentsCount")
 | 
			
		||||
    releaseRequestCount: int | None = Field(default=None, alias="ReleaseRequestCount")
 | 
			
		||||
    latestEmailDate: datetime | None = Field(default=None, alias="LatestEmailDate")
 | 
			
		||||
 | 
			
		||||
class IncidentClassify(IronscalesModel):
 | 
			
		||||
    classification: int | None = Field(default=None, alias="Classification")
 | 
			
		||||
    prev_classification: str | None = Field(default=None, alias="PrevClassification")
 | 
			
		||||
    classifying_user_email: int | None = Field(default=None, alias="ClassifyingUserEmail")
 | 
			
		||||
 | 
			
		||||
class ScanbackIncidents(IronscalesModel):
 | 
			
		||||
    incidentID: int | None = Field(default=None, alias="ArrivalDate")
 | 
			
		||||
    emailSubject: str | None = Field(default=None, alias="EmailSubject")
 | 
			
		||||
    linksCount: int | None = Field(default=None, alias="LinksCount")
 | 
			
		||||
    attachmentsCount: int | None = Field(default=None, alias="AttachmentsCount")
 | 
			
		||||
    recipientEmail: str | None = Field(default=None, alias="RecipientEmail")
 | 
			
		||||
    recipientName: str | None = Field(default=None, alias="RecipientName")
 | 
			
		||||
    classification: str | None = Field(default=None, alias="Classification")
 | 
			
		||||
    assignee: str | None = Field(default=None, alias="Assignee")
 | 
			
		||||
    senderName: str | None = Field(default=None, alias="SenderName")
 | 
			
		||||
    senderEmail: str | None = Field(default=None, alias="SenderEmail")
 | 
			
		||||
    affectedMailboxesCount: int | None = Field(default=None, alias="AffectedMailboxesCount")
 | 
			
		||||
    created: str | None = Field(default=None, alias="Created")
 | 
			
		||||
    reportedBy: str | None = Field(default=None, alias="ReportedBy")
 | 
			
		||||
    resolvedBy: str | None = Field(default=None, alias="ResolvedBy")
 | 
			
		||||
 | 
			
		||||
class RemediationStatusesStats(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 UnclassifiedIncidentIDs(IronscalesModel):
 | 
			
		||||
    incident_ids: list[int] | None = Field(default=None, alias="IncidentIds")
 | 
			
		||||
 | 
			
		||||
class IntegrationStatus(IronscalesModel):
 | 
			
		||||
    company_id: int | None = Field(default=None, alias="CompanyId")
 | 
			
		||||
    integration_type: str | None = Field(default=None, alias="IntegrationType")
 | 
			
		||||
    is_integrated: bool | None = Field(default=None, alias="IsIntegrated")
 | 
			
		||||
 | 
			
		||||
class IntegrationO365Authorize(IronscalesModel):
 | 
			
		||||
    admin_consent: bool | None = Field(default=None, alias="AdminConsent")
 | 
			
		||||
    state: str | None = Field(default=None, alias="State")
 | 
			
		||||
    tenant: str | None = Field(default=None, alias="Tenant")
 | 
			
		||||
    error: str | None = Field(default=None, alias="Error")
 | 
			
		||||
    error_description: str | None = Field(default=None, alias="ErrorDescription")
 | 
			
		||||
 | 
			
		||||
class IntegrationO365AuthorizeResponse(IronscalesModel):
 | 
			
		||||
    additional_data: Any | None = Field(default=None, alias="AdditionalData")
 | 
			
		||||
    
 | 
			
		||||
class IntegrationGWSAuthorizeResponse(IronscalesModel):
 | 
			
		||||
    error_message: Any | None = Field(default=None, alias="AdditionalData")
 | 
			
		||||
    
 | 
			
		||||
class IntegrationDisableIntegration(IronscalesModel):
 | 
			
		||||
    company_id: int | None = Field(default=None, alias="CompanyId")
 | 
			
		||||
    integration_type: str | None = Field(default=None, alias="IntegrationType")
 | 
			
		||||
    integration_status: str | None = Field(default=None, alias="IntegrationStatus")
 | 
			
		||||
    
 | 
			
		||||
class IntegrationsGWSConsentRedirectURL(IronscalesModel):
 | 
			
		||||
    oauth_full_url: str | None = Field(default=None, alias="OAuthFullUrl")
 | 
			
		||||
 | 
			
		||||
class IntegrationsO365ConsentRedirectURL(IronscalesModel):
 | 
			
		||||
    azure_redirect_uri: str | None = Field(default=None, alias="AzureRedirectURI")
 | 
			
		||||
    additional_data: Any | None = Field(default=None, alias="AdditionalData")
 | 
			
		||||
 | 
			
		||||
class IntegrationsO365ConsentRedirectURLResponse(IronscalesModel):
 | 
			
		||||
    oauth_full_url: str | None = Field(default=None, alias="OAuthFullUrl")
 | 
			
		||||
 | 
			
		||||
class ComplianceReport(IronscalesModel):
 | 
			
		||||
    id: int | None = Field(default=None, alias="Id")
 | 
			
		||||
    firstName: str | None = Field(default=None, alias="FirstName")
 | 
			
		||||
    lastName: str | None = Field(default=None, alias="LastName")
 | 
			
		||||
    country: str | None = Field(default=None, alias="Country")
 | 
			
		||||
    department: str | None = Field(default=None, alias="Department")
 | 
			
		||||
    title: str | None = Field(default=None, alias="Title")
 | 
			
		||||
    email: str | None = Field(default=None, alias="Email")
 | 
			
		||||
    language: str | None = Field(default=None, alias="Language")
 | 
			
		||||
    simulationCampaignsCompletionsCount: int | None = Field(default=None, alias="SimulationCampaignsCompletionsCount")
 | 
			
		||||
    lastSimulationCampaignDate: datetime | None = Field(default=None, alias="LastSimulationCampaignDate")
 | 
			
		||||
    trainingCampaignsCompletionsCount: int | None = Field(default=None, alias="TrainingCampaignsCompletionCount")
 | 
			
		||||
    lastTrainingCampaignDate: datetime | None = Field(default=None, alias="LastTrainingCampaignDate")
 | 
			
		||||
    riskLevel: str | None = Field(default=None, alias="RiskLevel")
 | 
			
		||||
    awarenessLevel: str | None = Field(default=None, alias="AwarenessLevel")
 | 
			
		||||
 | 
			
		||||
class CompanyMailboxes(IronscalesModel):
 | 
			
		||||
    id: int | None = Field(default=None, alias="Id")
 | 
			
		||||
    firstName: str | None = Field(default=None, alias="FirstName")
 | 
			
		||||
    lastName: str | None = Field(default=None, alias="LastName")
 | 
			
		||||
    title: str | None = Field(default=None, alias="Title")
 | 
			
		||||
    department: str | None = Field(default=None, alias="Department")
 | 
			
		||||
    email: str | None = Field(default=None, alias="Email")
 | 
			
		||||
    phoneNumber: str | None = Field(default=None, alias="PhoneNumber")
 | 
			
		||||
    tags: list[str] | None = Field(default=None, alias="Tags")
 | 
			
		||||
    language: str | None = Field(default=None, alias="Language")
 | 
			
		||||
    enabled: bool | None = Field(default=None, alias="Enabled")
 | 
			
		||||
    riskLevel: str | None = Field(default=None, alias="RiskLevel")
 | 
			
		||||
    awarenessLevel: str | None = Field(default=None, alias="AwarenessLevel")
 | 
			
		||||
    protected: bool | None = Field(default=None, alias="Protected")
 | 
			
		||||
    unprotectedReason: str | None = Field(default=None, alias="UnprotectedReason")
 | 
			
		||||
 | 
			
		||||
class CompanyMailboxesPutResponse(IronscalesModel):
 | 
			
		||||
    mailbox_ids: list[int] | None = Field(default=None, alias="MailboxIds")
 | 
			
		||||
    error_message: str | None = Field(default=None, alias="ErrorMessage")
 | 
			
		||||
 | 
			
		||||
class UserCampaignPerformance(IronscalesModel):
 | 
			
		||||
    id: int | None = Field(default=None, alias="Id")
 | 
			
		||||
    userId: int | None = Field(default=None, alias="UserId")
 | 
			
		||||
    firstName: str | None = Field(default=None, alias="FirstName")
 | 
			
		||||
    lastName: str | None = Field(default=None, alias="LastName")
 | 
			
		||||
    country: str | None = Field(default=None, alias="Country")
 | 
			
		||||
    department: str | None = Field(default=None, alias="Department")
 | 
			
		||||
    title: str | None = Field(default=None, alias="Title")
 | 
			
		||||
    email: str | None = Field(default=None, alias="Email")
 | 
			
		||||
    campaignId: int | None = Field(default=None, alias="CampaignId")
 | 
			
		||||
    campaignName: str | None = Field(default=None, alias="CampaignName")
 | 
			
		||||
    campaignType: str | None = Field(default=None, alias="CampaignType")
 | 
			
		||||
    campaignSimulationResult: str | None = Field(default=None, alias="CampaignSimulationResult")
 | 
			
		||||
    campaignTrainingStatus: str | None = Field(default=None, alias="CampaignTrainingStatus")
 | 
			
		||||
    campaignTrainingName: str | None = Field(default=None, alias="CampaignTrainingName")
 | 
			
		||||
    campaignCollectingEndDate: datetime | None = Field(default=None, alias="CampaignCollectingEndDate")
 | 
			
		||||
    campaignScore: int | None = Field(default=None, alias="CampaignScore")
 | 
			
		||||
    campaignLocale: str | None = Field(default=None, alias="CampaignLocale")
 | 
			
		||||
    campaignTemplateName: str | None = Field(default=None, alias="CampaignTemplateName")
 | 
			
		||||
 | 
			
		||||
class CompanyImpersonationIncidents(IronscalesModel):
 | 
			
		||||
    incidentID: int | None = Field(default=None, alias="IncidentId")
 | 
			
		||||
    mailboxId: int | None = Field(default=None, alias="MailboxId")
 | 
			
		||||
    remediatedTime: datetime | None = Field(default=None, alias="RemediatedTime")
 | 
			
		||||
    mailboxEmail: str | None = Field(default=None, alias="MailboxEmail")
 | 
			
		||||
    senderEmail: str | None = Field(default=None, alias="SenderEmail")
 | 
			
		||||
    subject: str | None = Field(default=None, alias="Subject")
 | 
			
		||||
    reportedBy: str | None = Field(default=None, alias="ReportedBy")
 | 
			
		||||
    incidentType: str | None = Field(default=None, alias="IncidentType")
 | 
			
		||||
    resolution: str | None = Field(default=None, alias="Resolution")
 | 
			
		||||
    remediations: int | None = Field(default=None, alias="Remediations")
 | 
			
		||||
 | 
			
		||||
class CompanyMitigationDetails(IronscalesModel):
 | 
			
		||||
    incidentID: int | None = Field(default=None, alias="IncidentId")
 | 
			
		||||
    incidentState: int | None = Field(default=None, alias="IncidentState")
 | 
			
		||||
    remediatedTime: datetime | None = Field(default=None, alias="RemediatedTime")
 | 
			
		||||
    affectedMailboxCount: int | None = Field(default=None, alias="AffectedMailboxCount")
 | 
			
		||||
    mailboxId: str | None = Field(default=None, alias="MailboxId")
 | 
			
		||||
    mailboxEmail: str | None = Field(default=None, alias="MailboxEmail")
 | 
			
		||||
    senderEmail: str | None = Field(default=None, alias="SenderEmail")
 | 
			
		||||
    subject: str | None = Field(default=None, alias="Subject")
 | 
			
		||||
    threatType: str | None = Field(default=None, alias="ThreatType")
 | 
			
		||||
    detectionType: str | None = Field(default=None, alias="DetectionType")
 | 
			
		||||
    reportedBy: str | None = Field(default=None, alias="ReportedBy")
 | 
			
		||||
 | 
			
		||||
class CompanyMitigationDetailsPostResponse(IronscalesModel):
 | 
			
		||||
    incidentID: int | None = Field(default=None, alias="IncidentId")
 | 
			
		||||
    mitigationID: int | None = Field(default=None, alias="MitigationID")
 | 
			
		||||
    incidentState: int | None = Field(default=None, alias="IncidentState")
 | 
			
		||||
    remediatedTime: datetime | None = Field(default=None, alias="RemediatedTime")
 | 
			
		||||
    mailboxId: str | None = Field(default=None, alias="MailboxId")
 | 
			
		||||
    mailboxEmail: str | None = Field(default=None, alias="MailboxEmail")
 | 
			
		||||
    subject: str | None = Field(default=None, alias="Subject")
 | 
			
		||||
    senderEmail: str | None = Field(default=None, alias="SenderEmail")
 | 
			
		||||
    senderIP: str | None = Field(default=None, alias="SenderIP")
 | 
			
		||||
    reportedBy: str | None = Field(default=None, alias="ReportedBy")
 | 
			
		||||
    resolution: str | None = Field(default=None, alias="Resolution")
 | 
			
		||||
    spfResult: str | None = Field(default=None, alias="SPFResult")
 | 
			
		||||
 | 
			
		||||
class CompanyMitigationStatistics(IronscalesModel):
 | 
			
		||||
    openIncidentCount: int | None = Field(default=None, alias="OpenIncidentCount")
 | 
			
		||||
    resolvedIncidentCount: int | None = Field(default=None, alias="ResolvedIncidentCount")
 | 
			
		||||
    phishingCount: int | None = Field(default=None, alias="PhishingCount")
 | 
			
		||||
    remediationCount: int | None = Field(default=None, alias="RemediationCount")
 | 
			
		||||
    maliciousAttachmentsCount: int | None = Field(default=None, alias="MaliciousAttachmentsCount")
 | 
			
		||||
    maliciousLinksCount: int | None = Field(default=None, alias="MaliciousLinksCount")
 | 
			
		||||
    impersonationCount: int | None = Field(default=None, alias="ImpersonationCount")
 | 
			
		||||
    reportedByEmployeesCount: int | None = Field(default=None, alias="ReportedByEmployeesCount")
 | 
			
		||||
 | 
			
		||||
class CompanyEmailStatistics(IronscalesModel):
 | 
			
		||||
    inspected_count: int | None = Field(default=None, alias="InspectedCount")
 | 
			
		||||
    phishing_count: int | None = Field(default=None, alias="PhishingCount")
 | 
			
		||||
    spam_count: int | None = Field(default=None, alias="SpamCount")
 | 
			
		||||
    impersonations_count: int | None = Field(default=None, alias="ImpersonationsCount")
 | 
			
		||||
    phishing_threat_types: dict[str, int] | None = Field(default=None, alias="PhishingThreatTypes")
 | 
			
		||||
 | 
			
		||||
class MostTargetedDepartments(IronscalesModel):
 | 
			
		||||
    name: int | None = Field(default=None, alias="Name")
 | 
			
		||||
    emails_count: int | None = Field(default=None, alias="EmailsCount")
 | 
			
		||||
 | 
			
		||||
class MostTargetedEmployees(IronscalesModel):
 | 
			
		||||
    mailbox: int | None = Field(default=None, alias="Mailbox")
 | 
			
		||||
    emails_count: int | None = Field(default=None, alias="EmailsCount")
 | 
			
		||||
 | 
			
		||||
class CompanyMitigationStatisticsV2(IronscalesModel):
 | 
			
		||||
    resolved_by_analyst: dict[str, int | float] | None = Field(default=None, alias="ResolvedByAnalyst")
 | 
			
		||||
    inspected_emails: dict[str, int] | None = Field(default=None, alias="InspectedEmails")
 | 
			
		||||
    resolved_automatically: dict[str, int | float] | None = Field(default=None, alias="ResolvedAutomatically")
 | 
			
		||||
    malicious_content_incidents: dict[str, int] | None = Field(default=None, alias="MaliciousContectIncidents")
 | 
			
		||||
 | 
			
		||||
class CompanyLicensedDomains(IronscalesModel):
 | 
			
		||||
    company_id: int | None = Field(default=None, alias="CompanyId")
 | 
			
		||||
    licensed_domains: list[str] | None = Field(default=None, alias="LicensedDomains")
 | 
			
		||||
 | 
			
		||||
class CompanyLicensedDomainsPutResponse(IronscalesModel):
 | 
			
		||||
    company_id: int | None = Field(default=None, alias="CompanyId")
 | 
			
		||||
    domains_added: list[str] | None = Field(default=None, alias="DomainsAdded")
 | 
			
		||||
    existing_domains: list[str] | None = Field(default=None, alias="ExistingDomains")
 | 
			
		||||
 | 
			
		||||
class CompanyLicense(IronscalesModel):
 | 
			
		||||
    id: int | None = Field(default=None, alias="Id")
 | 
			
		||||
    trialExpiration: datetime | None = Field(default=None, alias="TrialExpiration")
 | 
			
		||||
    trialPlanType: str | None = Field(default=None, alias="TrialPlanType")
 | 
			
		||||
    premiumContentType: str | None = Field(default=None, alias="PremiumContentType")
 | 
			
		||||
    planType: str | None = Field(default=None, alias="PlanType")
 | 
			
		||||
    planExpiration: str | None = Field(default=None, alias="PlanExpiration")
 | 
			
		||||
    mailboxLimit: int | None = Field(default=None, alias="MailboxLimit")
 | 
			
		||||
    is_partner: bool | None = Field(default=None, alias="IsPartner")
 | 
			
		||||
    testMode: bool | None = Field(default=None, alias="TestMode")
 | 
			
		||||
 | 
			
		||||
class AccountTakeoverSensitivySettings(IronscalesModel):
 | 
			
		||||
    sensitivity: int | None = Field(default=None, alias="Sensitivity")
 | 
			
		||||
 | 
			
		||||
class AllowListSettings(IronscalesModel):
 | 
			
		||||
    allow_list: dict[str, Any] | None = Field(default=None, alias="AllowList")
 | 
			
		||||
    internal_active: bool | None = Field(default=None, alias="InternalActive")
 | 
			
		||||
    external_active: bool | None = Field(default=None, alias="ExternalActive")
 | 
			
		||||
 | 
			
		||||
class ChallengedAlerts(IronscalesModel):
 | 
			
		||||
    recipients: list[str] | None = Field(default=None, alias="Recipients")
 | 
			
		||||
 | 
			
		||||
class CompanyNotificationSettings(IronscalesModel):
 | 
			
		||||
    recipients: list[str] | None = Field(default=None, alias="Recipients")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user