diff --git a/package-lock.json b/package-lock.json index 775cbdad..139f6838 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@seamapi/blueprint": "^1.12.0", "@seamapi/fake-seam-connect": "2.0.6", "@seamapi/smith": "^1.1.0", - "@seamapi/types": "1.1079.0", + "@seamapi/types": "1.1081.0", "change-case": "^5.4.4", "execa": "^10.0.1", "prettier": "^3.9.6" @@ -882,9 +882,9 @@ } }, "node_modules/@seamapi/types": { - "version": "1.1079.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.1079.0.tgz", - "integrity": "sha512-wa/byoJgYbFaHezpkeMxOEKp7h55owe/mmV9foLrM/hev6KnmdOezgh7HszEmH+chavfhDe9onYPoIyhQsOybA==", + "version": "1.1081.0", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.1081.0.tgz", + "integrity": "sha512-bFh94NyhpR1nukmihSxLR68TAgYGvbk+JeBnOWHtmNkP9FABSeuplw6cXBjB7S+xiVoazUCnclgrJ9lVnijCvw==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 5a1e9126..74aac859 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@seamapi/blueprint": "^1.12.0", "@seamapi/fake-seam-connect": "2.0.6", "@seamapi/smith": "^1.1.0", - "@seamapi/types": "1.1079.0", + "@seamapi/types": "1.1081.0", "change-case": "^5.4.4", "execa": "^10.0.1", "prettier": "^3.9.6" diff --git a/src/Resources/AccessCode.php b/src/Resources/AccessCode.php index 4c147f77..3a00565d 100644 --- a/src/Resources/AccessCode.php +++ b/src/Resources/AccessCode.php @@ -306,8 +306,8 @@ public static function from_json(mixed $json): Errors|null => \Seam\Resources\AccessCode\Errors\FailedToUpdate::from_json( $json, ), - \Seam\Resources\AccessCode\Errors\ErrorCode::FAILED_TO_REMOVE - => \Seam\Resources\AccessCode\Errors\FailedToRemove::from_json( + \Seam\Resources\AccessCode\Errors\ErrorCode::FAILED_TO_DELETE + => \Seam\Resources\AccessCode\Errors\FailedToDelete::from_json( $json, ), \Seam\Resources\AccessCode\Errors\ErrorCode::ACCOUNT_DISCONNECTED @@ -1024,11 +1024,11 @@ public function __construct( } /** - * This access code is still active on the device even though its `ends_at` has passed, so the recipient may still be able to unlock the device after their access window ended. Seam is attempting to remove it, and this error clears automatically once the access code is no longer active. + * This access code is still active on the device even though its `ends_at` has passed, so the recipient may still be able to unlock the device after their access window ended. Seam is attempting to delete it, and this error clears automatically once the access code is no longer active. */ - final class FailedToRemove extends \Seam\Resources\AccessCode\Errors + final class FailedToDelete extends \Seam\Resources\AccessCode\Errors { - public static function from_json(mixed $json): FailedToRemove|null + public static function from_json(mixed $json): FailedToDelete|null { if (!$json) { return null; @@ -1707,7 +1707,7 @@ enum ErrorCode: string case CODE_CONSTRAINTS_VIOLATED = "code_constraints_violated"; case FAILED_TO_ISSUE = "failed_to_issue"; case FAILED_TO_UPDATE = "failed_to_update"; - case FAILED_TO_REMOVE = "failed_to_remove"; + case FAILED_TO_DELETE = "failed_to_delete"; case ACCOUNT_DISCONNECTED = "account_disconnected"; case SALTO_KS_SUBSCRIPTION_LIMIT_EXCEEDED = "salto_ks_subscription_limit_exceeded"; case INSUFFICIENT_PERMISSIONS = "insufficient_permissions"; diff --git a/src/Resources/Device.php b/src/Resources/Device.php index 400936ab..dbcaf323 100644 --- a/src/Resources/Device.php +++ b/src/Resources/Device.php @@ -507,6 +507,11 @@ public static function from_json(mixed $json): Properties|null $json->aqara_metadata, ) : null, + arlo_metadata: isset($json->arlo_metadata) + ? \Seam\Resources\Device\Properties\ArloMetadata::from_json( + $json->arlo_metadata, + ) + : null, assa_abloy_credential_service_metadata: isset( $json->assa_abloy_credential_service_metadata, ) @@ -912,6 +917,10 @@ public function __construct( * Metadata for an Aqara device. */ public \Seam\Resources\Device\Properties\AqaraMetadata|null $aqara_metadata = null, + /** + * Metadata for an Arlo camera. + */ + public \Seam\Resources\Device\Properties\ArloMetadata|null $arlo_metadata = null, /** * ASSA ABLOY Credential Service metadata for the phone. */ @@ -1535,6 +1544,7 @@ enum DeviceType: string case ANDROID_PHONE = "android_phone"; case RING_CAMERA = "ring_camera"; case TAPO_CAMERA = "tapo_camera"; + case ARLO_CAMERA = "arlo_camera"; } } @@ -2532,6 +2542,49 @@ public function __construct( ) {} } + /** + * Metadata for an Arlo camera. + */ + class ArloMetadata + { + public static function from_json(mixed $json): ArloMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + firmware_version: $json->firmware_version ?? null, + hardware_version: $json->hardware_version ?? null, + model_id: $json->model_id ?? null, + ); + } + + public function __construct( + /** + * Device ID reported by Arlo. + */ + public string|null $device_id = null, + /** + * Device name reported by Arlo. + */ + public string|null $device_name = null, + /** + * Firmware version reported by Arlo. + */ + public string|null $firmware_version = null, + /** + * Hardware version reported by Arlo. + */ + public string|null $hardware_version = null, + /** + * Model ID reported by Arlo. + */ + public string|null $model_id = null, + ) {} + } + /** * Metadata for an ASSA ABLOY Vostio system. */ diff --git a/src/Resources/DeviceProvider.php b/src/Resources/DeviceProvider.php index 6eb0f36c..83cd35ca 100644 --- a/src/Resources/DeviceProvider.php +++ b/src/Resources/DeviceProvider.php @@ -212,6 +212,7 @@ enum DeviceProviderName: string case THIRTY_THREE_LOCK = "thirty_three_lock"; case RING = "ring"; case TAPO = "tapo"; + case ARLO = "arlo"; case ICAL = "ical"; case LODGIFY = "lodgify"; case HOSTAWAY = "hostaway"; diff --git a/src/Resources/UnmanagedAccessCode.php b/src/Resources/UnmanagedAccessCode.php index f2252eaf..f169b9e7 100644 --- a/src/Resources/UnmanagedAccessCode.php +++ b/src/Resources/UnmanagedAccessCode.php @@ -262,8 +262,8 @@ public static function from_json(mixed $json): Errors|null => \Seam\Resources\UnmanagedAccessCode\Errors\FailedToUpdate::from_json( $json, ), - \Seam\Resources\UnmanagedAccessCode\Errors\ErrorCode::FAILED_TO_REMOVE - => \Seam\Resources\UnmanagedAccessCode\Errors\FailedToRemove::from_json( + \Seam\Resources\UnmanagedAccessCode\Errors\ErrorCode::FAILED_TO_DELETE + => \Seam\Resources\UnmanagedAccessCode\Errors\FailedToDelete::from_json( $json, ), \Seam\Resources\UnmanagedAccessCode\Errors\ErrorCode::ACCOUNT_DISCONNECTED @@ -914,12 +914,12 @@ public function __construct( } /** - * This access code is still active on the device even though its `ends_at` has passed, so the recipient may still be able to unlock the device after their access window ended. Seam is attempting to remove it, and this error clears automatically once the access code is no longer active. + * This access code is still active on the device even though its `ends_at` has passed, so the recipient may still be able to unlock the device after their access window ended. Seam is attempting to delete it, and this error clears automatically once the access code is no longer active. */ - final class FailedToRemove extends + final class FailedToDelete extends \Seam\Resources\UnmanagedAccessCode\Errors { - public static function from_json(mixed $json): FailedToRemove|null + public static function from_json(mixed $json): FailedToDelete|null { if (!$json) { return null; @@ -1604,7 +1604,7 @@ enum ErrorCode: string case CODE_CONSTRAINTS_VIOLATED = "code_constraints_violated"; case FAILED_TO_ISSUE = "failed_to_issue"; case FAILED_TO_UPDATE = "failed_to_update"; - case FAILED_TO_REMOVE = "failed_to_remove"; + case FAILED_TO_DELETE = "failed_to_delete"; case ACCOUNT_DISCONNECTED = "account_disconnected"; case SALTO_KS_SUBSCRIPTION_LIMIT_EXCEEDED = "salto_ks_subscription_limit_exceeded"; case INSUFFICIENT_PERMISSIONS = "insufficient_permissions"; diff --git a/src/Resources/UnmanagedDevice.php b/src/Resources/UnmanagedDevice.php index e1f0f38b..b5a93f92 100644 --- a/src/Resources/UnmanagedDevice.php +++ b/src/Resources/UnmanagedDevice.php @@ -659,6 +659,7 @@ enum DeviceType: string case ANDROID_PHONE = "android_phone"; case RING_CAMERA = "ring_camera"; case TAPO_CAMERA = "tapo_camera"; + case ARLO_CAMERA = "arlo_camera"; } }