diff --git a/package-lock.json b/package-lock.json
index 9f9b1ab..58657c2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,8 +10,8 @@
       "license": "MIT",
       "devDependencies": {
         "@prettier/plugin-php": "^0.22.1",
-        "@seamapi/nextlove-sdk-generator": "1.15.8",
-        "@seamapi/types": "1.351.1",
+        "@seamapi/nextlove-sdk-generator": "1.16.1",
+        "@seamapi/types": "1.353.2",
         "del": "^7.1.0",
         "prettier": "^3.0.0"
       }
@@ -434,10 +434,11 @@
       }
     },
     "node_modules/@seamapi/nextlove-sdk-generator": {
-      "version": "1.15.8",
-      "resolved": "https://registry.npmjs.org/@seamapi/nextlove-sdk-generator/-/nextlove-sdk-generator-1.15.8.tgz",
-      "integrity": "sha512-Q2v5p5BmK45/Qm6LpwUe3c2s6zzgUum9VOxnQU0K9CO3n23KaJf1X2M/sU6mRedAGh+JJsgmXLePtj21hhPZZg==",
+      "version": "1.16.1",
+      "resolved": "https://registry.npmjs.org/@seamapi/nextlove-sdk-generator/-/nextlove-sdk-generator-1.16.1.tgz",
+      "integrity": "sha512-u/0ALbUe9h84Q3GDaje2z5/nR8ufEfhbmhImcO06MKDi2aULvIuupBI8GtctVYaNWtCbyVpNM/YPM7CQLoHwYA==",
       "dev": true,
+      "license": "MIT",
       "dependencies": {
         "@nodelib/fs.walk": "^2.0.0",
         "axios": "^1.5.0",
@@ -455,9 +456,9 @@
       }
     },
     "node_modules/@seamapi/types": {
-      "version": "1.351.1",
-      "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.351.1.tgz",
-      "integrity": "sha512-zqgGhSUs1EpNAxSAuDPq0jQNifMJua+lX5jviFtC7RSxjqGIP47oBtW76OxFHOnJK9FyIk4vYE583ioBzIPzOg==",
+      "version": "1.353.2",
+      "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.353.2.tgz",
+      "integrity": "sha512-qwVbqLBCtSEnNQ16X8JHVbTeCa97so/n4pnjvnI0jjUbU9jUaxelFxLF3AmMXli4ASqmBs1/6FVn0V84UMk0dA==",
       "dev": true,
       "license": "MIT",
       "engines": {
diff --git a/package.json b/package.json
index 6220dbd..935872c 100644
--- a/package.json
+++ b/package.json
@@ -12,8 +12,8 @@
   },
   "devDependencies": {
     "@prettier/plugin-php": "^0.22.1",
-    "@seamapi/nextlove-sdk-generator": "1.15.8",
-    "@seamapi/types": "1.351.1",
+    "@seamapi/nextlove-sdk-generator": "1.16.1",
+    "@seamapi/types": "1.353.2",
     "del": "^7.1.0",
     "prettier": "^3.0.0"
   }
diff --git a/src/SeamClient.php b/src/SeamClient.php
index 3af13b5..034b6e3 100644
--- a/src/SeamClient.php
+++ b/src/SeamClient.php
@@ -928,8 +928,6 @@ class AcsClient
 {
     private SeamClient $seam;
     public AcsAccessGroupsClient $access_groups;
-    public AcsCredentialPoolsClient $credential_pools;
-    public AcsCredentialProvisioningAutomationsClient $credential_provisioning_automations;
     public AcsCredentialsClient $credentials;
     public AcsEncodersClient $encoders;
     public AcsEntrancesClient $entrances;
@@ -939,10 +937,6 @@ public function __construct(SeamClient $seam)
     {
         $this->seam = $seam;
         $this->access_groups = new AcsAccessGroupsClient($seam);
-        $this->credential_pools = new AcsCredentialPoolsClient($seam);
-        $this->credential_provisioning_automations = new AcsCredentialProvisioningAutomationsClient(
-            $seam
-        );
         $this->credentials = new AcsCredentialsClient($seam);
         $this->encoders = new AcsEncodersClient($seam);
         $this->entrances = new AcsEntrancesClient($seam);
@@ -951,141 +945,6 @@ public function __construct(SeamClient $seam)
     }
 }
 
-class AcsAccessGroupsUnmanagedClient
-{
-    private SeamClient $seam;
-
-    public function __construct(SeamClient $seam)
-    {
-        $this->seam = $seam;
-    }
-
-    public function get(string $acs_access_group_id): UnmanagedAcsAccessGroup
-    {
-        $request_payload = [];
-
-        if ($acs_access_group_id !== null) {
-            $request_payload["acs_access_group_id"] = $acs_access_group_id;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/acs/access_groups/unmanaged/get",
-            json: (object) $request_payload,
-            inner_object: "acs_access_group"
-        );
-
-        return UnmanagedAcsAccessGroup::from_json($res);
-    }
-
-    public function list(
-        string $acs_system_id = null,
-        string $acs_user_id = null
-    ): array {
-        $request_payload = [];
-
-        if ($acs_system_id !== null) {
-            $request_payload["acs_system_id"] = $acs_system_id;
-        }
-        if ($acs_user_id !== null) {
-            $request_payload["acs_user_id"] = $acs_user_id;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/acs/access_groups/unmanaged/list",
-            json: (object) $request_payload,
-            inner_object: "acs_access_groups"
-        );
-
-        return array_map(
-            fn($r) => UnmanagedAcsAccessGroup::from_json($r),
-            $res
-        );
-    }
-}
-
-class AcsCredentialPoolsClient
-{
-    private SeamClient $seam;
-
-    public function __construct(SeamClient $seam)
-    {
-        $this->seam = $seam;
-    }
-
-    public function list(string $acs_system_id): array
-    {
-        $request_payload = [];
-
-        if ($acs_system_id !== null) {
-            $request_payload["acs_system_id"] = $acs_system_id;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/acs/credential_pools/list",
-            json: (object) $request_payload,
-            inner_object: "acs_credential_pools"
-        );
-
-        return array_map(fn($r) => AcsCredentialPool::from_json($r), $res);
-    }
-}
-
-class AcsCredentialProvisioningAutomationsClient
-{
-    private SeamClient $seam;
-
-    public function __construct(SeamClient $seam)
-    {
-        $this->seam = $seam;
-    }
-
-    public function launch(
-        string $credential_manager_acs_system_id,
-        string $user_identity_id,
-        string $acs_credential_pool_id = null,
-        bool $create_credential_manager_user = null,
-        string $credential_manager_acs_user_id = null
-    ): AcsCredentialProvisioningAutomation {
-        $request_payload = [];
-
-        if ($credential_manager_acs_system_id !== null) {
-            $request_payload[
-                "credential_manager_acs_system_id"
-            ] = $credential_manager_acs_system_id;
-        }
-        if ($user_identity_id !== null) {
-            $request_payload["user_identity_id"] = $user_identity_id;
-        }
-        if ($acs_credential_pool_id !== null) {
-            $request_payload[
-                "acs_credential_pool_id"
-            ] = $acs_credential_pool_id;
-        }
-        if ($create_credential_manager_user !== null) {
-            $request_payload[
-                "create_credential_manager_user"
-            ] = $create_credential_manager_user;
-        }
-        if ($credential_manager_acs_user_id !== null) {
-            $request_payload[
-                "credential_manager_acs_user_id"
-            ] = $credential_manager_acs_user_id;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/acs/credential_provisioning_automations/launch",
-            json: (object) $request_payload,
-            inner_object: "acs_credential_provisioning_automation"
-        );
-
-        return AcsCredentialProvisioningAutomation::from_json($res);
-    }
-}
-
 class AcsCredentialsClient
 {
     private SeamClient $seam;
@@ -1180,43 +1039,6 @@ public function create(
         return AcsCredential::from_json($res);
     }
 
-    public function create_offline_code(
-        string $acs_user_id,
-        string $allowed_acs_entrance_id,
-        string $ends_at = null,
-        bool $is_one_time_use = null,
-        string $starts_at = null
-    ): AcsCredential {
-        $request_payload = [];
-
-        if ($acs_user_id !== null) {
-            $request_payload["acs_user_id"] = $acs_user_id;
-        }
-        if ($allowed_acs_entrance_id !== null) {
-            $request_payload[
-                "allowed_acs_entrance_id"
-            ] = $allowed_acs_entrance_id;
-        }
-        if ($ends_at !== null) {
-            $request_payload["ends_at"] = $ends_at;
-        }
-        if ($is_one_time_use !== null) {
-            $request_payload["is_one_time_use"] = $is_one_time_use;
-        }
-        if ($starts_at !== null) {
-            $request_payload["starts_at"] = $starts_at;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/acs/credentials/create_offline_code",
-            json: (object) $request_payload,
-            inner_object: "acs_credential"
-        );
-
-        return AcsCredential::from_json($res);
-    }
-
     public function delete(string $acs_credential_id): void
     {
         $request_payload = [];
@@ -1354,61 +1176,6 @@ public function update(
     }
 }
 
-class AcsCredentialsUnmanagedClient
-{
-    private SeamClient $seam;
-
-    public function __construct(SeamClient $seam)
-    {
-        $this->seam = $seam;
-    }
-
-    public function get(string $acs_credential_id): UnmanagedAcsCredential
-    {
-        $request_payload = [];
-
-        if ($acs_credential_id !== null) {
-            $request_payload["acs_credential_id"] = $acs_credential_id;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/acs/credentials/unmanaged/get",
-            json: (object) $request_payload,
-            inner_object: "acs_credential"
-        );
-
-        return UnmanagedAcsCredential::from_json($res);
-    }
-
-    public function list(
-        string $acs_user_id = null,
-        string $acs_system_id = null,
-        string $user_identity_id = null
-    ): array {
-        $request_payload = [];
-
-        if ($acs_user_id !== null) {
-            $request_payload["acs_user_id"] = $acs_user_id;
-        }
-        if ($acs_system_id !== null) {
-            $request_payload["acs_system_id"] = $acs_system_id;
-        }
-        if ($user_identity_id !== null) {
-            $request_payload["user_identity_id"] = $user_identity_id;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/acs/credentials/unmanaged/list",
-            json: (object) $request_payload,
-            inner_object: "acs_credentials"
-        );
-
-        return array_map(fn($r) => UnmanagedAcsCredential::from_json($r), $res);
-    }
-}
-
 class AcsEncodersClient
 {
     private SeamClient $seam;
@@ -1887,7 +1654,8 @@ public function get(string $acs_user_id): AcsUser
     public function list(
         string $acs_system_id = null,
         string $created_before = null,
-        float $limit = null,
+        mixed $limit = null,
+        string $page_cursor = null,
         string $user_identity_email_address = null,
         string $user_identity_id = null,
         string $user_identity_phone_number = null
@@ -1903,6 +1671,9 @@ public function list(
         if ($limit !== null) {
             $request_payload["limit"] = $limit;
         }
+        if ($page_cursor !== null) {
+            $request_payload["page_cursor"] = $page_cursor;
+        }
         if ($user_identity_email_address !== null) {
             $request_payload[
                 "user_identity_email_address"
@@ -2051,73 +1822,6 @@ public function update(
     }
 }
 
-class AcsUsersUnmanagedClient
-{
-    private SeamClient $seam;
-
-    public function __construct(SeamClient $seam)
-    {
-        $this->seam = $seam;
-    }
-
-    public function get(string $acs_user_id): UnmanagedAcsUser
-    {
-        $request_payload = [];
-
-        if ($acs_user_id !== null) {
-            $request_payload["acs_user_id"] = $acs_user_id;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/acs/users/unmanaged/get",
-            json: (object) $request_payload,
-            inner_object: "acs_user"
-        );
-
-        return UnmanagedAcsUser::from_json($res);
-    }
-
-    public function list(
-        string $acs_system_id = null,
-        float $limit = null,
-        string $user_identity_email_address = null,
-        string $user_identity_id = null,
-        string $user_identity_phone_number = null
-    ): array {
-        $request_payload = [];
-
-        if ($acs_system_id !== null) {
-            $request_payload["acs_system_id"] = $acs_system_id;
-        }
-        if ($limit !== null) {
-            $request_payload["limit"] = $limit;
-        }
-        if ($user_identity_email_address !== null) {
-            $request_payload[
-                "user_identity_email_address"
-            ] = $user_identity_email_address;
-        }
-        if ($user_identity_id !== null) {
-            $request_payload["user_identity_id"] = $user_identity_id;
-        }
-        if ($user_identity_phone_number !== null) {
-            $request_payload[
-                "user_identity_phone_number"
-            ] = $user_identity_phone_number;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/acs/users/unmanaged/list",
-            json: (object) $request_payload,
-            inner_object: "acs_users"
-        );
-
-        return array_map(fn($r) => UnmanagedAcsUser::from_json($r), $res);
-    }
-}
-
 class ActionAttemptsClient
 {
     private SeamClient $seam;
@@ -2667,21 +2371,6 @@ public function __construct(SeamClient $seam)
         $this->unmanaged = new DevicesUnmanagedClient($seam);
     }
 
-    public function delete(string $device_id): void
-    {
-        $request_payload = [];
-
-        if ($device_id !== null) {
-            $request_payload["device_id"] = $device_id;
-        }
-
-        $this->seam->request(
-            "POST",
-            "/devices/delete",
-            json: (object) $request_payload
-        );
-    }
-
     public function get(string $device_id = null, string $name = null): Device
     {
         $request_payload = [];
@@ -3041,6 +2730,7 @@ public function list(
         string $connected_account_id = null,
         string $device_id = null,
         array $device_ids = null,
+        array $event_ids = null,
         string $event_type = null,
         array $event_types = null,
         float $limit = null,
@@ -3076,6 +2766,9 @@ public function list(
         if ($device_ids !== null) {
             $request_payload["device_ids"] = $device_ids;
         }
+        if ($event_ids !== null) {
+            $request_payload["event_ids"] = $event_ids;
+        }
         if ($event_type !== null) {
             $request_payload["event_type"] = $event_type;
         }
@@ -3858,27 +3551,6 @@ public function delete_climate_preset(
         );
     }
 
-    public function get(string $device_id = null, string $name = null): Device
-    {
-        $request_payload = [];
-
-        if ($device_id !== null) {
-            $request_payload["device_id"] = $device_id;
-        }
-        if ($name !== null) {
-            $request_payload["name"] = $name;
-        }
-
-        $res = $this->seam->request(
-            "POST",
-            "/thermostats/get",
-            json: (object) $request_payload,
-            inner_object: "thermostat"
-        );
-
-        return Device::from_json($res);
-    }
-
     public function heat(
         string $device_id,
         float $heating_set_point_celsius = null,