diff --git a/package-lock.json b/package-lock.json index a66a32e5..388e6ec6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,8 +6,8 @@ "": { "name": "@seamapi/python", "devDependencies": { - "@seamapi/nextlove-sdk-generator": "1.8.0", - "@seamapi/types": "1.154.0", + "@seamapi/nextlove-sdk-generator": "1.8.1", + "@seamapi/types": "1.157.0", "prettier": "^3.2.5" } }, @@ -415,9 +415,9 @@ } }, "node_modules/@seamapi/nextlove-sdk-generator": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@seamapi/nextlove-sdk-generator/-/nextlove-sdk-generator-1.8.0.tgz", - "integrity": "sha512-vjPf1cKEOAmbyD1fI2b65J5tuSLVF2V9tejF6H1yJwvlCWYXo/z9oBc6PtAlxEoOb0VUmrUpp+Wbae8i8sfn6g==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@seamapi/nextlove-sdk-generator/-/nextlove-sdk-generator-1.8.1.tgz", + "integrity": "sha512-06yDgSENYT2M8ieyGSa0E7UbUZ70L3z7p3jIHvAoL7PFdgZRzHs2Xvi6BXDWd1KWJ58uL8OhS5dlK/dRxQFA+Q==", "dev": true, "dependencies": { "@nodelib/fs.walk": "^2.0.0", @@ -436,9 +436,9 @@ } }, "node_modules/@seamapi/types": { - "version": "1.154.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.154.0.tgz", - "integrity": "sha512-eGyN2E7/DkRcCeKpMwcld0d5BWlKtK+QTblF6qO1pv5vNE+U/NlidSYPPSXISkGiKznGjP1vsn7aU8I71X7YhQ==", + "version": "1.157.0", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.157.0.tgz", + "integrity": "sha512-KqAgCtrMavUHfZeNT1E13L/gJtjl3+mqWuS2D+tSNTgN7qXLiM7lEtW4/E0cHfEroh1r8JbjUBU3XVNUU4lzWg==", "dev": true, "engines": { "node": ">=18.12.0", diff --git a/package.json b/package.json index 1b456c93..20f80ada 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "preformat": "make format" }, "devDependencies": { - "@seamapi/nextlove-sdk-generator": "1.8.0", - "@seamapi/types": "1.154.0", + "@seamapi/nextlove-sdk-generator": "1.8.1", + "@seamapi/types": "1.157.0", "prettier": "^3.2.5" } } diff --git a/seam/types.py b/seam/types.py index ec92fc00..7bb91098 100644 --- a/seam/types.py +++ b/seam/types.py @@ -277,6 +277,7 @@ class Device: custom_metadata: Dict[str, Any] can_remotely_unlock: bool can_remotely_lock: bool + can_program_offline_access_codes: bool can_program_online_access_codes: bool can_simulate_removal: bool @@ -299,6 +300,9 @@ def from_dict(d: Dict[str, Any]): custom_metadata=DeepAttrDict(d.get("custom_metadata", None)), can_remotely_unlock=d.get("can_remotely_unlock", None), can_remotely_lock=d.get("can_remotely_lock", None), + can_program_offline_access_codes=d.get( + "can_program_offline_access_codes", None + ), can_program_online_access_codes=d.get( "can_program_online_access_codes", None ), @@ -320,6 +324,7 @@ class UnmanagedDevice: properties: Dict[str, Any] can_remotely_unlock: bool can_remotely_lock: bool + can_program_offline_access_codes: bool can_program_online_access_codes: bool can_simulate_removal: bool @@ -338,6 +343,9 @@ def from_dict(d: Dict[str, Any]): properties=DeepAttrDict(d.get("properties", None)), can_remotely_unlock=d.get("can_remotely_unlock", None), can_remotely_lock=d.get("can_remotely_lock", None), + can_program_offline_access_codes=d.get( + "can_program_offline_access_codes", None + ), can_program_online_access_codes=d.get( "can_program_online_access_codes", None ), @@ -714,6 +722,7 @@ class Phone: custom_metadata: Dict[str, Any] can_remotely_unlock: bool can_remotely_lock: bool + can_program_offline_access_codes: bool can_program_online_access_codes: bool can_simulate_removal: bool @@ -735,6 +744,9 @@ def from_dict(d: Dict[str, Any]): custom_metadata=DeepAttrDict(d.get("custom_metadata", None)), can_remotely_unlock=d.get("can_remotely_unlock", None), can_remotely_lock=d.get("can_remotely_lock", None), + can_program_offline_access_codes=d.get( + "can_program_offline_access_codes", None + ), can_program_online_access_codes=d.get( "can_program_online_access_codes", None ), @@ -1119,62 +1131,6 @@ def reset_sandbox( raise NotImplementedError() -class AbstractAccessCodesSimulate(abc.ABC): - - @abc.abstractmethod - def create_unmanaged_access_code( - self, *, device_id: str, name: str, code: str - ) -> UnmanagedAccessCode: - raise NotImplementedError() - - -class AbstractAccessCodesUnmanaged(abc.ABC): - - @abc.abstractmethod - def convert_to_managed( - self, - *, - access_code_id: str, - is_external_modification_allowed: Optional[bool] = None, - allow_external_modification: Optional[bool] = None, - force: Optional[bool] = None, - sync: Optional[bool] = None, - ) -> None: - raise NotImplementedError() - - @abc.abstractmethod - def delete(self, *, access_code_id: str, sync: Optional[bool] = None) -> None: - raise NotImplementedError() - - @abc.abstractmethod - def get( - self, - *, - device_id: Optional[str] = None, - access_code_id: Optional[str] = None, - code: Optional[str] = None, - ) -> UnmanagedAccessCode: - raise NotImplementedError() - - @abc.abstractmethod - def list( - self, *, device_id: str, user_identifier_key: Optional[str] = None - ) -> List[UnmanagedAccessCode]: - raise NotImplementedError() - - @abc.abstractmethod - def update( - self, - *, - access_code_id: str, - is_managed: bool, - allow_external_modification: Optional[bool] = None, - is_external_modification_allowed: Optional[bool] = None, - force: Optional[bool] = None, - ) -> None: - raise NotImplementedError() - - class AbstractAcsAccessGroups(abc.ABC): @abc.abstractmethod @@ -1388,6 +1344,62 @@ def update( raise NotImplementedError() +class AbstractAccessCodesSimulate(abc.ABC): + + @abc.abstractmethod + def create_unmanaged_access_code( + self, *, device_id: str, name: str, code: str + ) -> UnmanagedAccessCode: + raise NotImplementedError() + + +class AbstractAccessCodesUnmanaged(abc.ABC): + + @abc.abstractmethod + def convert_to_managed( + self, + *, + access_code_id: str, + is_external_modification_allowed: Optional[bool] = None, + allow_external_modification: Optional[bool] = None, + force: Optional[bool] = None, + sync: Optional[bool] = None, + ) -> None: + raise NotImplementedError() + + @abc.abstractmethod + def delete(self, *, access_code_id: str, sync: Optional[bool] = None) -> None: + raise NotImplementedError() + + @abc.abstractmethod + def get( + self, + *, + device_id: Optional[str] = None, + access_code_id: Optional[str] = None, + code: Optional[str] = None, + ) -> UnmanagedAccessCode: + raise NotImplementedError() + + @abc.abstractmethod + def list( + self, *, device_id: str, user_identifier_key: Optional[str] = None + ) -> List[UnmanagedAccessCode]: + raise NotImplementedError() + + @abc.abstractmethod + def update( + self, + *, + access_code_id: str, + is_managed: bool, + allow_external_modification: Optional[bool] = None, + is_external_modification_allowed: Optional[bool] = None, + force: Optional[bool] = None, + ) -> None: + raise NotImplementedError() + + class AbstractDevicesSimulate(abc.ABC): @abc.abstractmethod