From b6e27646353a232b457edbe80c8244859ed2196a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 09:19:02 +0000 Subject: [PATCH 1/2] feat(deps-dev): Bump @seamapi/types in the seam group Bumps the seam group with 1 update: [@seamapi/types](https://github.com/seamapi/types). Updates `@seamapi/types` from 1.233.0 to 1.235.0 - [Release notes](https://github.com/seamapi/types/releases) - [Changelog](https://github.com/seamapi/types/blob/main/.releaserc.json) - [Commits](https://github.com/seamapi/types/compare/v1.233.0...v1.235.0) --- updated-dependencies: - dependency-name: "@seamapi/types" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: seam ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 743e5d8..3874ed7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "devDependencies": { "@seamapi/fake-seam-connect": "1.72.0", "@seamapi/nextlove-sdk-generator": "1.14.2", - "@seamapi/types": "1.233.0", + "@seamapi/types": "1.235.0", "del": "^7.1.0", "prettier": "^3.2.5" } @@ -473,9 +473,9 @@ } }, "node_modules/@seamapi/types": { - "version": "1.233.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.233.0.tgz", - "integrity": "sha512-yXRnBjgegq0oO1JD3WFMsCsr6zX0QgWhUzsGFlG2AuyAZ8W5EfXsUl4+QnTWr6CFe/0bxJiefsJ5K/7pmU7r/Q==", + "version": "1.235.0", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.235.0.tgz", + "integrity": "sha512-U9I9ZVn8fsu9ch892JCklX9tnAUAYZZLdkRyJNvF/460CPp1mg/iPPcwXeASWZruX61hONfqRwVAqvKxEcRTkg==", "dev": true, "engines": { "node": ">=18.12.0", diff --git a/package.json b/package.json index 63747b0..7ce33b8 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "devDependencies": { "@seamapi/fake-seam-connect": "1.72.0", "@seamapi/nextlove-sdk-generator": "1.14.2", - "@seamapi/types": "1.233.0", + "@seamapi/types": "1.235.0", "del": "^7.1.0", "prettier": "^3.2.5" } From 80448267c6f894814cab657955d1b70e2d1a8ea1 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 28 Aug 2024 09:19:50 +0000 Subject: [PATCH 2/2] ci: Generate code --- seam/routes/acs_access_groups_unmanaged.py | 33 ++++++++++++++++ seam/routes/acs_credentials_unmanaged.py | 39 ++++++++++++++++++ seam/routes/acs_users_unmanaged.py | 26 +++++++++--- seam/routes/models.py | 46 +++++++++++++++++++++- 4 files changed, 138 insertions(+), 6 deletions(-) create mode 100644 seam/routes/acs_access_groups_unmanaged.py create mode 100644 seam/routes/acs_credentials_unmanaged.py diff --git a/seam/routes/acs_access_groups_unmanaged.py b/seam/routes/acs_access_groups_unmanaged.py new file mode 100644 index 0000000..3270ed4 --- /dev/null +++ b/seam/routes/acs_access_groups_unmanaged.py @@ -0,0 +1,33 @@ +from typing import Optional, Any, List, Dict, Union +from ..client import SeamHttpClient +from .models import AbstractAcsAccessGroupsUnmanaged + + +class AcsAccessGroupsUnmanaged(AbstractAcsAccessGroupsUnmanaged): + def __init__(self, client: SeamHttpClient, defaults: Dict[str, Any]): + self.client = client + self.defaults = defaults + + def get(self, *, acs_access_group_id: str) -> None: + json_payload = {} + + if acs_access_group_id is not None: + json_payload["acs_access_group_id"] = acs_access_group_id + + self.client.post("/acs/access_groups/unmanaged/get", json=json_payload) + + return None + + def list( + self, *, acs_system_id: Optional[str] = None, acs_user_id: Optional[str] = None + ) -> None: + json_payload = {} + + if acs_system_id is not None: + json_payload["acs_system_id"] = acs_system_id + if acs_user_id is not None: + json_payload["acs_user_id"] = acs_user_id + + self.client.post("/acs/access_groups/unmanaged/list", json=json_payload) + + return None diff --git a/seam/routes/acs_credentials_unmanaged.py b/seam/routes/acs_credentials_unmanaged.py new file mode 100644 index 0000000..b86daa9 --- /dev/null +++ b/seam/routes/acs_credentials_unmanaged.py @@ -0,0 +1,39 @@ +from typing import Optional, Any, List, Dict, Union +from ..client import SeamHttpClient +from .models import AbstractAcsCredentialsUnmanaged + + +class AcsCredentialsUnmanaged(AbstractAcsCredentialsUnmanaged): + def __init__(self, client: SeamHttpClient, defaults: Dict[str, Any]): + self.client = client + self.defaults = defaults + + def get(self, *, acs_credential_id: str) -> None: + json_payload = {} + + if acs_credential_id is not None: + json_payload["acs_credential_id"] = acs_credential_id + + self.client.post("/acs/credentials/unmanaged/get", json=json_payload) + + return None + + def list( + self, + *, + acs_user_id: Optional[str] = None, + acs_system_id: Optional[str] = None, + user_identity_id: Optional[str] = None + ) -> None: + json_payload = {} + + if acs_user_id is not None: + json_payload["acs_user_id"] = acs_user_id + if acs_system_id is not None: + json_payload["acs_system_id"] = acs_system_id + if user_identity_id is not None: + json_payload["user_identity_id"] = user_identity_id + + self.client.post("/acs/credentials/unmanaged/list", json=json_payload) + + return None diff --git a/seam/routes/acs_users_unmanaged.py b/seam/routes/acs_users_unmanaged.py index c6b1929..c9c6dec 100644 --- a/seam/routes/acs_users_unmanaged.py +++ b/seam/routes/acs_users_unmanaged.py @@ -18,12 +18,28 @@ def get(self, *, acs_user_id: str) -> AcsUser: return AcsUser.from_dict(res["acs_user"]) - def list(self, *, acs_system_id: str) -> List[AcsUser]: + def list( + self, + *, + acs_system_id: Optional[str] = None, + limit: Optional[float] = None, + user_identity_email_address: Optional[str] = None, + user_identity_id: Optional[str] = None, + user_identity_phone_number: Optional[str] = None + ) -> None: json_payload = {} if acs_system_id is not None: json_payload["acs_system_id"] = acs_system_id - - res = self.client.post("/acs/users/unmanaged/list", json=json_payload) - - return [AcsUser.from_dict(item) for item in res["acs_users"]] + if limit is not None: + json_payload["limit"] = limit + if user_identity_email_address is not None: + json_payload["user_identity_email_address"] = user_identity_email_address + if user_identity_id is not None: + json_payload["user_identity_id"] = user_identity_id + if user_identity_phone_number is not None: + json_payload["user_identity_phone_number"] = user_identity_phone_number + + self.client.post("/acs/users/unmanaged/list", json=json_payload) + + return None diff --git a/seam/routes/models.py b/seam/routes/models.py index 3d908c3..2ff2302 100644 --- a/seam/routes/models.py +++ b/seam/routes/models.py @@ -72,6 +72,7 @@ class AcsAccessGroup: display_name: str external_type: str external_type_display_name: str + is_managed: bool name: str workspace_id: str @@ -88,6 +89,7 @@ def from_dict(d: Dict[str, Any]): 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), + is_managed=d.get("is_managed", None), name=d.get("name", None), workspace_id=d.get("workspace_id", None), ) @@ -108,6 +110,7 @@ class AcsCredential: external_type: str external_type_display_name: str is_latest_desired_state_synced_with_provider: bool + is_managed: bool is_multi_phone_sync_credential: bool latest_desired_state_synced_with_provider_at: str parent_acs_credential_id: str @@ -134,6 +137,7 @@ def from_dict(d: Dict[str, Any]): is_latest_desired_state_synced_with_provider=d.get( "is_latest_desired_state_synced_with_provider", None ), + is_managed=d.get("is_managed", None), is_multi_phone_sync_credential=d.get( "is_multi_phone_sync_credential", None ), @@ -280,6 +284,7 @@ class AcsUser: full_name: str hid_acs_system_id: str is_latest_desired_state_synced_with_provider: bool + is_managed: bool is_suspended: bool latest_desired_state_synced_with_provider_at: str phone_number: str @@ -307,6 +312,7 @@ def from_dict(d: Dict[str, Any]): is_latest_desired_state_synced_with_provider=d.get( "is_latest_desired_state_synced_with_provider", None ), + is_managed=d.get("is_managed", None), is_suspended=d.get("is_suspended", None), latest_desired_state_synced_with_provider_at=d.get( "latest_desired_state_synced_with_provider_at", None @@ -998,6 +1004,19 @@ def remove_user(self, *, acs_access_group_id: str, acs_user_id: str) -> None: raise NotImplementedError() +class AbstractAcsAccessGroupsUnmanaged(abc.ABC): + + @abc.abstractmethod + def get(self, *, acs_access_group_id: str) -> None: + raise NotImplementedError() + + @abc.abstractmethod + def list( + self, *, acs_system_id: Optional[str] = None, acs_user_id: Optional[str] = None + ) -> None: + raise NotImplementedError() + + class AbstractAcsCredentialPools(abc.ABC): @abc.abstractmethod @@ -1082,6 +1101,23 @@ def update( raise NotImplementedError() +class AbstractAcsCredentialsUnmanaged(abc.ABC): + + @abc.abstractmethod + def get(self, *, acs_credential_id: str) -> None: + raise NotImplementedError() + + @abc.abstractmethod + def list( + self, + *, + acs_user_id: Optional[str] = None, + acs_system_id: Optional[str] = None, + user_identity_id: Optional[str] = None + ) -> None: + raise NotImplementedError() + + class AbstractAcsEntrances(abc.ABC): @abc.abstractmethod @@ -1213,7 +1249,15 @@ def get(self, *, acs_user_id: str) -> AcsUser: raise NotImplementedError() @abc.abstractmethod - def list(self, *, acs_system_id: str) -> List[AcsUser]: + def list( + self, + *, + acs_system_id: Optional[str] = None, + limit: Optional[float] = None, + user_identity_email_address: Optional[str] = None, + user_identity_id: Optional[str] = None, + user_identity_phone_number: Optional[str] = None + ) -> None: raise NotImplementedError()