From e0fda0c3fe4fd369aec4323f66a8cfefb1cf8134 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Fri, 5 Apr 2024 23:48:26 +0000 Subject: [PATCH] ci: Generate code --- seam/acs_access_groups.py | 29 ++- seam/acs_credential_pools.py | 16 +- ...acs_credential_provisioning_automations.py | 9 +- seam/acs_credentials.py | 22 +- seam/acs_entrances.py | 25 +- seam/acs_systems.py | 14 +- seam/acs_users.py | 26 +-- seam/networks.py | 14 +- seam/types.py | 218 +++++++++++++++--- seam/user_identities.py | 49 ++-- .../user_identities_enrollment_automations.py | 21 +- seam/workspaces.py | 6 +- 12 files changed, 326 insertions(+), 123 deletions(-) diff --git a/seam/acs_access_groups.py b/seam/acs_access_groups.py index fc25915..6716143 100644 --- a/seam/acs_access_groups.py +++ b/seam/acs_access_groups.py @@ -1,4 +1,9 @@ -from seam.types import AbstractAcsAccessGroups, AbstractSeam as Seam +from seam.types import ( + AbstractAcsAccessGroups, + AbstractSeam as Seam, + AcsAccessGroup, + AcsUser, +) from typing import Optional, Any, List, Dict, Union @@ -20,19 +25,21 @@ def add_user(self, *, acs_access_group_id: str, acs_user_id: str) -> None: return None - def get(self, *, acs_access_group_id: str) -> None: + def get(self, *, acs_access_group_id: str) -> AcsAccessGroup: json_payload = {} if acs_access_group_id is not None: json_payload["acs_access_group_id"] = acs_access_group_id - self.seam.make_request("POST", "/acs/access_groups/get", json=json_payload) + res = self.seam.make_request( + "POST", "/acs/access_groups/get", json=json_payload + ) - return None + return AcsAccessGroup.from_dict(res["acs_access_group"]) def list( self, *, acs_system_id: Optional[str] = None, acs_user_id: Optional[str] = None - ) -> None: + ) -> List[AcsAccessGroup]: json_payload = {} if acs_system_id is not None: @@ -40,21 +47,23 @@ def list( if acs_user_id is not None: json_payload["acs_user_id"] = acs_user_id - self.seam.make_request("POST", "/acs/access_groups/list", json=json_payload) + res = self.seam.make_request( + "POST", "/acs/access_groups/list", json=json_payload + ) - return None + return [AcsAccessGroup.from_dict(item) for item in res["acs_access_groups"]] - def list_users(self, *, acs_access_group_id: str) -> None: + def list_users(self, *, acs_access_group_id: str) -> List[AcsUser]: json_payload = {} if acs_access_group_id is not None: json_payload["acs_access_group_id"] = acs_access_group_id - self.seam.make_request( + res = self.seam.make_request( "POST", "/acs/access_groups/list_users", json=json_payload ) - return None + return [AcsUser.from_dict(item) for item in res["acs_users"]] def remove_user(self, *, acs_access_group_id: str, acs_user_id: str) -> None: json_payload = {} diff --git a/seam/acs_credential_pools.py b/seam/acs_credential_pools.py index 25985d1..4d37488 100644 --- a/seam/acs_credential_pools.py +++ b/seam/acs_credential_pools.py @@ -1,4 +1,8 @@ -from seam.types import AbstractAcsCredentialPools, AbstractSeam as Seam +from seam.types import ( + AbstractAcsCredentialPools, + AbstractSeam as Seam, + AcsCredentialPool, +) from typing import Optional, Any, List, Dict, Union @@ -8,12 +12,16 @@ class AcsCredentialPools(AbstractAcsCredentialPools): def __init__(self, seam: Seam): self.seam = seam - def list(self, *, acs_system_id: str) -> None: + def list(self, *, acs_system_id: str) -> List[AcsCredentialPool]: json_payload = {} if acs_system_id is not None: json_payload["acs_system_id"] = acs_system_id - self.seam.make_request("POST", "/acs/credential_pools/list", json=json_payload) + res = self.seam.make_request( + "POST", "/acs/credential_pools/list", json=json_payload + ) - return None + return [ + AcsCredentialPool.from_dict(item) for item in res["acs_credential_pools"] + ] diff --git a/seam/acs_credential_provisioning_automations.py b/seam/acs_credential_provisioning_automations.py index cde5159..a8beece 100644 --- a/seam/acs_credential_provisioning_automations.py +++ b/seam/acs_credential_provisioning_automations.py @@ -1,6 +1,7 @@ from seam.types import ( AbstractAcsCredentialProvisioningAutomations, AbstractSeam as Seam, + AcsCredentialProvisioningAutomation, ) from typing import Optional, Any, List, Dict, Union @@ -21,7 +22,7 @@ def launch( acs_credential_pool_id: Optional[str] = None, create_credential_manager_user: Optional[bool] = None, credential_manager_acs_user_id: Optional[str] = None - ) -> None: + ) -> AcsCredentialProvisioningAutomation: json_payload = {} if user_identity_id is not None: @@ -41,8 +42,10 @@ def launch( credential_manager_acs_user_id ) - self.seam.make_request( + res = self.seam.make_request( "POST", "/acs/credential_provisioning_automations/launch", json=json_payload ) - return None + return AcsCredentialProvisioningAutomation.from_dict( + res["acs_credential_provisioning_automation"] + ) diff --git a/seam/acs_credentials.py b/seam/acs_credentials.py index 31f5b59..a297edf 100644 --- a/seam/acs_credentials.py +++ b/seam/acs_credentials.py @@ -1,4 +1,4 @@ -from seam.types import AbstractAcsCredentials, AbstractSeam as Seam +from seam.types import AbstractAcsCredentials, AbstractSeam as Seam, AcsCredential from typing import Optional, Any, List, Dict, Union @@ -32,7 +32,7 @@ def create( visionline_metadata: Optional[Dict[str, Any]] = None, starts_at: Optional[str] = None, ends_at: Optional[str] = None - ) -> None: + ) -> AcsCredential: json_payload = {} if acs_user_id is not None: @@ -58,9 +58,11 @@ def create( if ends_at is not None: json_payload["ends_at"] = ends_at - self.seam.make_request("POST", "/acs/credentials/create", json=json_payload) + res = self.seam.make_request( + "POST", "/acs/credentials/create", json=json_payload + ) - return None + return AcsCredential.from_dict(res["acs_credential"]) def delete(self, *, acs_credential_id: str) -> None: json_payload = {} @@ -72,15 +74,15 @@ def delete(self, *, acs_credential_id: str) -> None: return None - def get(self, *, acs_credential_id: str) -> None: + def get(self, *, acs_credential_id: str) -> AcsCredential: json_payload = {} if acs_credential_id is not None: json_payload["acs_credential_id"] = acs_credential_id - self.seam.make_request("POST", "/acs/credentials/get", json=json_payload) + res = self.seam.make_request("POST", "/acs/credentials/get", json=json_payload) - return None + return AcsCredential.from_dict(res["acs_credential"]) def list( self, @@ -89,7 +91,7 @@ def list( acs_system_id: Optional[str] = None, user_identity_id: Optional[str] = None, is_multi_phone_sync_credential: Optional[bool] = None - ) -> None: + ) -> List[AcsCredential]: json_payload = {} if acs_user_id is not None: @@ -103,9 +105,9 @@ def list( is_multi_phone_sync_credential ) - self.seam.make_request("POST", "/acs/credentials/list", json=json_payload) + res = self.seam.make_request("POST", "/acs/credentials/list", json=json_payload) - return None + return [AcsCredential.from_dict(item) for item in res["acs_credentials"]] def unassign(self, *, acs_user_id: str, acs_credential_id: str) -> None: json_payload = {} diff --git a/seam/acs_entrances.py b/seam/acs_entrances.py index a73ce49..0dc40f0 100644 --- a/seam/acs_entrances.py +++ b/seam/acs_entrances.py @@ -1,4 +1,9 @@ -from seam.types import AbstractAcsEntrances, AbstractSeam as Seam +from seam.types import ( + AbstractAcsEntrances, + AbstractSeam as Seam, + AcsEntrance, + AcsCredential, +) from typing import Optional, Any, List, Dict, Union @@ -8,15 +13,15 @@ class AcsEntrances(AbstractAcsEntrances): def __init__(self, seam: Seam): self.seam = seam - def get(self, *, acs_entrance_id: str) -> None: + def get(self, *, acs_entrance_id: str) -> AcsEntrance: json_payload = {} if acs_entrance_id is not None: json_payload["acs_entrance_id"] = acs_entrance_id - self.seam.make_request("POST", "/acs/entrances/get", json=json_payload) + res = self.seam.make_request("POST", "/acs/entrances/get", json=json_payload) - return None + return AcsEntrance.from_dict(res["acs_entrance"]) def grant_access(self, *, acs_entrance_id: str, acs_user_id: str) -> None: json_payload = {} @@ -35,7 +40,7 @@ def list( *, acs_system_id: Optional[str] = None, acs_credential_id: Optional[str] = None - ) -> None: + ) -> List[AcsEntrance]: json_payload = {} if acs_system_id is not None: @@ -43,13 +48,13 @@ def list( if acs_credential_id is not None: json_payload["acs_credential_id"] = acs_credential_id - self.seam.make_request("POST", "/acs/entrances/list", json=json_payload) + res = self.seam.make_request("POST", "/acs/entrances/list", json=json_payload) - return None + return [AcsEntrance.from_dict(item) for item in res["acs_entrances"]] def list_credentials_with_access( self, *, acs_entrance_id: str, include_if: Optional[List[str]] = None - ) -> None: + ) -> List[AcsCredential]: json_payload = {} if acs_entrance_id is not None: @@ -57,8 +62,8 @@ def list_credentials_with_access( if include_if is not None: json_payload["include_if"] = include_if - self.seam.make_request( + res = self.seam.make_request( "POST", "/acs/entrances/list_credentials_with_access", json=json_payload ) - return None + return [AcsCredential.from_dict(item) for item in res["acs_credentials"]] diff --git a/seam/acs_systems.py b/seam/acs_systems.py index c093544..c5b0207 100644 --- a/seam/acs_systems.py +++ b/seam/acs_systems.py @@ -1,4 +1,4 @@ -from seam.types import AbstractAcsSystems, AbstractSeam as Seam +from seam.types import AbstractAcsSystems, AbstractSeam as Seam, AcsSystem from typing import Optional, Any, List, Dict, Union @@ -8,22 +8,22 @@ class AcsSystems(AbstractAcsSystems): def __init__(self, seam: Seam): self.seam = seam - def get(self, *, acs_system_id: str) -> None: + def get(self, *, acs_system_id: str) -> AcsSystem: json_payload = {} if acs_system_id is not None: json_payload["acs_system_id"] = acs_system_id - self.seam.make_request("POST", "/acs/systems/get", json=json_payload) + res = self.seam.make_request("POST", "/acs/systems/get", json=json_payload) - return None + return AcsSystem.from_dict(res["acs_system"]) - def list(self, *, connected_account_id: Optional[str] = None) -> None: + def list(self, *, connected_account_id: Optional[str] = None) -> List[AcsSystem]: json_payload = {} if connected_account_id is not None: json_payload["connected_account_id"] = connected_account_id - self.seam.make_request("POST", "/acs/systems/list", json=json_payload) + res = self.seam.make_request("POST", "/acs/systems/list", json=json_payload) - return None + return [AcsSystem.from_dict(item) for item in res["acs_systems"]] diff --git a/seam/acs_users.py b/seam/acs_users.py index 3b978d5..c368d16 100644 --- a/seam/acs_users.py +++ b/seam/acs_users.py @@ -1,4 +1,4 @@ -from seam.types import AbstractAcsUsers, AbstractSeam as Seam +from seam.types import AbstractAcsUsers, AbstractSeam as Seam, AcsUser, AcsEntrance from typing import Optional, Any, List, Dict, Union @@ -35,7 +35,7 @@ def create( email: Optional[str] = None, phone_number: Optional[str] = None, email_address: Optional[str] = None - ) -> None: + ) -> AcsUser: json_payload = {} if acs_system_id is not None: @@ -55,9 +55,9 @@ def create( if email_address is not None: json_payload["email_address"] = email_address - self.seam.make_request("POST", "/acs/users/create", json=json_payload) + res = self.seam.make_request("POST", "/acs/users/create", json=json_payload) - return None + return AcsUser.from_dict(res["acs_user"]) def delete(self, *, acs_user_id: str) -> None: json_payload = {} @@ -69,15 +69,15 @@ def delete(self, *, acs_user_id: str) -> None: return None - def get(self, *, acs_user_id: str) -> None: + def get(self, *, acs_user_id: str) -> AcsUser: json_payload = {} if acs_user_id is not None: json_payload["acs_user_id"] = acs_user_id - self.seam.make_request("POST", "/acs/users/get", json=json_payload) + res = self.seam.make_request("POST", "/acs/users/get", json=json_payload) - return None + return AcsUser.from_dict(res["acs_user"]) def list( self, @@ -86,7 +86,7 @@ def list( user_identity_phone_number: Optional[str] = None, user_identity_email_address: Optional[str] = None, acs_system_id: Optional[str] = None - ) -> None: + ) -> List[AcsUser]: json_payload = {} if user_identity_id is not None: @@ -98,21 +98,21 @@ def list( if acs_system_id is not None: json_payload["acs_system_id"] = acs_system_id - self.seam.make_request("POST", "/acs/users/list", json=json_payload) + res = self.seam.make_request("POST", "/acs/users/list", json=json_payload) - return None + return [AcsUser.from_dict(item) for item in res["acs_users"]] - def list_accessible_entrances(self, *, acs_user_id: str) -> None: + def list_accessible_entrances(self, *, acs_user_id: str) -> List[AcsEntrance]: json_payload = {} if acs_user_id is not None: json_payload["acs_user_id"] = acs_user_id - self.seam.make_request( + res = self.seam.make_request( "POST", "/acs/users/list_accessible_entrances", json=json_payload ) - return None + return [AcsEntrance.from_dict(item) for item in res["acs_entrances"]] def remove_from_access_group( self, *, acs_user_id: str, acs_access_group_id: str diff --git a/seam/networks.py b/seam/networks.py index 2944b95..689ac9c 100644 --- a/seam/networks.py +++ b/seam/networks.py @@ -1,4 +1,4 @@ -from seam.types import AbstractNetworks, AbstractSeam as Seam +from seam.types import AbstractNetworks, AbstractSeam as Seam, Network from typing import Optional, Any, List, Dict, Union @@ -8,21 +8,21 @@ class Networks(AbstractNetworks): def __init__(self, seam: Seam): self.seam = seam - def get(self, *, network_id: str) -> None: + def get(self, *, network_id: str) -> Network: json_payload = {} if network_id is not None: json_payload["network_id"] = network_id - self.seam.make_request("POST", "/networks/get", json=json_payload) + res = self.seam.make_request("POST", "/networks/get", json=json_payload) - return None + return Network.from_dict(res["network"]) def list( self, - ) -> None: + ) -> List[Network]: json_payload = {} - self.seam.make_request("POST", "/networks/list", json=json_payload) + res = self.seam.make_request("POST", "/networks/list", json=json_payload) - return None + return [Network.from_dict(item) for item in res["networks"]] diff --git a/seam/types.py b/seam/types.py index 79ea643..c2d8d0f 100644 --- a/seam/types.py +++ b/seam/types.py @@ -191,8 +191,8 @@ class ConnectWebview: device_selection_mode: str accepted_providers: List[str] accepted_devices: List[str] - any_provider_allowed: bool any_device_allowed: bool + any_provider_allowed: bool login_successful: bool status: str custom_redirect_url: str @@ -214,8 +214,8 @@ def from_dict(d: Dict[str, Any]): device_selection_mode=d.get("device_selection_mode", None), accepted_providers=d.get("accepted_providers", None), accepted_devices=d.get("accepted_devices", None), - any_provider_allowed=d.get("any_provider_allowed", None), any_device_allowed=d.get("any_device_allowed", None), + any_provider_allowed=d.get("any_provider_allowed", None), login_successful=d.get("login_successful", None), status=d.get("status", None), custom_redirect_url=d.get("custom_redirect_url", None), @@ -560,6 +560,120 @@ def from_dict(d: Dict[str, Any]): ) +@dataclass +class AcsEntrance: + acs_entrance_id: str + display_name: str + acs_system_id: str + created_at: str + latch_metadata: Dict[str, Any] + visionline_metadata: Dict[str, Any] + + @staticmethod + def from_dict(d: Dict[str, Any]): + return AcsEntrance( + acs_entrance_id=d.get("acs_entrance_id", None), + display_name=d.get("display_name", None), + acs_system_id=d.get("acs_system_id", None), + created_at=d.get("created_at", None), + latch_metadata=DeepAttrDict(d.get("latch_metadata", None)), + visionline_metadata=DeepAttrDict(d.get("visionline_metadata", None)), + ) + + +@dataclass +class AcsCredentialProvisioningAutomation: + acs_credential_provisioning_automation_id: str + credential_manager_acs_system_id: str + user_identity_id: str + created_at: str + workspace_id: str + + @staticmethod + def from_dict(d: Dict[str, Any]): + return AcsCredentialProvisioningAutomation( + acs_credential_provisioning_automation_id=d.get( + "acs_credential_provisioning_automation_id", None + ), + credential_manager_acs_system_id=d.get( + "credential_manager_acs_system_id", None + ), + user_identity_id=d.get("user_identity_id", None), + created_at=d.get("created_at", None), + workspace_id=d.get("workspace_id", None), + ) + + +@dataclass +class AcsCredentialPool: + acs_credential_pool_id: str + acs_system_id: str + display_name: str + external_type: str + external_type_display_name: str + created_at: str + workspace_id: str + + @staticmethod + def from_dict(d: Dict[str, Any]): + return AcsCredentialPool( + acs_credential_pool_id=d.get("acs_credential_pool_id", None), + acs_system_id=d.get("acs_system_id", None), + display_name=d.get("display_name", None), + external_type=d.get("external_type", None), + external_type_display_name=d.get("external_type_display_name", None), + created_at=d.get("created_at", None), + workspace_id=d.get("workspace_id", None), + ) + + +@dataclass +class AcsCredential: + acs_credential_id: str + acs_user_id: str + acs_credential_pool_id: str + acs_system_id: str + parent_acs_credential_id: str + display_name: str + code: str + access_method: str + external_type: str + external_type_display_name: str + created_at: str + workspace_id: str + starts_at: str + ends_at: str + errors: List[Dict[str, Any]] + warnings: List[Dict[str, Any]] + is_multi_phone_sync_credential: bool + visionline_metadata: Dict[str, Any] + + @staticmethod + def from_dict(d: Dict[str, Any]): + return AcsCredential( + acs_credential_id=d.get("acs_credential_id", None), + acs_user_id=d.get("acs_user_id", None), + acs_credential_pool_id=d.get("acs_credential_pool_id", None), + acs_system_id=d.get("acs_system_id", None), + parent_acs_credential_id=d.get("parent_acs_credential_id", None), + display_name=d.get("display_name", None), + code=d.get("code", None), + access_method=d.get("access_method", None), + external_type=d.get("external_type", None), + external_type_display_name=d.get("external_type_display_name", None), + created_at=d.get("created_at", None), + workspace_id=d.get("workspace_id", None), + starts_at=d.get("starts_at", None), + ends_at=d.get("ends_at", None), + errors=d.get("errors", None), + warnings=d.get("warnings", None), + is_multi_phone_sync_credential=d.get( + "is_multi_phone_sync_credential", None + ), + visionline_metadata=DeepAttrDict(d.get("visionline_metadata", None)), + ) + + @dataclass class EnrollmentAutomation: credential_manager_acs_system_id: str @@ -626,6 +740,48 @@ def from_dict(d: Dict[str, Any]): ) +@dataclass +class UserIdentity: + user_identity_id: str + user_identity_key: str + email_address: str + phone_number: str + display_name: str + full_name: str + created_at: str + workspace_id: str + + @staticmethod + def from_dict(d: Dict[str, Any]): + return UserIdentity( + user_identity_id=d.get("user_identity_id", None), + user_identity_key=d.get("user_identity_key", None), + email_address=d.get("email_address", None), + phone_number=d.get("phone_number", None), + display_name=d.get("display_name", None), + full_name=d.get("full_name", None), + created_at=d.get("created_at", None), + workspace_id=d.get("workspace_id", None), + ) + + +@dataclass +class Network: + network_id: str + workspace_id: str + display_name: str + created_at: str + + @staticmethod + def from_dict(d: Dict[str, Any]): + return Network( + network_id=d.get("network_id", None), + workspace_id=d.get("workspace_id", None), + display_name=d.get("display_name", None), + created_at=d.get("created_at", None), + ) + + class SeamApiException(Exception): def __init__( self, @@ -893,13 +1049,13 @@ def unlock_door( class AbstractNetworks(abc.ABC): @abc.abstractmethod - def get(self, *, network_id: str) -> None: + def get(self, *, network_id: str) -> Network: raise NotImplementedError() @abc.abstractmethod def list( self, - ) -> None: + ) -> List[Network]: raise NotImplementedError() @@ -939,7 +1095,7 @@ def create( is_sandbox: Optional[bool] = None, webview_primary_button_color: Optional[str] = None, webview_logo_shape: Optional[str] = None, - ) -> None: + ) -> Workspace: raise NotImplementedError() @abc.abstractmethod @@ -1024,17 +1180,17 @@ def add_user(self, *, acs_access_group_id: str, acs_user_id: str) -> None: raise NotImplementedError() @abc.abstractmethod - def get(self, *, acs_access_group_id: str) -> None: + def get(self, *, acs_access_group_id: str) -> AcsAccessGroup: raise NotImplementedError() @abc.abstractmethod def list( self, *, acs_system_id: Optional[str] = None, acs_user_id: Optional[str] = None - ) -> None: + ) -> List[AcsAccessGroup]: raise NotImplementedError() @abc.abstractmethod - def list_users(self, *, acs_access_group_id: str) -> None: + def list_users(self, *, acs_access_group_id: str) -> List[AcsUser]: raise NotImplementedError() @abc.abstractmethod @@ -1045,7 +1201,7 @@ def remove_user(self, *, acs_access_group_id: str, acs_user_id: str) -> None: class AbstractAcsCredentialPools(abc.ABC): @abc.abstractmethod - def list(self, *, acs_system_id: str) -> None: + def list(self, *, acs_system_id: str) -> List[AcsCredentialPool]: raise NotImplementedError() @@ -1060,7 +1216,7 @@ def launch( acs_credential_pool_id: Optional[str] = None, create_credential_manager_user: Optional[bool] = None, credential_manager_acs_user_id: Optional[str] = None, - ) -> None: + ) -> AcsCredentialProvisioningAutomation: raise NotImplementedError() @@ -1083,7 +1239,7 @@ def create( visionline_metadata: Optional[Dict[str, Any]] = None, starts_at: Optional[str] = None, ends_at: Optional[str] = None, - ) -> None: + ) -> AcsCredential: raise NotImplementedError() @abc.abstractmethod @@ -1091,7 +1247,7 @@ def delete(self, *, acs_credential_id: str) -> None: raise NotImplementedError() @abc.abstractmethod - def get(self, *, acs_credential_id: str) -> None: + def get(self, *, acs_credential_id: str) -> AcsCredential: raise NotImplementedError() @abc.abstractmethod @@ -1102,7 +1258,7 @@ def list( acs_system_id: Optional[str] = None, user_identity_id: Optional[str] = None, is_multi_phone_sync_credential: Optional[bool] = None, - ) -> None: + ) -> List[AcsCredential]: raise NotImplementedError() @abc.abstractmethod @@ -1117,7 +1273,7 @@ def update(self, *, acs_credential_id: str, code: str) -> None: class AbstractAcsEntrances(abc.ABC): @abc.abstractmethod - def get(self, *, acs_entrance_id: str) -> None: + def get(self, *, acs_entrance_id: str) -> AcsEntrance: raise NotImplementedError() @abc.abstractmethod @@ -1130,24 +1286,24 @@ def list( *, acs_system_id: Optional[str] = None, acs_credential_id: Optional[str] = None, - ) -> None: + ) -> List[AcsEntrance]: raise NotImplementedError() @abc.abstractmethod def list_credentials_with_access( self, *, acs_entrance_id: str, include_if: Optional[List[str]] = None - ) -> None: + ) -> List[AcsCredential]: raise NotImplementedError() class AbstractAcsSystems(abc.ABC): @abc.abstractmethod - def get(self, *, acs_system_id: str) -> None: + def get(self, *, acs_system_id: str) -> AcsSystem: raise NotImplementedError() @abc.abstractmethod - def list(self, *, connected_account_id: Optional[str] = None) -> None: + def list(self, *, connected_account_id: Optional[str] = None) -> List[AcsSystem]: raise NotImplementedError() @@ -1171,7 +1327,7 @@ def create( email: Optional[str] = None, phone_number: Optional[str] = None, email_address: Optional[str] = None, - ) -> None: + ) -> AcsUser: raise NotImplementedError() @abc.abstractmethod @@ -1179,7 +1335,7 @@ def delete(self, *, acs_user_id: str) -> None: raise NotImplementedError() @abc.abstractmethod - def get(self, *, acs_user_id: str) -> None: + def get(self, *, acs_user_id: str) -> AcsUser: raise NotImplementedError() @abc.abstractmethod @@ -1190,11 +1346,11 @@ def list( user_identity_phone_number: Optional[str] = None, user_identity_email_address: Optional[str] = None, acs_system_id: Optional[str] = None, - ) -> None: + ) -> List[AcsUser]: raise NotImplementedError() @abc.abstractmethod - def list_accessible_entrances(self, *, acs_user_id: str) -> None: + def list_accessible_entrances(self, *, acs_user_id: str) -> List[AcsEntrance]: raise NotImplementedError() @abc.abstractmethod @@ -1408,7 +1564,7 @@ def delete(self, *, enrollment_automation_id: str) -> None: raise NotImplementedError() @abc.abstractmethod - def get(self, *, enrollment_automation_id: str) -> None: + def get(self, *, enrollment_automation_id: str) -> EnrollmentAutomation: raise NotImplementedError() @abc.abstractmethod @@ -1424,7 +1580,7 @@ def launch( raise NotImplementedError() @abc.abstractmethod - def list(self, *, user_identity_id: str) -> None: + def list(self, *, user_identity_id: str) -> List[EnrollmentAutomation]: raise NotImplementedError() @@ -1563,7 +1719,7 @@ def create( email_address: Optional[str] = None, phone_number: Optional[str] = None, full_name: Optional[str] = None, - ) -> None: + ) -> UserIdentity: raise NotImplementedError() @abc.abstractmethod @@ -1576,7 +1732,7 @@ def get( *, user_identity_id: Optional[str] = None, user_identity_key: Optional[str] = None, - ) -> None: + ) -> UserIdentity: raise NotImplementedError() @abc.abstractmethod @@ -1584,19 +1740,21 @@ def grant_access_to_device(self, *, user_identity_id: str, device_id: str) -> No raise NotImplementedError() @abc.abstractmethod - def list(self, *, credential_manager_acs_system_id: Optional[str] = None) -> None: + def list( + self, *, credential_manager_acs_system_id: Optional[str] = None + ) -> List[UserIdentity]: raise NotImplementedError() @abc.abstractmethod - def list_accessible_devices(self, *, user_identity_id: str) -> None: + def list_accessible_devices(self, *, user_identity_id: str) -> List[Device]: raise NotImplementedError() @abc.abstractmethod - def list_acs_systems(self, *, user_identity_id: str) -> None: + def list_acs_systems(self, *, user_identity_id: str) -> List[AcsSystem]: raise NotImplementedError() @abc.abstractmethod - def list_acs_users(self, *, user_identity_id: str) -> None: + def list_acs_users(self, *, user_identity_id: str) -> List[AcsUser]: raise NotImplementedError() @abc.abstractmethod diff --git a/seam/user_identities.py b/seam/user_identities.py index 574b0a7..bcf2db1 100644 --- a/seam/user_identities.py +++ b/seam/user_identities.py @@ -1,4 +1,11 @@ -from seam.types import AbstractUserIdentities, AbstractSeam as Seam +from seam.types import ( + AbstractUserIdentities, + AbstractSeam as Seam, + UserIdentity, + Device, + AcsSystem, + AcsUser, +) from typing import Optional, Any, List, Dict, Union from seam.user_identities_enrollment_automations import ( UserIdentitiesEnrollmentAutomations, @@ -37,7 +44,7 @@ def create( email_address: Optional[str] = None, phone_number: Optional[str] = None, full_name: Optional[str] = None - ) -> None: + ) -> UserIdentity: json_payload = {} if user_identity_key is not None: @@ -49,9 +56,11 @@ def create( if full_name is not None: json_payload["full_name"] = full_name - self.seam.make_request("POST", "/user_identities/create", json=json_payload) + res = self.seam.make_request( + "POST", "/user_identities/create", json=json_payload + ) - return None + return UserIdentity.from_dict(res["user_identity"]) def delete(self, *, user_identity_id: str) -> None: json_payload = {} @@ -68,7 +77,7 @@ def get( *, user_identity_id: Optional[str] = None, user_identity_key: Optional[str] = None - ) -> None: + ) -> UserIdentity: json_payload = {} if user_identity_id is not None: @@ -76,9 +85,9 @@ def get( if user_identity_key is not None: json_payload["user_identity_key"] = user_identity_key - self.seam.make_request("POST", "/user_identities/get", json=json_payload) + res = self.seam.make_request("POST", "/user_identities/get", json=json_payload) - return None + return UserIdentity.from_dict(res["user_identity"]) def grant_access_to_device(self, *, user_identity_id: str, device_id: str) -> None: json_payload = {} @@ -94,7 +103,9 @@ def grant_access_to_device(self, *, user_identity_id: str, device_id: str) -> No return None - def list(self, *, credential_manager_acs_system_id: Optional[str] = None) -> None: + def list( + self, *, credential_manager_acs_system_id: Optional[str] = None + ) -> List[UserIdentity]: json_payload = {} if credential_manager_acs_system_id is not None: @@ -102,45 +113,45 @@ def list(self, *, credential_manager_acs_system_id: Optional[str] = None) -> Non credential_manager_acs_system_id ) - self.seam.make_request("POST", "/user_identities/list", json=json_payload) + res = self.seam.make_request("POST", "/user_identities/list", json=json_payload) - return None + return [UserIdentity.from_dict(item) for item in res["user_identities"]] - def list_accessible_devices(self, *, user_identity_id: str) -> None: + def list_accessible_devices(self, *, user_identity_id: str) -> List[Device]: json_payload = {} if user_identity_id is not None: json_payload["user_identity_id"] = user_identity_id - self.seam.make_request( + res = self.seam.make_request( "POST", "/user_identities/list_accessible_devices", json=json_payload ) - return None + return [Device.from_dict(item) for item in res["devices"]] - def list_acs_systems(self, *, user_identity_id: str) -> None: + def list_acs_systems(self, *, user_identity_id: str) -> List[AcsSystem]: json_payload = {} if user_identity_id is not None: json_payload["user_identity_id"] = user_identity_id - self.seam.make_request( + res = self.seam.make_request( "POST", "/user_identities/list_acs_systems", json=json_payload ) - return None + return [AcsSystem.from_dict(item) for item in res["acs_systems"]] - def list_acs_users(self, *, user_identity_id: str) -> None: + def list_acs_users(self, *, user_identity_id: str) -> List[AcsUser]: json_payload = {} if user_identity_id is not None: json_payload["user_identity_id"] = user_identity_id - self.seam.make_request( + res = self.seam.make_request( "POST", "/user_identities/list_acs_users", json=json_payload ) - return None + return [AcsUser.from_dict(item) for item in res["acs_users"]] def remove_acs_user(self, *, user_identity_id: str, acs_user_id: str) -> None: json_payload = {} diff --git a/seam/user_identities_enrollment_automations.py b/seam/user_identities_enrollment_automations.py index 41c0c40..778aafb 100644 --- a/seam/user_identities_enrollment_automations.py +++ b/seam/user_identities_enrollment_automations.py @@ -1,4 +1,8 @@ -from seam.types import AbstractUserIdentitiesEnrollmentAutomations, AbstractSeam as Seam +from seam.types import ( + AbstractUserIdentitiesEnrollmentAutomations, + AbstractSeam as Seam, + EnrollmentAutomation, +) from typing import Optional, Any, List, Dict, Union @@ -20,17 +24,17 @@ def delete(self, *, enrollment_automation_id: str) -> None: return None - def get(self, *, enrollment_automation_id: str) -> None: + def get(self, *, enrollment_automation_id: str) -> EnrollmentAutomation: json_payload = {} if enrollment_automation_id is not None: json_payload["enrollment_automation_id"] = enrollment_automation_id - self.seam.make_request( + res = self.seam.make_request( "POST", "/user_identities/enrollment_automations/get", json=json_payload ) - return None + return EnrollmentAutomation.from_dict(res["enrollment_automation"]) def launch( self, @@ -66,14 +70,17 @@ def launch( return None - def list(self, *, user_identity_id: str) -> None: + def list(self, *, user_identity_id: str) -> List[EnrollmentAutomation]: json_payload = {} if user_identity_id is not None: json_payload["user_identity_id"] = user_identity_id - self.seam.make_request( + res = self.seam.make_request( "POST", "/user_identities/enrollment_automations/list", json=json_payload ) - return None + return [ + EnrollmentAutomation.from_dict(item) + for item in res["enrollment_automations"] + ] diff --git a/seam/workspaces.py b/seam/workspaces.py index c2087d5..b4391e6 100644 --- a/seam/workspaces.py +++ b/seam/workspaces.py @@ -16,7 +16,7 @@ def create( is_sandbox: Optional[bool] = None, webview_primary_button_color: Optional[str] = None, webview_logo_shape: Optional[str] = None - ) -> None: + ) -> Workspace: json_payload = {} if name is not None: @@ -30,9 +30,9 @@ def create( if webview_logo_shape is not None: json_payload["webview_logo_shape"] = webview_logo_shape - self.seam.make_request("POST", "/workspaces/create", json=json_payload) + res = self.seam.make_request("POST", "/workspaces/create", json=json_payload) - return None + return Workspace.from_dict(res["workspace"]) def get( self,