@seamapi/http 1.36.0 → 1.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/README.md +13 -0
  2. package/dist/connect.cjs +5266 -1193
  3. package/dist/connect.cjs.map +1 -1
  4. package/dist/connect.d.cts +3123 -669
  5. package/lib/seam/connect/options.d.ts +2 -1
  6. package/lib/seam/connect/options.js.map +1 -1
  7. package/lib/seam/connect/parse-options.d.ts +1 -1
  8. package/lib/seam/connect/parse-options.js +2 -0
  9. package/lib/seam/connect/parse-options.js.map +1 -1
  10. package/lib/seam/connect/routes/access-codes/access-codes.d.ts +110 -30
  11. package/lib/seam/connect/routes/access-codes/access-codes.js +30 -20
  12. package/lib/seam/connect/routes/access-codes/access-codes.js.map +1 -1
  13. package/lib/seam/connect/routes/access-codes/simulate/simulate.d.ts +11 -3
  14. package/lib/seam/connect/routes/access-codes/simulate/simulate.js +3 -2
  15. package/lib/seam/connect/routes/access-codes/simulate/simulate.js.map +1 -1
  16. package/lib/seam/connect/routes/access-codes/unmanaged/unmanaged.d.ts +55 -15
  17. package/lib/seam/connect/routes/access-codes/unmanaged/unmanaged.js +15 -10
  18. package/lib/seam/connect/routes/access-codes/unmanaged/unmanaged.js.map +1 -1
  19. package/lib/seam/connect/routes/access-grants/access-grants.d.ts +55 -15
  20. package/lib/seam/connect/routes/access-grants/access-grants.js +15 -10
  21. package/lib/seam/connect/routes/access-grants/access-grants.js.map +1 -1
  22. package/lib/seam/connect/routes/access-methods/access-methods.d.ts +33 -9
  23. package/lib/seam/connect/routes/access-methods/access-methods.js +9 -6
  24. package/lib/seam/connect/routes/access-methods/access-methods.js.map +1 -1
  25. package/lib/seam/connect/routes/acs/access-groups/access-groups.d.ts +68 -18
  26. package/lib/seam/connect/routes/acs/access-groups/access-groups.js +22 -12
  27. package/lib/seam/connect/routes/acs/access-groups/access-groups.js.map +1 -1
  28. package/lib/seam/connect/routes/acs/access-groups/index.d.ts +1 -0
  29. package/lib/seam/connect/routes/acs/access-groups/index.js +1 -0
  30. package/lib/seam/connect/routes/acs/access-groups/index.js.map +1 -1
  31. package/lib/seam/connect/routes/acs/access-groups/unmanaged/index.d.ts +1 -0
  32. package/lib/seam/connect/routes/acs/access-groups/unmanaged/index.js +6 -0
  33. package/lib/seam/connect/routes/acs/access-groups/unmanaged/index.js.map +1 -0
  34. package/lib/seam/connect/routes/acs/access-groups/unmanaged/unmanaged.d.ts +45 -0
  35. package/lib/seam/connect/routes/acs/access-groups/unmanaged/unmanaged.js +114 -0
  36. package/lib/seam/connect/routes/acs/access-groups/unmanaged/unmanaged.js.map +1 -0
  37. package/lib/seam/connect/routes/acs/acs.d.ts +4 -0
  38. package/lib/seam/connect/routes/acs/acs.js +8 -0
  39. package/lib/seam/connect/routes/acs/acs.js.map +1 -1
  40. package/lib/seam/connect/routes/acs/credential-pools/credential-pools.d.ts +33 -0
  41. package/lib/seam/connect/routes/acs/credential-pools/credential-pools.js +102 -0
  42. package/lib/seam/connect/routes/acs/credential-pools/credential-pools.js.map +1 -0
  43. package/lib/seam/connect/routes/acs/credential-pools/index.d.ts +1 -0
  44. package/lib/seam/connect/routes/acs/credential-pools/index.js +6 -0
  45. package/lib/seam/connect/routes/acs/credential-pools/index.js.map +1 -0
  46. package/lib/seam/connect/routes/acs/credential-provisioning-automations/credential-provisioning-automations.d.ts +33 -0
  47. package/lib/seam/connect/routes/acs/credential-provisioning-automations/credential-provisioning-automations.js +102 -0
  48. package/lib/seam/connect/routes/acs/credential-provisioning-automations/credential-provisioning-automations.js.map +1 -0
  49. package/lib/seam/connect/routes/acs/credential-provisioning-automations/index.d.ts +1 -0
  50. package/lib/seam/connect/routes/acs/credential-provisioning-automations/index.js +6 -0
  51. package/lib/seam/connect/routes/acs/credential-provisioning-automations/index.js.map +1 -0
  52. package/lib/seam/connect/routes/acs/credentials/credentials.d.ts +102 -24
  53. package/lib/seam/connect/routes/acs/credentials/credentials.js +40 -16
  54. package/lib/seam/connect/routes/acs/credentials/credentials.js.map +1 -1
  55. package/lib/seam/connect/routes/acs/credentials/index.d.ts +1 -0
  56. package/lib/seam/connect/routes/acs/credentials/index.js +1 -0
  57. package/lib/seam/connect/routes/acs/credentials/index.js.map +1 -1
  58. package/lib/seam/connect/routes/acs/credentials/unmanaged/index.d.ts +1 -0
  59. package/lib/seam/connect/routes/acs/credentials/unmanaged/index.js +6 -0
  60. package/lib/seam/connect/routes/acs/credentials/unmanaged/index.js.map +1 -0
  61. package/lib/seam/connect/routes/acs/credentials/unmanaged/unmanaged.d.ts +45 -0
  62. package/lib/seam/connect/routes/acs/credentials/unmanaged/unmanaged.js +114 -0
  63. package/lib/seam/connect/routes/acs/credentials/unmanaged/unmanaged.js.map +1 -0
  64. package/lib/seam/connect/routes/acs/encoders/encoders.d.ts +52 -12
  65. package/lib/seam/connect/routes/acs/encoders/encoders.js +12 -10
  66. package/lib/seam/connect/routes/acs/encoders/encoders.js.map +1 -1
  67. package/lib/seam/connect/routes/acs/encoders/simulate/simulate.d.ts +44 -12
  68. package/lib/seam/connect/routes/acs/encoders/simulate/simulate.js +12 -8
  69. package/lib/seam/connect/routes/acs/encoders/simulate/simulate.js.map +1 -1
  70. package/lib/seam/connect/routes/acs/entrances/entrances.d.ts +44 -12
  71. package/lib/seam/connect/routes/acs/entrances/entrances.js +12 -8
  72. package/lib/seam/connect/routes/acs/entrances/entrances.js.map +1 -1
  73. package/lib/seam/connect/routes/acs/index.d.ts +2 -0
  74. package/lib/seam/connect/routes/acs/index.js +2 -0
  75. package/lib/seam/connect/routes/acs/index.js.map +1 -1
  76. package/lib/seam/connect/routes/acs/systems/systems.d.ts +33 -9
  77. package/lib/seam/connect/routes/acs/systems/systems.js +9 -6
  78. package/lib/seam/connect/routes/acs/systems/systems.js.map +1 -1
  79. package/lib/seam/connect/routes/acs/users/index.d.ts +1 -0
  80. package/lib/seam/connect/routes/acs/users/index.js +1 -0
  81. package/lib/seam/connect/routes/acs/users/index.js.map +1 -1
  82. package/lib/seam/connect/routes/acs/users/unmanaged/index.d.ts +1 -0
  83. package/lib/seam/connect/routes/acs/users/unmanaged/index.js +6 -0
  84. package/lib/seam/connect/routes/acs/users/unmanaged/index.js.map +1 -0
  85. package/lib/seam/connect/routes/acs/users/unmanaged/unmanaged.d.ts +45 -0
  86. package/lib/seam/connect/routes/acs/users/unmanaged/unmanaged.js +114 -0
  87. package/lib/seam/connect/routes/acs/users/unmanaged/unmanaged.js.map +1 -0
  88. package/lib/seam/connect/routes/acs/users/users.d.ts +123 -33
  89. package/lib/seam/connect/routes/acs/users/users.js +37 -22
  90. package/lib/seam/connect/routes/acs/users/users.js.map +1 -1
  91. package/lib/seam/connect/routes/action-attempts/action-attempts.d.ts +21 -5
  92. package/lib/seam/connect/routes/action-attempts/action-attempts.js +5 -4
  93. package/lib/seam/connect/routes/action-attempts/action-attempts.js.map +1 -1
  94. package/lib/seam/connect/routes/bridges/bridges.d.ts +45 -0
  95. package/lib/seam/connect/routes/bridges/bridges.js +114 -0
  96. package/lib/seam/connect/routes/bridges/bridges.js.map +1 -0
  97. package/lib/seam/connect/routes/bridges/index.d.ts +1 -0
  98. package/lib/seam/connect/routes/bridges/index.js +6 -0
  99. package/lib/seam/connect/routes/bridges/index.js.map +1 -0
  100. package/lib/seam/connect/routes/client-sessions/client-sessions.d.ts +77 -21
  101. package/lib/seam/connect/routes/client-sessions/client-sessions.js +21 -14
  102. package/lib/seam/connect/routes/client-sessions/client-sessions.js.map +1 -1
  103. package/lib/seam/connect/routes/connect-webviews/connect-webviews.d.ts +44 -12
  104. package/lib/seam/connect/routes/connect-webviews/connect-webviews.js +12 -8
  105. package/lib/seam/connect/routes/connect-webviews/connect-webviews.js.map +1 -1
  106. package/lib/seam/connect/routes/connected-accounts/connected-accounts.d.ts +55 -15
  107. package/lib/seam/connect/routes/connected-accounts/connected-accounts.js +15 -10
  108. package/lib/seam/connect/routes/connected-accounts/connected-accounts.js.map +1 -1
  109. package/lib/seam/connect/routes/devices/devices.d.ts +56 -12
  110. package/lib/seam/connect/routes/devices/devices.js +24 -8
  111. package/lib/seam/connect/routes/devices/devices.js.map +1 -1
  112. package/lib/seam/connect/routes/devices/simulate/simulate.d.ts +33 -9
  113. package/lib/seam/connect/routes/devices/simulate/simulate.js +9 -6
  114. package/lib/seam/connect/routes/devices/simulate/simulate.js.map +1 -1
  115. package/lib/seam/connect/routes/devices/unmanaged/unmanaged.d.ts +33 -9
  116. package/lib/seam/connect/routes/devices/unmanaged/unmanaged.js +9 -6
  117. package/lib/seam/connect/routes/devices/unmanaged/unmanaged.js.map +1 -1
  118. package/lib/seam/connect/routes/events/events.d.ts +22 -6
  119. package/lib/seam/connect/routes/events/events.js +6 -4
  120. package/lib/seam/connect/routes/events/events.js.map +1 -1
  121. package/lib/seam/connect/routes/index.d.ts +7 -0
  122. package/lib/seam/connect/routes/index.js +7 -0
  123. package/lib/seam/connect/routes/index.js.map +1 -1
  124. package/lib/seam/connect/routes/locks/index.d.ts +1 -0
  125. package/lib/seam/connect/routes/locks/index.js +1 -0
  126. package/lib/seam/connect/routes/locks/index.js.map +1 -1
  127. package/lib/seam/connect/routes/locks/locks.d.ts +44 -10
  128. package/lib/seam/connect/routes/locks/locks.js +14 -8
  129. package/lib/seam/connect/routes/locks/locks.js.map +1 -1
  130. package/lib/seam/connect/routes/locks/simulate/index.d.ts +1 -0
  131. package/lib/seam/connect/routes/locks/simulate/index.js +6 -0
  132. package/lib/seam/connect/routes/locks/simulate/index.js.map +1 -0
  133. package/lib/seam/connect/routes/locks/simulate/simulate.d.ts +45 -0
  134. package/lib/seam/connect/routes/locks/simulate/simulate.js +114 -0
  135. package/lib/seam/connect/routes/locks/simulate/simulate.js.map +1 -0
  136. package/lib/seam/connect/routes/networks/index.d.ts +1 -0
  137. package/lib/seam/connect/routes/networks/index.js +6 -0
  138. package/lib/seam/connect/routes/networks/index.js.map +1 -0
  139. package/lib/seam/connect/routes/networks/networks.d.ts +45 -0
  140. package/lib/seam/connect/routes/networks/networks.js +114 -0
  141. package/lib/seam/connect/routes/networks/networks.js.map +1 -0
  142. package/lib/seam/connect/routes/noise-sensors/noise-sensors.d.ts +11 -3
  143. package/lib/seam/connect/routes/noise-sensors/noise-sensors.js +3 -2
  144. package/lib/seam/connect/routes/noise-sensors/noise-sensors.js.map +1 -1
  145. package/lib/seam/connect/routes/noise-sensors/noise-thresholds/noise-thresholds.d.ts +55 -15
  146. package/lib/seam/connect/routes/noise-sensors/noise-thresholds/noise-thresholds.js +15 -10
  147. package/lib/seam/connect/routes/noise-sensors/noise-thresholds/noise-thresholds.js.map +1 -1
  148. package/lib/seam/connect/routes/noise-sensors/simulate/simulate.d.ts +11 -3
  149. package/lib/seam/connect/routes/noise-sensors/simulate/simulate.js +3 -2
  150. package/lib/seam/connect/routes/noise-sensors/simulate/simulate.js.map +1 -1
  151. package/lib/seam/connect/routes/phones/phones.d.ts +33 -9
  152. package/lib/seam/connect/routes/phones/phones.js +9 -6
  153. package/lib/seam/connect/routes/phones/phones.js.map +1 -1
  154. package/lib/seam/connect/routes/phones/simulate/simulate.d.ts +11 -3
  155. package/lib/seam/connect/routes/phones/simulate/simulate.js +3 -2
  156. package/lib/seam/connect/routes/phones/simulate/simulate.js.map +1 -1
  157. package/lib/seam/connect/routes/seam/bridge/index.d.ts +1 -0
  158. package/lib/seam/connect/routes/seam/bridge/index.js +6 -0
  159. package/lib/seam/connect/routes/seam/bridge/index.js.map +1 -0
  160. package/lib/seam/connect/routes/seam/bridge/v1/bridge-client-sessions/bridge-client-sessions.d.ts +81 -0
  161. package/lib/seam/connect/routes/seam/bridge/v1/bridge-client-sessions/bridge-client-sessions.js +150 -0
  162. package/lib/seam/connect/routes/seam/bridge/v1/bridge-client-sessions/bridge-client-sessions.js.map +1 -0
  163. package/lib/seam/connect/routes/seam/bridge/v1/bridge-client-sessions/index.d.ts +1 -0
  164. package/lib/seam/connect/routes/seam/bridge/v1/bridge-client-sessions/index.js +6 -0
  165. package/lib/seam/connect/routes/seam/bridge/v1/bridge-client-sessions/index.js.map +1 -0
  166. package/lib/seam/connect/routes/seam/bridge/v1/bridge-connected-systems/bridge-connected-systems.d.ts +33 -0
  167. package/lib/seam/connect/routes/seam/bridge/v1/bridge-connected-systems/bridge-connected-systems.js +102 -0
  168. package/lib/seam/connect/routes/seam/bridge/v1/bridge-connected-systems/bridge-connected-systems.js.map +1 -0
  169. package/lib/seam/connect/routes/seam/bridge/v1/bridge-connected-systems/index.d.ts +1 -0
  170. package/lib/seam/connect/routes/seam/bridge/v1/bridge-connected-systems/index.js +6 -0
  171. package/lib/seam/connect/routes/seam/bridge/v1/bridge-connected-systems/index.js.map +1 -0
  172. package/lib/seam/connect/routes/seam/bridge/v1/index.d.ts +3 -0
  173. package/lib/seam/connect/routes/seam/bridge/v1/index.js +8 -0
  174. package/lib/seam/connect/routes/seam/bridge/v1/index.js.map +1 -0
  175. package/lib/seam/connect/routes/seam/bridge/v1/v1.d.ts +23 -0
  176. package/lib/seam/connect/routes/seam/bridge/v1/v1.js +97 -0
  177. package/lib/seam/connect/routes/seam/bridge/v1/v1.js.map +1 -0
  178. package/lib/seam/connect/routes/seam/index.d.ts +4 -0
  179. package/lib/seam/connect/routes/seam/index.js +9 -0
  180. package/lib/seam/connect/routes/seam/index.js.map +1 -0
  181. package/lib/seam/connect/routes/seam/instant-key/index.d.ts +1 -0
  182. package/lib/seam/connect/routes/seam/instant-key/index.js +6 -0
  183. package/lib/seam/connect/routes/seam/instant-key/index.js.map +1 -0
  184. package/lib/seam/connect/routes/seam/instant-key/v1/client-sessions/client-sessions.d.ts +33 -0
  185. package/lib/seam/connect/routes/seam/instant-key/v1/client-sessions/client-sessions.js +102 -0
  186. package/lib/seam/connect/routes/seam/instant-key/v1/client-sessions/client-sessions.js.map +1 -0
  187. package/lib/seam/connect/routes/seam/instant-key/v1/client-sessions/index.d.ts +1 -0
  188. package/lib/seam/connect/routes/seam/instant-key/v1/client-sessions/index.js +6 -0
  189. package/lib/seam/connect/routes/seam/instant-key/v1/client-sessions/index.js.map +1 -0
  190. package/lib/seam/connect/routes/seam/instant-key/v1/index.d.ts +2 -0
  191. package/lib/seam/connect/routes/seam/instant-key/v1/index.js +7 -0
  192. package/lib/seam/connect/routes/seam/instant-key/v1/index.js.map +1 -0
  193. package/lib/seam/connect/routes/seam/instant-key/v1/v1.d.ts +21 -0
  194. package/lib/seam/connect/routes/seam/instant-key/v1/v1.js +93 -0
  195. package/lib/seam/connect/routes/seam/instant-key/v1/v1.js.map +1 -0
  196. package/lib/seam/connect/routes/seam/mobile-sdk/index.d.ts +1 -0
  197. package/lib/seam/connect/routes/seam/mobile-sdk/index.js +6 -0
  198. package/lib/seam/connect/routes/seam/mobile-sdk/index.js.map +1 -0
  199. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/acs.d.ts +21 -0
  200. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/acs.js +93 -0
  201. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/acs.js.map +1 -0
  202. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/credentials/credentials.d.ts +33 -0
  203. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/credentials/credentials.js +102 -0
  204. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/credentials/credentials.js.map +1 -0
  205. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/credentials/index.d.ts +1 -0
  206. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/credentials/index.js +6 -0
  207. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/credentials/index.js.map +1 -0
  208. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/index.d.ts +2 -0
  209. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/index.js +7 -0
  210. package/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/index.js.map +1 -0
  211. package/lib/seam/connect/routes/seam/mobile-sdk/v1/index.d.ts +3 -0
  212. package/lib/seam/connect/routes/seam/mobile-sdk/v1/index.js +8 -0
  213. package/lib/seam/connect/routes/seam/mobile-sdk/v1/index.js.map +1 -0
  214. package/lib/seam/connect/routes/seam/mobile-sdk/v1/phone-sessions/index.d.ts +1 -0
  215. package/lib/seam/connect/routes/seam/mobile-sdk/v1/phone-sessions/index.js +6 -0
  216. package/lib/seam/connect/routes/seam/mobile-sdk/v1/phone-sessions/index.js.map +1 -0
  217. package/lib/seam/connect/routes/seam/mobile-sdk/v1/phone-sessions/phone-sessions.d.ts +33 -0
  218. package/lib/seam/connect/routes/seam/mobile-sdk/v1/phone-sessions/phone-sessions.js +102 -0
  219. package/lib/seam/connect/routes/seam/mobile-sdk/v1/phone-sessions/phone-sessions.js.map +1 -0
  220. package/lib/seam/connect/routes/seam/mobile-sdk/v1/v1.d.ts +23 -0
  221. package/lib/seam/connect/routes/seam/mobile-sdk/v1/v1.js +97 -0
  222. package/lib/seam/connect/routes/seam/mobile-sdk/v1/v1.js.map +1 -0
  223. package/lib/seam/connect/routes/seam/partner/index.d.ts +1 -0
  224. package/lib/seam/connect/routes/seam/partner/index.js +6 -0
  225. package/lib/seam/connect/routes/seam/partner/index.js.map +1 -0
  226. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/building-blocks.d.ts +21 -0
  227. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/building-blocks.js +93 -0
  228. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/building-blocks.js.map +1 -0
  229. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/index.d.ts +2 -0
  230. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/index.js +7 -0
  231. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/index.js.map +1 -0
  232. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/index.d.ts +1 -0
  233. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/index.js +6 -0
  234. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/index.js.map +1 -0
  235. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/spaces.d.ts +33 -0
  236. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/spaces.js +102 -0
  237. package/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/spaces.js.map +1 -0
  238. package/lib/seam/connect/routes/seam/partner/v1/index.d.ts +3 -0
  239. package/lib/seam/connect/routes/seam/partner/v1/index.js +8 -0
  240. package/lib/seam/connect/routes/seam/partner/v1/index.js.map +1 -0
  241. package/lib/seam/connect/routes/seam/partner/v1/resources/index.d.ts +1 -0
  242. package/lib/seam/connect/routes/seam/partner/v1/resources/index.js +6 -0
  243. package/lib/seam/connect/routes/seam/partner/v1/resources/index.js.map +1 -0
  244. package/lib/seam/connect/routes/seam/partner/v1/resources/resources.d.ts +33 -0
  245. package/lib/seam/connect/routes/seam/partner/v1/resources/resources.js +102 -0
  246. package/lib/seam/connect/routes/seam/partner/v1/resources/resources.js.map +1 -0
  247. package/lib/seam/connect/routes/seam/partner/v1/v1.d.ts +23 -0
  248. package/lib/seam/connect/routes/seam/partner/v1/v1.js +97 -0
  249. package/lib/seam/connect/routes/seam/partner/v1/v1.js.map +1 -0
  250. package/lib/seam/connect/routes/seam-http-endpoints.d.ts +275 -205
  251. package/lib/seam/connect/routes/seam-http-endpoints.js +545 -35
  252. package/lib/seam/connect/routes/seam-http-endpoints.js.map +1 -1
  253. package/lib/seam/connect/routes/seam-http.d.ts +12 -0
  254. package/lib/seam/connect/routes/seam-http.js +24 -0
  255. package/lib/seam/connect/routes/seam-http.js.map +1 -1
  256. package/lib/seam/connect/routes/spaces/spaces.d.ts +99 -27
  257. package/lib/seam/connect/routes/spaces/spaces.js +27 -18
  258. package/lib/seam/connect/routes/spaces/spaces.js.map +1 -1
  259. package/lib/seam/connect/routes/thermostats/daily-programs/daily-programs.d.ts +32 -8
  260. package/lib/seam/connect/routes/thermostats/daily-programs/daily-programs.js +8 -6
  261. package/lib/seam/connect/routes/thermostats/daily-programs/daily-programs.js.map +1 -1
  262. package/lib/seam/connect/routes/thermostats/schedules/schedules.d.ts +55 -15
  263. package/lib/seam/connect/routes/thermostats/schedules/schedules.js +15 -10
  264. package/lib/seam/connect/routes/thermostats/schedules/schedules.js.map +1 -1
  265. package/lib/seam/connect/routes/thermostats/simulate/simulate.d.ts +22 -6
  266. package/lib/seam/connect/routes/thermostats/simulate/simulate.js +6 -4
  267. package/lib/seam/connect/routes/thermostats/simulate/simulate.js.map +1 -1
  268. package/lib/seam/connect/routes/thermostats/thermostats.d.ts +158 -34
  269. package/lib/seam/connect/routes/thermostats/thermostats.js +46 -28
  270. package/lib/seam/connect/routes/thermostats/thermostats.js.map +1 -1
  271. package/lib/seam/connect/routes/unstable-access-grants/index.d.ts +1 -0
  272. package/lib/seam/connect/routes/unstable-access-grants/index.js +6 -0
  273. package/lib/seam/connect/routes/unstable-access-grants/index.js.map +1 -0
  274. package/lib/seam/connect/routes/unstable-access-grants/unstable-access-grants.d.ts +69 -0
  275. package/lib/seam/connect/routes/unstable-access-grants/unstable-access-grants.js +138 -0
  276. package/lib/seam/connect/routes/unstable-access-grants/unstable-access-grants.js.map +1 -0
  277. package/lib/seam/connect/routes/unstable-access-methods/index.d.ts +1 -0
  278. package/lib/seam/connect/routes/unstable-access-methods/index.js +6 -0
  279. package/lib/seam/connect/routes/unstable-access-methods/index.js.map +1 -0
  280. package/lib/seam/connect/routes/unstable-access-methods/unstable-access-methods.d.ts +57 -0
  281. package/lib/seam/connect/routes/unstable-access-methods/unstable-access-methods.js +126 -0
  282. package/lib/seam/connect/routes/unstable-access-methods/unstable-access-methods.js.map +1 -0
  283. package/lib/seam/connect/routes/unstable-locations/index.d.ts +1 -0
  284. package/lib/seam/connect/routes/unstable-locations/index.js +6 -0
  285. package/lib/seam/connect/routes/unstable-locations/index.js.map +1 -0
  286. package/lib/seam/connect/routes/unstable-locations/unstable-locations.d.ts +129 -0
  287. package/lib/seam/connect/routes/unstable-locations/unstable-locations.js +198 -0
  288. package/lib/seam/connect/routes/unstable-locations/unstable-locations.js.map +1 -0
  289. package/lib/seam/connect/routes/unstable-partner/building-blocks/building-blocks.d.ts +69 -0
  290. package/lib/seam/connect/routes/unstable-partner/building-blocks/building-blocks.js +138 -0
  291. package/lib/seam/connect/routes/unstable-partner/building-blocks/building-blocks.js.map +1 -0
  292. package/lib/seam/connect/routes/unstable-partner/building-blocks/index.d.ts +1 -0
  293. package/lib/seam/connect/routes/unstable-partner/building-blocks/index.js +6 -0
  294. package/lib/seam/connect/routes/unstable-partner/building-blocks/index.js.map +1 -0
  295. package/lib/seam/connect/routes/unstable-partner/index.d.ts +3 -0
  296. package/lib/seam/connect/routes/unstable-partner/index.js +8 -0
  297. package/lib/seam/connect/routes/unstable-partner/index.js.map +1 -0
  298. package/lib/seam/connect/routes/unstable-partner/resources/index.d.ts +1 -0
  299. package/lib/seam/connect/routes/unstable-partner/resources/index.js +6 -0
  300. package/lib/seam/connect/routes/unstable-partner/resources/index.js.map +1 -0
  301. package/lib/seam/connect/routes/unstable-partner/resources/resources.d.ts +33 -0
  302. package/lib/seam/connect/routes/unstable-partner/resources/resources.js +102 -0
  303. package/lib/seam/connect/routes/unstable-partner/resources/resources.js.map +1 -0
  304. package/lib/seam/connect/routes/unstable-partner/unstable-partner.d.ts +23 -0
  305. package/lib/seam/connect/routes/unstable-partner/unstable-partner.js +97 -0
  306. package/lib/seam/connect/routes/unstable-partner/unstable-partner.js.map +1 -0
  307. package/lib/seam/connect/routes/user-identities/enrollment-automations/enrollment-automations.d.ts +44 -12
  308. package/lib/seam/connect/routes/user-identities/enrollment-automations/enrollment-automations.js +12 -8
  309. package/lib/seam/connect/routes/user-identities/enrollment-automations/enrollment-automations.js.map +1 -1
  310. package/lib/seam/connect/routes/user-identities/user-identities.d.ts +143 -39
  311. package/lib/seam/connect/routes/user-identities/user-identities.js +39 -26
  312. package/lib/seam/connect/routes/user-identities/user-identities.js.map +1 -1
  313. package/lib/seam/connect/routes/webhooks/webhooks.d.ts +55 -15
  314. package/lib/seam/connect/routes/webhooks/webhooks.js +15 -10
  315. package/lib/seam/connect/routes/webhooks/webhooks.js.map +1 -1
  316. package/lib/seam/connect/routes/workspaces/workspaces.d.ts +54 -14
  317. package/lib/seam/connect/routes/workspaces/workspaces.js +14 -10
  318. package/lib/seam/connect/routes/workspaces/workspaces.js.map +1 -1
  319. package/lib/version.d.ts +1 -1
  320. package/lib/version.js +1 -1
  321. package/package.json +1 -1
  322. package/src/lib/seam/connect/options.ts +2 -1
  323. package/src/lib/seam/connect/parse-options.ts +2 -0
  324. package/src/lib/seam/connect/routes/access-codes/access-codes.ts +198 -48
  325. package/src/lib/seam/connect/routes/access-codes/simulate/simulate.ts +25 -8
  326. package/src/lib/seam/connect/routes/access-codes/unmanaged/unmanaged.ts +97 -25
  327. package/src/lib/seam/connect/routes/access-grants/access-grants.ts +99 -23
  328. package/src/lib/seam/connect/routes/access-methods/access-methods.ts +59 -14
  329. package/src/lib/seam/connect/routes/acs/access-groups/access-groups.ts +129 -32
  330. package/src/lib/seam/connect/routes/acs/access-groups/index.ts +1 -0
  331. package/src/lib/seam/connect/routes/acs/access-groups/unmanaged/index.ts +6 -0
  332. package/src/lib/seam/connect/routes/acs/access-groups/unmanaged/unmanaged.ts +255 -0
  333. package/src/lib/seam/connect/routes/acs/acs.ts +13 -0
  334. package/src/lib/seam/connect/routes/acs/credential-pools/credential-pools.ts +210 -0
  335. package/src/lib/seam/connect/routes/acs/credential-pools/index.ts +6 -0
  336. package/src/lib/seam/connect/routes/acs/credential-provisioning-automations/credential-provisioning-automations.ts +217 -0
  337. package/src/lib/seam/connect/routes/acs/credential-provisioning-automations/index.ts +6 -0
  338. package/src/lib/seam/connect/routes/acs/credentials/credentials.ts +202 -41
  339. package/src/lib/seam/connect/routes/acs/credentials/index.ts +1 -0
  340. package/src/lib/seam/connect/routes/acs/credentials/unmanaged/index.ts +6 -0
  341. package/src/lib/seam/connect/routes/acs/credentials/unmanaged/unmanaged.ts +259 -0
  342. package/src/lib/seam/connect/routes/acs/encoders/encoders.ts +93 -22
  343. package/src/lib/seam/connect/routes/acs/encoders/simulate/simulate.ts +88 -20
  344. package/src/lib/seam/connect/routes/acs/entrances/entrances.ts +78 -23
  345. package/src/lib/seam/connect/routes/acs/index.ts +2 -0
  346. package/src/lib/seam/connect/routes/acs/systems/systems.ts +65 -18
  347. package/src/lib/seam/connect/routes/acs/users/index.ts +1 -0
  348. package/src/lib/seam/connect/routes/acs/users/unmanaged/index.ts +6 -0
  349. package/src/lib/seam/connect/routes/acs/users/unmanaged/unmanaged.ts +250 -0
  350. package/src/lib/seam/connect/routes/acs/users/users.ts +219 -51
  351. package/src/lib/seam/connect/routes/action-attempts/action-attempts.ts +39 -9
  352. package/src/lib/seam/connect/routes/bridges/bridges.ts +242 -0
  353. package/src/lib/seam/connect/routes/bridges/index.ts +6 -0
  354. package/src/lib/seam/connect/routes/client-sessions/client-sessions.ts +134 -34
  355. package/src/lib/seam/connect/routes/connect-webviews/connect-webviews.ts +78 -20
  356. package/src/lib/seam/connect/routes/connected-accounts/connected-accounts.ts +93 -23
  357. package/src/lib/seam/connect/routes/devices/devices.ts +109 -19
  358. package/src/lib/seam/connect/routes/devices/simulate/simulate.ts +52 -14
  359. package/src/lib/seam/connect/routes/devices/unmanaged/unmanaged.ts +58 -14
  360. package/src/lib/seam/connect/routes/events/events.ts +35 -9
  361. package/src/lib/seam/connect/routes/index.ts +7 -0
  362. package/src/lib/seam/connect/routes/locks/index.ts +1 -0
  363. package/src/lib/seam/connect/routes/locks/locks.ts +75 -17
  364. package/src/lib/seam/connect/routes/locks/simulate/index.ts +6 -0
  365. package/src/lib/seam/connect/routes/locks/simulate/simulate.ts +258 -0
  366. package/src/lib/seam/connect/routes/networks/index.ts +6 -0
  367. package/src/lib/seam/connect/routes/networks/networks.ts +245 -0
  368. package/src/lib/seam/connect/routes/noise-sensors/noise-sensors.ts +20 -5
  369. package/src/lib/seam/connect/routes/noise-sensors/noise-thresholds/noise-thresholds.ts +105 -34
  370. package/src/lib/seam/connect/routes/noise-sensors/simulate/simulate.ts +24 -5
  371. package/src/lib/seam/connect/routes/phones/phones.ts +52 -14
  372. package/src/lib/seam/connect/routes/phones/simulate/simulate.ts +21 -5
  373. package/src/lib/seam/connect/routes/seam/bridge/index.ts +6 -0
  374. package/src/lib/seam/connect/routes/seam/bridge/v1/bridge-client-sessions/bridge-client-sessions.ts +401 -0
  375. package/src/lib/seam/connect/routes/seam/bridge/v1/bridge-client-sessions/index.ts +6 -0
  376. package/src/lib/seam/connect/routes/seam/bridge/v1/bridge-connected-systems/bridge-connected-systems.ts +217 -0
  377. package/src/lib/seam/connect/routes/seam/bridge/v1/bridge-connected-systems/index.ts +6 -0
  378. package/src/lib/seam/connect/routes/seam/bridge/v1/index.ts +8 -0
  379. package/src/lib/seam/connect/routes/seam/bridge/v1/v1.ts +184 -0
  380. package/src/lib/seam/connect/routes/seam/index.ts +9 -0
  381. package/src/lib/seam/connect/routes/seam/instant-key/index.ts +6 -0
  382. package/src/lib/seam/connect/routes/seam/instant-key/v1/client-sessions/client-sessions.ts +221 -0
  383. package/src/lib/seam/connect/routes/seam/instant-key/v1/client-sessions/index.ts +6 -0
  384. package/src/lib/seam/connect/routes/seam/instant-key/v1/index.ts +7 -0
  385. package/src/lib/seam/connect/routes/seam/instant-key/v1/v1.ts +176 -0
  386. package/src/lib/seam/connect/routes/seam/mobile-sdk/index.ts +6 -0
  387. package/src/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/acs.ts +176 -0
  388. package/src/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/credentials/credentials.ts +214 -0
  389. package/src/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/credentials/index.ts +6 -0
  390. package/src/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/index.ts +7 -0
  391. package/src/lib/seam/connect/routes/seam/mobile-sdk/v1/index.ts +8 -0
  392. package/src/lib/seam/connect/routes/seam/mobile-sdk/v1/phone-sessions/index.ts +6 -0
  393. package/src/lib/seam/connect/routes/seam/mobile-sdk/v1/phone-sessions/phone-sessions.ts +217 -0
  394. package/src/lib/seam/connect/routes/seam/mobile-sdk/v1/v1.ts +181 -0
  395. package/src/lib/seam/connect/routes/seam/partner/index.ts +6 -0
  396. package/src/lib/seam/connect/routes/seam/partner/v1/building-blocks/building-blocks.ts +179 -0
  397. package/src/lib/seam/connect/routes/seam/partner/v1/building-blocks/index.ts +7 -0
  398. package/src/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/index.ts +6 -0
  399. package/src/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/spaces.ts +217 -0
  400. package/src/lib/seam/connect/routes/seam/partner/v1/index.ts +8 -0
  401. package/src/lib/seam/connect/routes/seam/partner/v1/resources/index.ts +6 -0
  402. package/src/lib/seam/connect/routes/seam/partner/v1/resources/resources.ts +211 -0
  403. package/src/lib/seam/connect/routes/seam/partner/v1/v1.ts +181 -0
  404. package/src/lib/seam/connect/routes/seam-http-endpoints.ts +2672 -205
  405. package/src/lib/seam/connect/routes/seam-http.ts +30 -0
  406. package/src/lib/seam/connect/routes/spaces/spaces.ts +156 -42
  407. package/src/lib/seam/connect/routes/thermostats/daily-programs/daily-programs.ts +60 -17
  408. package/src/lib/seam/connect/routes/thermostats/schedules/schedules.ts +97 -28
  409. package/src/lib/seam/connect/routes/thermostats/simulate/simulate.ts +42 -10
  410. package/src/lib/seam/connect/routes/thermostats/thermostats.ts +303 -65
  411. package/src/lib/seam/connect/routes/unstable-access-grants/index.ts +6 -0
  412. package/src/lib/seam/connect/routes/unstable-access-grants/unstable-access-grants.ts +329 -0
  413. package/src/lib/seam/connect/routes/unstable-access-methods/index.ts +6 -0
  414. package/src/lib/seam/connect/routes/unstable-access-methods/unstable-access-methods.ts +292 -0
  415. package/src/lib/seam/connect/routes/unstable-locations/index.ts +6 -0
  416. package/src/lib/seam/connect/routes/unstable-locations/unstable-locations.ts +535 -0
  417. package/src/lib/seam/connect/routes/unstable-partner/building-blocks/building-blocks.ts +359 -0
  418. package/src/lib/seam/connect/routes/unstable-partner/building-blocks/index.ts +6 -0
  419. package/src/lib/seam/connect/routes/unstable-partner/index.ts +8 -0
  420. package/src/lib/seam/connect/routes/unstable-partner/resources/index.ts +6 -0
  421. package/src/lib/seam/connect/routes/unstable-partner/resources/resources.ts +214 -0
  422. package/src/lib/seam/connect/routes/unstable-partner/unstable-partner.ts +184 -0
  423. package/src/lib/seam/connect/routes/user-identities/enrollment-automations/enrollment-automations.ts +96 -29
  424. package/src/lib/seam/connect/routes/user-identities/user-identities.ts +261 -64
  425. package/src/lib/seam/connect/routes/webhooks/webhooks.ts +93 -23
  426. package/src/lib/seam/connect/routes/workspaces/workspaces.ts +95 -23
  427. package/src/lib/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/lts-version.ts","../src/lib/version.ts","../src/lib/seam/connect/parse-options.ts","../src/lib/seam/connect/options.ts","../src/lib/seam/connect/token.ts","../src/lib/seam/connect/auth.ts","../src/lib/seam/connect/seam-http-error.ts","../src/lib/seam/connect/error-interceptor.ts","../src/lib/seam/connect/client.ts","../src/lib/seam/connect/openapi.ts","../src/lib/seam/connect/resolve-action-attempt.ts","../src/lib/seam/connect/seam-http-request.ts","../src/lib/seam/connect/seam-paginator.ts","../src/lib/seam/connect/routes/client-sessions/client-sessions.ts","../src/lib/seam/connect/routes/access-codes/simulate/simulate.ts","../src/lib/seam/connect/routes/access-codes/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/access-codes/access-codes.ts","../src/lib/seam/connect/routes/access-grants/access-grants.ts","../src/lib/seam/connect/routes/access-methods/access-methods.ts","../src/lib/seam/connect/routes/acs/access-groups/access-groups.ts","../src/lib/seam/connect/routes/acs/credentials/credentials.ts","../src/lib/seam/connect/routes/acs/encoders/simulate/simulate.ts","../src/lib/seam/connect/routes/acs/encoders/encoders.ts","../src/lib/seam/connect/routes/acs/entrances/entrances.ts","../src/lib/seam/connect/routes/acs/systems/systems.ts","../src/lib/seam/connect/routes/acs/users/users.ts","../src/lib/seam/connect/routes/acs/acs.ts","../src/lib/seam/connect/routes/action-attempts/action-attempts.ts","../src/lib/seam/connect/routes/connect-webviews/connect-webviews.ts","../src/lib/seam/connect/routes/connected-accounts/connected-accounts.ts","../src/lib/seam/connect/routes/devices/simulate/simulate.ts","../src/lib/seam/connect/routes/devices/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/devices/devices.ts","../src/lib/seam/connect/routes/events/events.ts","../src/lib/seam/connect/routes/locks/locks.ts","../src/lib/seam/connect/routes/noise-sensors/noise-thresholds/noise-thresholds.ts","../src/lib/seam/connect/routes/noise-sensors/simulate/simulate.ts","../src/lib/seam/connect/routes/noise-sensors/noise-sensors.ts","../src/lib/seam/connect/routes/phones/simulate/simulate.ts","../src/lib/seam/connect/routes/phones/phones.ts","../src/lib/seam/connect/routes/spaces/spaces.ts","../src/lib/seam/connect/routes/thermostats/daily-programs/daily-programs.ts","../src/lib/seam/connect/routes/thermostats/schedules/schedules.ts","../src/lib/seam/connect/routes/thermostats/simulate/simulate.ts","../src/lib/seam/connect/routes/thermostats/thermostats.ts","../src/lib/seam/connect/routes/user-identities/enrollment-automations/enrollment-automations.ts","../src/lib/seam/connect/routes/user-identities/user-identities.ts","../src/lib/seam/connect/routes/webhooks/webhooks.ts","../src/lib/seam/connect/routes/workspaces/workspaces.ts","../src/lib/seam/connect/routes/seam-http.ts","../src/lib/seam/connect/routes/seam-http-endpoints.ts","../src/lib/seam/connect/seam-http-multi-workspace.ts"],"names":["isAxiosError","axios","serializeUrlSearchParams","axiosRetry","exponentialDelay","_parent"],"mappings":"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","file":"connect.cjs","sourcesContent":["export const seamApiLtsVersion = '1.0.0'\n","const seamapiJavascriptHttpVersion = '0.0.0'\n\nexport default seamapiJavascriptHttpVersion\n","import { seamApiLtsVersion } from 'lib/lts-version.js'\nimport version from 'lib/version.js'\n\nimport { getAuthHeaders } from './auth.js'\nimport type { Client, ClientOptions } from './client.js'\nimport {\n isSeamHttpMultiWorkspaceOptionsWithClient,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n SeamHttpInvalidOptionsError,\n type SeamHttpMultiWorkspaceOptions,\n type SeamHttpOptions,\n type SeamHttpRequestOptions,\n} from './options.js'\n\nexport const defaultEndpoint = 'https://connect.getseam.com'\n\nexport const sdkHeaders = {\n 'seam-sdk-name': 'seamapi/javascript-http',\n 'seam-sdk-version': version,\n 'seam-lts-version': seamApiLtsVersion,\n}\n\nexport type Options =\n | SeamHttpMultiWorkspaceOptions\n | (SeamHttpOptions & { publishableKey?: string })\n\ntype ParsedOptions = Required<\n (ClientOptions | { client: Client }) & SeamHttpRequestOptions\n>\n\nexport const parseOptions = (\n apiKeyOrOptions: string | Options,\n): ParsedOptions => {\n const options = getNormalizedOptions(apiKeyOrOptions)\n\n if (isSeamHttpOptionsWithClient(options)) return options\n if (isSeamHttpMultiWorkspaceOptionsWithClient(options)) return options\n\n return {\n ...options,\n axiosOptions: {\n baseURL: options.endpoint ?? getEndpointFromEnv() ?? defaultEndpoint,\n withCredentials: isSeamHttpOptionsWithClientSessionToken(options),\n ...options.axiosOptions,\n headers: {\n ...getAuthHeaders(options),\n ...options.axiosOptions?.headers,\n ...sdkHeaders,\n },\n },\n axiosRetryOptions: {\n ...options.axiosRetryOptions,\n },\n }\n}\n\nconst getNormalizedOptions = (\n apiKeyOrOptions: string | Options,\n): SeamHttpOptions & Required<SeamHttpRequestOptions> => {\n const options =\n typeof apiKeyOrOptions === 'string'\n ? { apiKey: apiKeyOrOptions }\n : apiKeyOrOptions\n\n const requestOptions = {\n waitForActionAttempt: options.waitForActionAttempt ?? true,\n }\n\n if (isSeamHttpOptionsWithClient(options)) {\n return {\n ...options,\n ...requestOptions,\n }\n }\n\n const apiKey =\n 'apiKey' in options ? options.apiKey : getApiKeyFromEnv(options)\n\n const personalAccessToken =\n 'personalAccessToken' in options\n ? options.personalAccessToken\n : getPersonalAccessTokenFromEnv(options)\n\n const workspaceId =\n 'workspaceId' in options ? options.workspaceId : getWorkspaceIdFromEnv()\n\n if (\n apiKey != null &&\n personalAccessToken != null &&\n !('apiKey' in options) &&\n !('personalAccessToken' in options)\n ) {\n throw new SeamHttpInvalidOptionsError(\n 'Both SEAM_API_KEY and SEAM_PERSONAL_ACCESS_TOKEN environment variables are defined. Please use only one authentication method.',\n )\n }\n\n return {\n ...options,\n ...(apiKey != null ? { apiKey } : {}),\n ...(workspaceId != null ? { workspaceId } : {}),\n ...(personalAccessToken != null ? { personalAccessToken } : {}),\n ...requestOptions,\n }\n}\n\nconst getApiKeyFromEnv = (\n options: SeamHttpOptions,\n): string | null | undefined => {\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n return null\n }\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n return null\n }\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n return null\n }\n return globalThis.process?.env?.SEAM_API_KEY\n}\n\nconst getPersonalAccessTokenFromEnv = (\n options: SeamHttpOptions,\n): string | null | undefined => {\n if ('apiKey' in options && options.apiKey != null) {\n return null\n }\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n return null\n }\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n return null\n }\n return globalThis.process?.env?.SEAM_PERSONAL_ACCESS_TOKEN\n}\n\nconst getWorkspaceIdFromEnv = (): string | null | undefined => {\n return globalThis.process?.env?.SEAM_WORKSPACE_ID\n}\n\nconst getEndpointFromEnv = (): string | null | undefined => {\n if (globalThis.process?.env?.SEAM_API_URL != null) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Using the SEAM_API_URL environment variable is deprecated. Support will be remove in a later major version. Use SEAM_ENDPOINT instead.',\n )\n }\n\n if (\n globalThis.process?.env?.SEAM_API_URL != null &&\n globalThis.process?.env?.SEAM_ENDPOINT != null\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Detected both the SEAM_API_URL and SEAM_ENDPOINT environment variables. Using SEAM_ENDPOINT.',\n )\n }\n\n return (\n globalThis.process?.env?.SEAM_ENDPOINT ??\n globalThis.process?.env?.SEAM_API_URL\n )\n}\n\nexport const limitToSeamHttpRequestOptions = (\n options: Required<SeamHttpRequestOptions>,\n): Required<SeamHttpRequestOptions> => {\n return Object.keys(options)\n .filter(isSeamHttpRequestOption)\n .reduce(\n (obj, key) => ({\n ...obj,\n [key]: options[key],\n }),\n {},\n ) as Required<SeamHttpRequestOptions>\n}\n\nexport const isSeamHttpRequestOption = (\n key: string,\n): key is keyof SeamHttpRequestOptions => {\n const keys: Record<keyof SeamHttpRequestOptions, true> = {\n waitForActionAttempt: true,\n }\n return Object.keys(keys).includes(key)\n}\n","import type { Client, ClientOptions } from './client.js'\nimport { isSeamHttpRequestOption } from './parse-options.js'\nimport type { ResolveActionAttemptOptions } from './resolve-action-attempt.js'\n\nexport type SeamHttpMultiWorkspaceOptions =\n | SeamHttpMultiWorkspaceOptionsFromEnv\n | SeamHttpMultiWorkspaceOptionsWithClient\n | SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken\n | SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken\n\nexport type SeamHttpOptions =\n | SeamHttpOptionsFromEnv\n | SeamHttpOptionsWithClient\n | SeamHttpOptionsWithApiKey\n | SeamHttpOptionsWithClientSessionToken\n | SeamHttpOptionsWithConsoleSessionToken\n | SeamHttpOptionsWithPersonalAccessToken\n\ninterface SeamHttpCommonOptions extends ClientOptions, SeamHttpRequestOptions {\n endpoint?: string\n}\n\nexport interface SeamHttpRequestOptions {\n waitForActionAttempt?: boolean | ResolveActionAttemptOptions\n}\n\nexport interface SeamHttpFromPublishableKeyOptions\n extends SeamHttpCommonOptions {}\n\nexport interface SeamHttpOptionsFromEnv extends SeamHttpCommonOptions {}\n\nexport interface SeamHttpMultiWorkspaceOptionsFromEnv\n extends SeamHttpCommonOptions {}\n\nexport interface SeamHttpMultiWorkspaceOptionsWithClient\n extends SeamHttpRequestOptions {\n client: Client\n}\n\nexport const isSeamHttpMultiWorkspaceOptionsWithClient = (\n options: SeamHttpOptions,\n): options is SeamHttpMultiWorkspaceOptionsWithClient =>\n isSeamHttpOptionsWithClient(options)\n\nexport interface SeamHttpOptionsWithClient extends SeamHttpRequestOptions {\n client: Client\n}\n\nexport const isSeamHttpOptionsWithClient = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithClient => {\n if (!('client' in options)) return false\n if (options.client == null) return false\n\n const keys = Object.keys(options).filter((k) => k !== 'client')\n if (keys.filter((k) => !isSeamHttpRequestOption(k)).length > 0) {\n throw new SeamHttpInvalidOptionsError(\n `The client option cannot be used with any other option, but received: ${keys.join(\n ', ',\n )}`,\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithApiKey extends SeamHttpCommonOptions {\n apiKey: string\n}\n\nexport const isSeamHttpOptionsWithApiKey = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithApiKey => {\n if (!('apiKey' in options)) return false\n if (options.apiKey == null) return false\n\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The clientSessionToken option cannot be used with the apiKey option',\n )\n }\n\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The consoleSessionToken option cannot be used with the apiKey option',\n )\n }\n\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The personalAccessToken option cannot be used with the apiKey option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithClientSessionToken\n extends SeamHttpCommonOptions {\n clientSessionToken: string\n}\n\nexport const isSeamHttpOptionsWithClientSessionToken = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithClientSessionToken => {\n if (!('clientSessionToken' in options)) return false\n if (options.clientSessionToken == null) return false\n\n if ('apiKey' in options && options.apiKey != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The apiKey option cannot be used with the clientSessionToken option',\n )\n }\n\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The consoleSessionToken option cannot be used with the clientSessionToken option',\n )\n }\n\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The personalAccessToken option cannot be used with the clientSessionToken option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken\n extends SeamHttpCommonOptions {\n consoleSessionToken: string\n}\n\nexport const isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken = (\n options: SeamHttpOptions,\n): options is SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken => {\n if (!('consoleSessionToken' in options)) return false\n if (options.consoleSessionToken == null) return false\n\n if ('apiKey' in options && options.apiKey != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The apiKey option cannot be used with the consoleSessionToken option',\n )\n }\n\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The clientSessionToken option cannot be used with the consoleSessionToken option',\n )\n }\n\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The personalAccessToken option cannot be used with the consoleSessionToken option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithConsoleSessionToken\n extends SeamHttpCommonOptions {\n consoleSessionToken: string\n workspaceId: string\n}\n\nexport const isSeamHttpOptionsWithConsoleSessionToken = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithConsoleSessionToken => {\n if (!isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken(options)) {\n return false\n }\n\n if (!('workspaceId' in options) || options.workspaceId == null) {\n throw new SeamHttpInvalidOptionsError(\n 'Must pass a workspaceId when using a consoleSessionToken',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken\n extends SeamHttpCommonOptions {\n personalAccessToken: string\n}\n\nexport const isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken = (\n options: SeamHttpOptions,\n): options is SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken => {\n if (!('personalAccessToken' in options)) return false\n if (options.personalAccessToken == null) return false\n\n if ('apiKey' in options && options.apiKey != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The apiKey option cannot be used with the personalAccessToken option',\n )\n }\n\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The clientSessionToken option cannot be used with the personalAccessToken option',\n )\n }\n\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The consoleSessionToken option cannot be used with the personalAccessToken option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithPersonalAccessToken\n extends SeamHttpCommonOptions {\n personalAccessToken: string\n workspaceId: string\n}\n\nexport const isSeamHttpOptionsWithPersonalAccessToken = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithPersonalAccessToken => {\n if (!isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken(options)) {\n return false\n }\n\n if (!('workspaceId' in options) || options.workspaceId == null) {\n throw new SeamHttpInvalidOptionsError(\n 'Must pass a workspaceId when using a personalAccessToken',\n )\n }\n\n return true\n}\n\nexport class SeamHttpInvalidOptionsError extends Error {\n constructor(message: string) {\n super(`SeamHttp received invalid options: ${message}`)\n this.name = this.constructor.name\n }\n}\n\nexport class SeamHttpMultiWorkspaceInvalidOptionsError extends Error {\n constructor(message: string) {\n super(`SeamHttpMultiWorkspace received invalid options: ${message}`)\n this.name = this.constructor.name\n }\n}\n","export const tokenPrefix = 'seam_'\n\nexport const accessTokenPrefix = 'seam_at'\n\nexport const jwtPrefix = 'ey'\n\nexport const clientSessionTokenPrefix = 'seam_cst'\n\nexport const publishableKeyTokenPrefix = 'seam_pk'\n\nexport const isAccessToken = (token: string): boolean =>\n token.startsWith(accessTokenPrefix)\n\nexport const isJwt = (token: string): boolean => token.startsWith(jwtPrefix)\n\nexport const isSeamToken = (token: string): boolean =>\n token.startsWith(tokenPrefix)\n\nexport const isApiKey = (token: string): boolean =>\n !isClientSessionToken(token) &&\n !isJwt(token) &&\n !isAccessToken(token) &&\n !isPublishableKey(token) &&\n isSeamToken(token)\n\nexport const isClientSessionToken = (token: string): boolean =>\n token.startsWith(clientSessionTokenPrefix)\n\nexport const isPublishableKey = (token: string): boolean =>\n token.startsWith(publishableKeyTokenPrefix)\n\nexport const isConsoleSessionToken = (token: string): boolean => isJwt(token)\n\nexport const isPersonalAccessToken = (token: string): boolean =>\n isAccessToken(token)\n","import {\n isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n SeamHttpInvalidOptionsError,\n type SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n type SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n} from './options.js'\nimport type { Options } from './parse-options.js'\nimport {\n accessTokenPrefix,\n clientSessionTokenPrefix,\n isAccessToken,\n isClientSessionToken,\n isJwt,\n isPublishableKey,\n isSeamToken,\n jwtPrefix,\n publishableKeyTokenPrefix,\n tokenPrefix,\n} from './token.js'\n\ntype Headers = Record<string, string>\n\nexport const getAuthHeaders = (options: Options): Headers => {\n if ('publishableKey' in options && options.publishableKey != null) {\n return getAuthHeadersForPublishableKey(options.publishableKey)\n }\n\n if (isSeamHttpOptionsWithApiKey(options)) {\n return getAuthHeadersForApiKey(options)\n }\n\n if (isSeamHttpOptionsWithClientSessionToken(options)) {\n return getAuthHeadersForClientSessionToken(options)\n }\n\n if (\n isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken(options) ||\n isSeamHttpOptionsWithConsoleSessionToken(options)\n ) {\n return getAuthHeadersForConsoleSessionToken(options)\n }\n\n if (\n isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken(options) ||\n isSeamHttpOptionsWithPersonalAccessToken(options)\n ) {\n return getAuthHeadersForPersonalAccessToken(options)\n }\n\n throw new SeamHttpInvalidOptionsError(\n [\n 'Must specify',\n 'an apiKey,',\n 'clientSessionToken,',\n 'publishableKey,',\n 'consoleSessionToken',\n 'or personalAccessToken.',\n 'Attempted reading configuration from the environment, but the environment variable SEAM_API_KEY is not set.',\n ].join(' '),\n )\n}\n\nconst getAuthHeadersForApiKey = ({\n apiKey,\n}: SeamHttpOptionsWithApiKey): Headers => {\n if (isClientSessionToken(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token cannot be used as an apiKey',\n )\n }\n\n if (isJwt(apiKey)) {\n throw new SeamHttpInvalidTokenError('A JWT cannot be used as an apiKey')\n }\n\n if (isAccessToken(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as an apiKey',\n )\n }\n\n if (isPublishableKey(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as an apiKey',\n )\n }\n\n if (!isSeamToken(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid apiKey format, expected token to start with ${tokenPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${apiKey}`,\n }\n}\n\nexport const getAuthHeadersForClientSessionToken = ({\n clientSessionToken,\n}: SeamHttpOptionsWithClientSessionToken): Headers => {\n if (isJwt(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A JWT cannot be used as a clientSessionToken',\n )\n }\n\n if (isAccessToken(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as a clientSessionToken',\n )\n }\n\n if (isPublishableKey(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as a clientSessionToken',\n )\n }\n\n if (!isClientSessionToken(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid clientSessionToken format, expected token to start with ${clientSessionTokenPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${clientSessionToken}`,\n 'client-session-token': clientSessionToken,\n }\n}\n\nconst getAuthHeadersForConsoleSessionToken = ({\n consoleSessionToken,\n ...options\n}:\n | SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken\n | SeamHttpOptionsWithConsoleSessionToken): Headers => {\n const workspaceId = 'workspaceId' in options ? options.workspaceId : undefined\n\n if (isAccessToken(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as a consoleSessionToken',\n )\n }\n\n if (isClientSessionToken(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token cannot be used as a consoleSessionToken',\n )\n }\n\n if (isPublishableKey(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as a consoleSessionToken',\n )\n }\n\n if (!isJwt(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid consoleSessionToken format, expected a JWT which starts with ${jwtPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${consoleSessionToken}`,\n ...(workspaceId != null ? { 'seam-workspace': workspaceId } : {}),\n }\n}\n\nconst getAuthHeadersForPersonalAccessToken = ({\n personalAccessToken,\n ...options\n}:\n | SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken\n | SeamHttpOptionsWithPersonalAccessToken): Headers => {\n const workspaceId = 'workspaceId' in options ? options.workspaceId : undefined\n\n if (isJwt(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A JWT cannot be used as a personalAccessToken',\n )\n }\n\n if (isClientSessionToken(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token cannot be used as a personalAccessToken',\n )\n }\n\n if (isPublishableKey(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as a personalAccessToken',\n )\n }\n\n if (!isAccessToken(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid personalAccessToken format, expected token to start with ${accessTokenPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${personalAccessToken}`,\n ...(workspaceId != null ? { 'seam-workspace': workspaceId } : {}),\n }\n}\n\nconst getAuthHeadersForPublishableKey = (publishableKey: string): Headers => {\n if (isJwt(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A JWT cannot be used as a publishableKey',\n )\n }\n\n if (isAccessToken(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as a publishableKey',\n )\n }\n\n if (isClientSessionToken(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token Key cannot be used as a publishableKey',\n )\n }\n\n if (!isPublishableKey(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid publishableKey format, expected token to start with ${publishableKeyTokenPrefix}`,\n )\n }\n\n return {\n 'seam-publishable-key': publishableKey,\n }\n}\n\nexport class SeamHttpInvalidTokenError extends Error {\n constructor(message: string) {\n super(`SeamHttp received an invalid token: ${message}`)\n this.name = this.constructor.name\n }\n}\n\nexport const warnOnInsecureuserIdentifierKey = (\n userIdentifierKey: string,\n): void => {\n if (isEmail(userIdentifierKey)) {\n // eslint-disable-next-line no-console\n console.warn(\n ...[\n 'Using an email for the userIdentifierKey is insecure and may return an error in the future!',\n 'This is insecure because an email is common knowledge or easily guessed.',\n 'Use something with sufficient entropy known only to the owner of the client session.',\n 'For help choosing a user identifier key see',\n 'https://docs.seam.co/latest/seam-components/overview/get-started-with-client-side-components#3-select-a-user-identifier-key',\n ],\n )\n }\n}\n\n// SOURCE: https://stackoverflow.com/a/46181\nconst isEmail = (value: string): boolean => {\n if (value.includes('!')) return false\n // The regex may run slow on strings starting with '!@!.' and with many repetitions of '!.'.\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)\n}\n","import type { ApiError } from './api-error-types.js'\n\nexport class SeamHttpApiError extends Error {\n code: string\n statusCode: number\n requestId: string\n data?: unknown\n\n constructor(error: ApiError, statusCode: number, requestId: string) {\n const { type, message, data } = error\n super(message)\n this.name = this.constructor.name\n this.code = type\n this.statusCode = statusCode\n this.requestId = requestId\n if (data != null) this.data = data\n }\n}\n\nexport const isSeamHttpApiError = (\n error: unknown,\n): error is SeamHttpApiError => {\n return error instanceof SeamHttpApiError\n}\n\nexport class SeamHttpUnauthorizedError extends SeamHttpApiError {\n override code: 'unauthorized'\n override statusCode: 401\n\n constructor(requestId: string) {\n const type = 'unauthorized'\n const status = 401\n super({ type, message: 'Unauthorized' }, status, requestId)\n this.name = this.constructor.name\n this.code = type\n this.statusCode = status\n this.requestId = requestId\n }\n}\n\nexport const isSeamHttpUnauthorizedError = (\n error: unknown,\n): error is SeamHttpUnauthorizedError => {\n return error instanceof SeamHttpUnauthorizedError\n}\n\nexport class SeamHttpInvalidInputError extends SeamHttpApiError {\n override code: 'invalid_input'\n readonly #validationErrors: NonNullable<ApiError['validation_errors']>\n\n constructor(error: ApiError, statusCode: number, requestId: string) {\n super(error, statusCode, requestId)\n this.name = this.constructor.name\n this.code = 'invalid_input'\n this.#validationErrors = error.validation_errors ?? {}\n }\n\n getValidationErrorMessages(paramName: string): string[] {\n return this.#validationErrors[paramName]?._errors ?? []\n }\n}\n\nexport const isSeamHttpInvalidInputError = (\n error: unknown,\n): error is SeamHttpInvalidInputError => {\n return error instanceof SeamHttpInvalidInputError\n}\n","import { type AxiosError, isAxiosError } from 'axios'\n\nimport type { ApiErrorResponse } from './api-error-types.js'\nimport {\n SeamHttpApiError,\n SeamHttpInvalidInputError,\n SeamHttpUnauthorizedError,\n} from './seam-http-error.js'\n\nexport const errorInterceptor = async (err: unknown): Promise<void> => {\n if (!isAxiosError(err)) throw err\n\n const { response } = err\n const status = response?.status\n\n const requestId = getRequestId(err)\n\n if (status == null) throw err\n\n if (status === 401) {\n throw new SeamHttpUnauthorizedError(requestId)\n }\n\n if (!isApiErrorResponse(response)) throw err\n\n const { type } = response.data.error\n\n const args = [response.data.error, status, requestId] as const\n\n if (type === 'invalid_input') throw new SeamHttpInvalidInputError(...args)\n throw new SeamHttpApiError(...args)\n}\n\nconst isApiErrorResponse = (\n response: AxiosError['response'],\n): response is NonNullable<AxiosError<ApiErrorResponse>['response']> => {\n if (response == null) return false\n const { headers, data } = response\n\n if (headers == null) return false\n\n const contentType = headers['Content-Type']\n if (\n typeof contentType === 'string' &&\n !contentType.startsWith('application/json')\n ) {\n return false\n }\n\n if (typeof data === 'object' && data != null) {\n return (\n 'error' in data &&\n typeof data.error === 'object' &&\n data.error != null &&\n 'type' in data.error &&\n typeof data.error.type === 'string' &&\n 'message' in data.error &&\n typeof data.error.message === 'string'\n )\n }\n\n return false\n}\n\nconst getRequestId = (err: AxiosError): string => {\n const headers = err.response?.headers\n if (headers == null) return ''\n const requestId = headers['seam-request-id']\n if (requestId == null) return ''\n return requestId\n}\n","import { serializeUrlSearchParams } from '@seamapi/url-search-params-serializer'\nimport axios, { type AxiosInstance, type AxiosRequestConfig } from 'axios'\nimport axiosRetry, { type AxiosRetry, exponentialDelay } from 'axios-retry'\n\nimport { errorInterceptor } from './error-interceptor.js'\n\nexport type Client = AxiosInstance\n\nexport interface ClientOptions {\n axiosOptions?: AxiosRequestConfig\n axiosRetryOptions?: AxiosRetryConfig\n}\n\ntype AxiosRetryConfig = Parameters<AxiosRetry>[1]\n\nexport const createClient = (options: ClientOptions): AxiosInstance => {\n const client = axios.create({\n paramsSerializer: serializeUrlSearchParams,\n adapter: 'fetch',\n ...options.axiosOptions,\n })\n\n axiosRetry(client, {\n retries: 2,\n retryDelay: exponentialDelay,\n ...options.axiosRetryOptions,\n })\n\n client.interceptors.response.use(undefined, errorInterceptor)\n\n return client\n}\n","import type { openapi } from '@seamapi/types/connect'\n\nimport { createClient } from './client.js'\nimport { defaultEndpoint, sdkHeaders } from './parse-options.js'\n\nexport const getOpenapiSchema = async (\n endpoint = defaultEndpoint,\n): Promise<typeof openapi> => {\n const client = createClient({\n axiosOptions: {\n baseURL: endpoint,\n headers: sdkHeaders,\n },\n })\n const { data } = await client.get<typeof openapi>('/openapi.json')\n return data\n}\n","import type { ActionAttempt } from '@seamapi/types/connect'\n\nimport type { SeamHttpActionAttempts } from './routes/index.js'\n\nexport interface ResolveActionAttemptOptions {\n timeout?: number\n pollingInterval?: number\n}\n\nexport const resolveActionAttempt = async <T extends ActionAttempt>(\n actionAttempt: T,\n actionAttempts: SeamHttpActionAttempts,\n { timeout = 5000, pollingInterval = 500 }: ResolveActionAttemptOptions,\n): Promise<SucceededActionAttempt<T>> => {\n let timeoutRef\n const timeoutPromise = new Promise<SucceededActionAttempt<T>>(\n (_resolve, reject) => {\n timeoutRef = globalThis.setTimeout(() => {\n reject(new SeamActionAttemptTimeoutError<T>(actionAttempt, timeout))\n }, timeout)\n },\n )\n\n try {\n return await Promise.race([\n pollActionAttempt<T>(actionAttempt, actionAttempts, { pollingInterval }),\n timeoutPromise,\n ])\n } finally {\n if (timeoutRef != null) globalThis.clearTimeout(timeoutRef)\n }\n}\n\nconst pollActionAttempt = async <T extends ActionAttempt>(\n actionAttempt: T,\n actionAttempts: SeamHttpActionAttempts,\n options: Pick<ResolveActionAttemptOptions, 'pollingInterval'>,\n): Promise<SucceededActionAttempt<T>> => {\n if (isSuccessfulActionAttempt(actionAttempt)) {\n return actionAttempt\n }\n\n if (isFailedActionAttempt(actionAttempt)) {\n throw new SeamActionAttemptFailedError(actionAttempt)\n }\n\n await new Promise((resolve) => setTimeout(resolve, options.pollingInterval))\n\n const nextActionAttempt = await actionAttempts.get({\n action_attempt_id: actionAttempt.action_attempt_id,\n })\n\n return await pollActionAttempt(\n nextActionAttempt as unknown as T,\n actionAttempts,\n options,\n )\n}\n\nexport const isSeamActionAttemptError = <T extends ActionAttempt>(\n error: unknown,\n): error is SeamActionAttemptError<T> => {\n return error instanceof SeamActionAttemptError\n}\n\nexport class SeamActionAttemptError<T extends ActionAttempt> extends Error {\n actionAttempt: T\n\n constructor(message: string, actionAttempt: T) {\n super(message)\n this.name = this.constructor.name\n this.actionAttempt = actionAttempt\n }\n}\n\nexport const isSeamActionAttemptFailedError = <T extends ActionAttempt>(\n error: unknown,\n): error is SeamActionAttemptFailedError<T> => {\n return error instanceof SeamActionAttemptFailedError\n}\n\nexport class SeamActionAttemptFailedError<\n T extends ActionAttempt,\n> extends SeamActionAttemptError<T> {\n code: string\n\n constructor(actionAttempt: FailedActionAttempt<T>) {\n super(actionAttempt.error.message, actionAttempt)\n this.name = this.constructor.name\n this.code = actionAttempt.error.type\n }\n}\n\nexport const isSeamActionAttemptTimeoutError = <T extends ActionAttempt>(\n error: unknown,\n): error is SeamActionAttemptTimeoutError<T> => {\n return error instanceof SeamActionAttemptTimeoutError\n}\n\nexport class SeamActionAttemptTimeoutError<\n T extends ActionAttempt,\n> extends SeamActionAttemptError<T> {\n constructor(actionAttempt: T, timeout: number) {\n super(\n `Timed out waiting for action action attempt after ${timeout}ms`,\n actionAttempt,\n )\n this.name = this.constructor.name\n }\n}\n\nconst isSuccessfulActionAttempt = <T extends ActionAttempt>(\n actionAttempt: T,\n): actionAttempt is SucceededActionAttempt<T> =>\n actionAttempt.status === 'success'\n\nconst isFailedActionAttempt = <T extends ActionAttempt>(\n actionAttempt: T,\n): actionAttempt is FailedActionAttempt<T> => actionAttempt.status === 'error'\n\nexport type SucceededActionAttempt<T extends ActionAttempt> = Extract<\n T,\n { status: 'success' }\n>\n\nexport type FailedActionAttempt<T extends ActionAttempt> = Extract<\n T,\n { status: 'error' }\n>\n","import type { ActionAttempt } from '@seamapi/types/connect'\nimport { serializeUrlSearchParams } from '@seamapi/url-search-params-serializer'\nimport type { Method } from 'axios'\n\nimport type { Client } from './client.js'\nimport type { SeamHttpRequestOptions } from './options.js'\nimport { resolveActionAttempt } from './resolve-action-attempt.js'\nimport { SeamHttpActionAttempts } from './routes/index.js'\n\ninterface SeamHttpRequestParent {\n readonly client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n}\n\ninterface SeamHttpRequestConfig<TResponseKey> {\n readonly pathname: string\n readonly method: Method\n readonly body?: unknown\n readonly params?: undefined | Record<string, unknown>\n readonly responseKey: TResponseKey\n readonly options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>\n}\n\nexport class SeamHttpRequest<\n const TResponse,\n const TResponseKey extends keyof TResponse | undefined,\n> implements\n Promise<\n TResponseKey extends keyof TResponse ? TResponse[TResponseKey] : undefined\n >\n{\n readonly [Symbol.toStringTag]: string = 'SeamHttpRequest'\n\n readonly #parent: SeamHttpRequestParent\n readonly #config: SeamHttpRequestConfig<TResponseKey>\n\n constructor(\n parent: SeamHttpRequestParent,\n config: SeamHttpRequestConfig<TResponseKey>,\n ) {\n this.#parent = parent\n this.#config = config\n }\n\n public get responseKey(): TResponseKey {\n return this.#config.responseKey\n }\n\n public get url(): URL {\n const { client } = this.#parent\n\n const serializer =\n typeof client.defaults.paramsSerializer === 'function'\n ? client.defaults.paramsSerializer\n : serializeUrlSearchParams\n\n const origin = getUrlPrefix(client.defaults.baseURL ?? '')\n\n const path =\n this.params == null\n ? this.pathname\n : `${this.pathname}?${serializer(this.params)}`\n\n return new URL(`${origin}${path}`)\n }\n\n public get pathname(): string {\n return this.#config.pathname.startsWith('/')\n ? this.#config.pathname\n : `/${this.#config.pathname}`\n }\n\n public get method(): Method {\n return this.#config.method\n }\n\n public get params(): undefined | Record<string, unknown> {\n return this.#config.params\n }\n\n public get body(): unknown {\n return this.#config.body\n }\n\n async execute(): Promise<\n TResponseKey extends keyof TResponse ? TResponse[TResponseKey] : undefined\n > {\n const response = await this.fetchResponse()\n\n type Response = TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined\n\n if (this.responseKey === undefined) {\n return undefined as Response\n }\n\n const data = response[this.responseKey] as unknown as Response\n\n if (this.responseKey === 'action_attempt') {\n const waitForActionAttempt =\n this.#config.options?.waitForActionAttempt ??\n this.#parent.defaults.waitForActionAttempt\n\n if (waitForActionAttempt !== false) {\n const actionAttempt = await resolveActionAttempt(\n data as unknown as ActionAttempt,\n SeamHttpActionAttempts.fromClient(this.#parent.client, {\n ...this.#parent.defaults,\n waitForActionAttempt: false,\n }),\n typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt,\n )\n return actionAttempt as Response\n }\n }\n\n return data\n }\n\n async fetchResponse(): Promise<TResponse> {\n const { client } = this.#parent\n const response = await client.request({\n url: this.pathname,\n method: this.method,\n data: this.body,\n params: this.params,\n })\n return response.data as unknown as TResponse\n }\n\n async then<\n TResult1 = TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined,\n TResult2 = never,\n >(\n onfulfilled?:\n | ((\n value: TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined,\n ) => TResult1 | PromiseLike<TResult1>)\n | null\n | undefined,\n onrejected?:\n | ((reason: unknown) => TResult2 | PromiseLike<TResult2>)\n | null\n | undefined,\n ): Promise<TResult1 | TResult2> {\n return await this.execute().then(onfulfilled, onrejected)\n }\n\n async catch<TResult = never>(\n onrejected?:\n | ((reason: unknown) => TResult | PromiseLike<TResult>)\n | null\n | undefined,\n ): Promise<\n | (TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined)\n | TResult\n > {\n return await this.execute().catch(onrejected)\n }\n\n async finally(\n onfinally?: (() => void) | null | undefined,\n ): Promise<\n TResponseKey extends keyof TResponse ? TResponse[TResponseKey] : undefined\n > {\n return await this.execute().finally(onfinally)\n }\n}\n\nconst getUrlPrefix = (input: string): string => {\n if (canParseUrl(input)) {\n const url = new URL(input).toString()\n if (url.endsWith('/')) return url.slice(0, -1)\n return url\n }\n if (globalThis.location != null) {\n const pathname = input.startsWith('/') ? input : `/${input}`\n return new URL(`${globalThis.location.origin}${pathname}`).toString()\n }\n throw new Error(\n `Cannot resolve origin from ${input} in a non-browser environment`,\n )\n}\n\n// UPSTREAM: Prefer URL.canParse when it has wider support.\n// https://caniuse.com/mdn-api_url_canparse_static\nconst canParseUrl = (input: string): boolean => {\n try {\n return new URL(input) != null\n } catch {\n return false\n }\n}\n","import type { Client } from './client.js'\nimport type { SeamHttpRequestOptions } from './options.js'\nimport { SeamHttpRequest } from './seam-http-request.js'\n\ninterface SeamPaginatorParent {\n readonly client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n}\n\ndeclare const $brand: unique symbol\n\ntype PageCursor = string & { [$brand]: 'SeamPageCursor' }\n\ninterface Pagination {\n readonly hasNextPage: boolean\n readonly nextPageCursor: PageCursor | null\n readonly nextPageUrl: string | null\n}\n\nexport class SeamPaginator<\n const TResponse,\n const TResponseKey extends keyof TResponse,\n> implements AsyncIterable<EnsureReadonlyArray<TResponse[TResponseKey]>>\n{\n readonly #request: SeamHttpRequest<TResponse, TResponseKey>\n readonly #parent: SeamPaginatorParent\n\n constructor(\n parent: SeamPaginatorParent,\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ) {\n if (request.responseKey == null) {\n throw new Error(\n `The ${request.pathname} endpoint does not support pagination`,\n )\n }\n this.#parent = parent\n this.#request = request\n }\n\n async firstPage(): Promise<\n [EnsureReadonlyArray<TResponse[TResponseKey]>, Pagination]\n > {\n return await this.#fetch()\n }\n\n async nextPage(\n nextPageCursor: Pagination['nextPageCursor'],\n ): Promise<[EnsureReadonlyArray<TResponse[TResponseKey]>, Pagination]> {\n if (nextPageCursor == null) {\n throw new Error('Cannot get the next page with a null nextPageCursor')\n }\n\n return await this.#fetch(nextPageCursor)\n }\n\n async #fetch(\n nextPageCursor?: Pagination['nextPageCursor'],\n ): Promise<[EnsureReadonlyArray<TResponse[TResponseKey]>, Pagination]> {\n const responseKey = this.#request.responseKey\n\n if (responseKey == null) {\n throw new Error('Cannot paginate a response without a responseKey')\n }\n\n const request = new SeamHttpRequest<TResponse, TResponseKey>(this.#parent, {\n pathname: this.#request.pathname,\n method: this.#request.method,\n responseKey,\n params:\n this.#request.params != null\n ? { ...this.#request.params, page_cursor: nextPageCursor }\n : undefined,\n body:\n this.#request.body != null\n ? { ...this.#request.body, page_cursor: nextPageCursor }\n : undefined,\n })\n\n const response = await request.fetchResponse()\n const data = response[responseKey]\n\n const paginationData =\n response != null &&\n typeof response === 'object' &&\n 'pagination' in response\n ? (response.pagination as PaginationData)\n : null\n\n const pagination: Pagination = {\n hasNextPage: paginationData?.has_next_page ?? false,\n nextPageCursor: paginationData?.next_page_cursor ?? null,\n nextPageUrl: paginationData?.next_page_url ?? null,\n }\n\n if (!Array.isArray(data)) {\n throw new Error(\n `Expected an array response for ${String(responseKey)} but got ${String(typeof data)}`,\n )\n }\n\n return [\n data as EnsureReadonlyArray<TResponse[TResponseKey]>,\n pagination,\n ] as const\n }\n\n async flattenToArray(): Promise<\n EnsureReadonlyArray<TResponse[TResponseKey]>\n > {\n const items = [] as EnsureMutableArray<TResponse[TResponseKey]>\n let [current, pagination] = await this.firstPage()\n items.push(...current)\n while (pagination.hasNextPage) {\n ;[current, pagination] = await this.nextPage(pagination.nextPageCursor)\n items.push(...current)\n }\n return items as EnsureReadonlyArray<TResponse[TResponseKey]>\n }\n\n async *flatten(): AsyncGenerator<\n EnsureReadonlyArray<TResponse[TResponseKey]>\n > {\n let [current, pagination] = await this.firstPage()\n for (const item of current) {\n yield item\n }\n while (pagination.hasNextPage) {\n ;[current, pagination] = await this.nextPage(pagination.nextPageCursor)\n for (const item of current) {\n yield item\n }\n }\n }\n\n async *[Symbol.asyncIterator](): AsyncGenerator<\n EnsureReadonlyArray<TResponse[TResponseKey]>\n > {\n let [current, pagination] = await this.firstPage()\n yield current\n while (pagination.hasNextPage) {\n ;[current, pagination] = await this.nextPage(pagination.nextPageCursor)\n yield current\n }\n }\n}\n\ntype EnsureReadonlyArray<T> = T extends readonly any[] ? T : never\ntype EnsureMutableArray<T> = T extends any[] ? T : never\n\ninterface PaginationData {\n has_next_page: boolean\n next_page_cursor: PageCursor | null\n next_page_url: string | null\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpClientSessions {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpClientSessions> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpClientSessions.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpClientSessions.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n body?: ClientSessionsCreateBody,\n ): SeamHttpRequest<ClientSessionsCreateResponse, 'client_session'> {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/create',\n method: 'PUT',\n body,\n responseKey: 'client_session',\n })\n }\n\n delete(\n params?: ClientSessionsDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: ClientSessionsGetParams,\n ): SeamHttpRequest<ClientSessionsGetResponse, 'client_session'> {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/get',\n method: 'POST',\n body: params,\n responseKey: 'client_session',\n })\n }\n\n getOrCreate(\n body?: ClientSessionsGetOrCreateBody,\n ): SeamHttpRequest<ClientSessionsGetOrCreateResponse, 'client_session'> {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/get_or_create',\n method: 'POST',\n body,\n responseKey: 'client_session',\n })\n }\n\n grantAccess(\n body?: ClientSessionsGrantAccessBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/grant_access',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n\n list(\n params?: ClientSessionsListParams,\n ): SeamHttpRequest<ClientSessionsListResponse, 'client_sessions'> {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/list',\n method: 'POST',\n body: params,\n responseKey: 'client_sessions',\n })\n }\n\n revoke(body?: ClientSessionsRevokeBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/revoke',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type ClientSessionsCreateBody =\n RouteRequestBody<'/client_sessions/create'>\n\nexport type ClientSessionsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/create'>>\n>\n\nexport type ClientSessionsCreateOptions = never\n\nexport type ClientSessionsDeleteParams =\n RouteRequestBody<'/client_sessions/delete'>\n\nexport type ClientSessionsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/delete'>>\n>\n\nexport type ClientSessionsDeleteOptions = never\n\nexport type ClientSessionsGetParams = RouteRequestBody<'/client_sessions/get'>\n\nexport type ClientSessionsGetResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/get'>>\n>\n\nexport type ClientSessionsGetOptions = never\n\nexport type ClientSessionsGetOrCreateBody =\n RouteRequestBody<'/client_sessions/get_or_create'>\n\nexport type ClientSessionsGetOrCreateResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/get_or_create'>>\n>\n\nexport type ClientSessionsGetOrCreateOptions = never\n\nexport type ClientSessionsGrantAccessBody =\n RouteRequestBody<'/client_sessions/grant_access'>\n\nexport type ClientSessionsGrantAccessResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/grant_access'>>\n>\n\nexport type ClientSessionsGrantAccessOptions = never\n\nexport type ClientSessionsListParams = RouteRequestBody<'/client_sessions/list'>\n\nexport type ClientSessionsListResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/list'>>\n>\n\nexport type ClientSessionsListOptions = never\n\nexport type ClientSessionsRevokeBody =\n RouteRequestBody<'/client_sessions/revoke'>\n\nexport type ClientSessionsRevokeResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/revoke'>>\n>\n\nexport type ClientSessionsRevokeOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessCodesSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessCodesSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessCodesSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessCodesSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n createUnmanagedAccessCode(\n body?: AccessCodesSimulateCreateUnmanagedAccessCodeBody,\n ): SeamHttpRequest<\n AccessCodesSimulateCreateUnmanagedAccessCodeResponse,\n 'access_code'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/simulate/create_unmanaged_access_code',\n method: 'POST',\n body,\n responseKey: 'access_code',\n })\n }\n}\n\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeBody =\n RouteRequestBody<'/access_codes/simulate/create_unmanaged_access_code'>\n\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/access_codes/simulate/create_unmanaged_access_code'>\n >\n >\n\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessCodesUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessCodesUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessCodesUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessCodesUnmanaged.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n convertToManaged(\n body?: AccessCodesUnmanagedConvertToManagedBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/convert_to_managed',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n\n delete(\n params?: AccessCodesUnmanagedDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: AccessCodesUnmanagedGetParams,\n ): SeamHttpRequest<AccessCodesUnmanagedGetResponse, 'access_code'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/get',\n method: 'POST',\n body: params,\n responseKey: 'access_code',\n })\n }\n\n list(\n params?: AccessCodesUnmanagedListParams,\n ): SeamHttpRequest<AccessCodesUnmanagedListResponse, 'access_codes'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/list',\n method: 'POST',\n body: params,\n responseKey: 'access_codes',\n })\n }\n\n update(\n body?: AccessCodesUnmanagedUpdateBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/update',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type AccessCodesUnmanagedConvertToManagedBody =\n RouteRequestBody<'/access_codes/unmanaged/convert_to_managed'>\n\nexport type AccessCodesUnmanagedConvertToManagedResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/convert_to_managed'>>\n>\n\nexport type AccessCodesUnmanagedConvertToManagedOptions = never\n\nexport type AccessCodesUnmanagedDeleteParams =\n RouteRequestBody<'/access_codes/unmanaged/delete'>\n\nexport type AccessCodesUnmanagedDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/delete'>>\n>\n\nexport type AccessCodesUnmanagedDeleteOptions = never\n\nexport type AccessCodesUnmanagedGetParams =\n RouteRequestBody<'/access_codes/unmanaged/get'>\n\nexport type AccessCodesUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/get'>>\n>\n\nexport type AccessCodesUnmanagedGetOptions = never\n\nexport type AccessCodesUnmanagedListParams =\n RouteRequestBody<'/access_codes/unmanaged/list'>\n\nexport type AccessCodesUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/list'>>\n>\n\nexport type AccessCodesUnmanagedListOptions = never\n\nexport type AccessCodesUnmanagedUpdateBody =\n RouteRequestBody<'/access_codes/unmanaged/update'>\n\nexport type AccessCodesUnmanagedUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/update'>>\n>\n\nexport type AccessCodesUnmanagedUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAccessCodesSimulate } from './simulate/index.js'\nimport { SeamHttpAccessCodesUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpAccessCodes {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessCodes> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessCodes.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessCodes.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpAccessCodesSimulate {\n return SeamHttpAccessCodesSimulate.fromClient(this.client, this.defaults)\n }\n\n get unmanaged(): SeamHttpAccessCodesUnmanaged {\n return SeamHttpAccessCodesUnmanaged.fromClient(this.client, this.defaults)\n }\n\n create(\n body?: AccessCodesCreateBody,\n ): SeamHttpRequest<AccessCodesCreateResponse, 'access_code'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/create',\n method: 'POST',\n body,\n responseKey: 'access_code',\n })\n }\n\n createMultiple(\n body?: AccessCodesCreateMultipleBody,\n ): SeamHttpRequest<AccessCodesCreateMultipleResponse, 'access_codes'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/create_multiple',\n method: 'PUT',\n body,\n responseKey: 'access_codes',\n })\n }\n\n delete(params?: AccessCodesDeleteParams): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n generateCode(\n params?: AccessCodesGenerateCodeParams,\n ): SeamHttpRequest<AccessCodesGenerateCodeResponse, 'generated_code'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/generate_code',\n method: 'POST',\n body: params,\n responseKey: 'generated_code',\n })\n }\n\n get(\n params?: AccessCodesGetParams,\n ): SeamHttpRequest<AccessCodesGetResponse, 'access_code'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/get',\n method: 'POST',\n body: params,\n responseKey: 'access_code',\n })\n }\n\n list(\n params?: AccessCodesListParams,\n ): SeamHttpRequest<AccessCodesListResponse, 'access_codes'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/list',\n method: 'POST',\n body: params,\n responseKey: 'access_codes',\n })\n }\n\n pullBackupAccessCode(\n body?: AccessCodesPullBackupAccessCodeBody,\n ): SeamHttpRequest<AccessCodesPullBackupAccessCodeResponse, 'access_code'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/pull_backup_access_code',\n method: 'POST',\n body,\n responseKey: 'access_code',\n })\n }\n\n reportDeviceConstraints(\n body?: AccessCodesReportDeviceConstraintsBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/report_device_constraints',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n update(body?: AccessCodesUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/update',\n method: 'PUT',\n body,\n responseKey: undefined,\n })\n }\n\n updateMultiple(\n body?: AccessCodesUpdateMultipleBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/update_multiple',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type AccessCodesCreateBody = RouteRequestBody<'/access_codes/create'>\n\nexport type AccessCodesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/create'>>\n>\n\nexport type AccessCodesCreateOptions = never\n\nexport type AccessCodesCreateMultipleBody =\n RouteRequestBody<'/access_codes/create_multiple'>\n\nexport type AccessCodesCreateMultipleResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/create_multiple'>>\n>\n\nexport type AccessCodesCreateMultipleOptions = never\n\nexport type AccessCodesDeleteParams = RouteRequestBody<'/access_codes/delete'>\n\nexport type AccessCodesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/delete'>>\n>\n\nexport type AccessCodesDeleteOptions = never\n\nexport type AccessCodesGenerateCodeParams =\n RouteRequestBody<'/access_codes/generate_code'>\n\nexport type AccessCodesGenerateCodeResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/generate_code'>>\n>\n\nexport type AccessCodesGenerateCodeOptions = never\n\nexport type AccessCodesGetParams = RouteRequestBody<'/access_codes/get'>\n\nexport type AccessCodesGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/get'>>\n>\n\nexport type AccessCodesGetOptions = never\n\nexport type AccessCodesListParams = RouteRequestBody<'/access_codes/list'>\n\nexport type AccessCodesListResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/list'>>\n>\n\nexport type AccessCodesListOptions = never\n\nexport type AccessCodesPullBackupAccessCodeBody =\n RouteRequestBody<'/access_codes/pull_backup_access_code'>\n\nexport type AccessCodesPullBackupAccessCodeResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/pull_backup_access_code'>>\n>\n\nexport type AccessCodesPullBackupAccessCodeOptions = never\n\nexport type AccessCodesReportDeviceConstraintsBody =\n RouteRequestBody<'/access_codes/report_device_constraints'>\n\nexport type AccessCodesReportDeviceConstraintsResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/report_device_constraints'>>\n>\n\nexport type AccessCodesReportDeviceConstraintsOptions = never\n\nexport type AccessCodesUpdateBody = RouteRequestBody<'/access_codes/update'>\n\nexport type AccessCodesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/update'>>\n>\n\nexport type AccessCodesUpdateOptions = never\n\nexport type AccessCodesUpdateMultipleBody =\n RouteRequestBody<'/access_codes/update_multiple'>\n\nexport type AccessCodesUpdateMultipleResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/update_multiple'>>\n>\n\nexport type AccessCodesUpdateMultipleOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessGrants {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessGrants> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessGrants.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessGrants.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n body?: AccessGrantsCreateBody,\n ): SeamHttpRequest<AccessGrantsCreateResponse, 'access_grant'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/create',\n method: 'POST',\n body,\n responseKey: 'access_grant',\n })\n }\n\n delete(params?: AccessGrantsDeleteParams): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: AccessGrantsGetParams,\n ): SeamHttpRequest<AccessGrantsGetResponse, 'access_grant'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/get',\n method: 'POST',\n body: params,\n responseKey: 'access_grant',\n })\n }\n\n list(\n params?: AccessGrantsListParams,\n ): SeamHttpRequest<AccessGrantsListResponse, 'access_grants'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/list',\n method: 'POST',\n body: params,\n responseKey: 'access_grants',\n })\n }\n\n update(body?: AccessGrantsUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/update',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type AccessGrantsCreateBody = RouteRequestBody<'/access_grants/create'>\n\nexport type AccessGrantsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/create'>>\n>\n\nexport type AccessGrantsCreateOptions = never\n\nexport type AccessGrantsDeleteParams = RouteRequestBody<'/access_grants/delete'>\n\nexport type AccessGrantsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/delete'>>\n>\n\nexport type AccessGrantsDeleteOptions = never\n\nexport type AccessGrantsGetParams = RouteRequestBody<'/access_grants/get'>\n\nexport type AccessGrantsGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/get'>>\n>\n\nexport type AccessGrantsGetOptions = never\n\nexport type AccessGrantsListParams = RouteRequestBody<'/access_grants/list'>\n\nexport type AccessGrantsListResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/list'>>\n>\n\nexport type AccessGrantsListOptions = never\n\nexport type AccessGrantsUpdateBody = RouteRequestBody<'/access_grants/update'>\n\nexport type AccessGrantsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/update'>>\n>\n\nexport type AccessGrantsUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessMethods {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessMethods> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessMethods.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessMethods.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(params?: AccessMethodsDeleteParams): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: AccessMethodsGetParams,\n ): SeamHttpRequest<AccessMethodsGetResponse, 'access_method'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/get',\n method: 'POST',\n body: params,\n responseKey: 'access_method',\n })\n }\n\n list(\n params?: AccessMethodsListParams,\n ): SeamHttpRequest<AccessMethodsListResponse, 'access_methods'> {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/list',\n method: 'POST',\n body: params,\n responseKey: 'access_methods',\n })\n }\n}\n\nexport type AccessMethodsDeleteParams =\n RouteRequestBody<'/access_methods/delete'>\n\nexport type AccessMethodsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/delete'>>\n>\n\nexport type AccessMethodsDeleteOptions = never\n\nexport type AccessMethodsGetParams = RouteRequestBody<'/access_methods/get'>\n\nexport type AccessMethodsGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/get'>>\n>\n\nexport type AccessMethodsGetOptions = never\n\nexport type AccessMethodsListParams = RouteRequestBody<'/access_methods/list'>\n\nexport type AccessMethodsListResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/list'>>\n>\n\nexport type AccessMethodsListOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsAccessGroups {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsAccessGroups> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsAccessGroups.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsAccessGroups.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n addUser(body?: AcsAccessGroupsAddUserBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/add_user',\n method: 'PUT',\n body,\n responseKey: undefined,\n })\n }\n\n get(\n params?: AcsAccessGroupsGetParams,\n ): SeamHttpRequest<AcsAccessGroupsGetResponse, 'acs_access_group'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/get',\n method: 'POST',\n body: params,\n responseKey: 'acs_access_group',\n })\n }\n\n list(\n params?: AcsAccessGroupsListParams,\n ): SeamHttpRequest<AcsAccessGroupsListResponse, 'acs_access_groups'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/list',\n method: 'POST',\n body: params,\n responseKey: 'acs_access_groups',\n })\n }\n\n listAccessibleEntrances(\n params?: AcsAccessGroupsListAccessibleEntrancesParams,\n ): SeamHttpRequest<\n AcsAccessGroupsListAccessibleEntrancesResponse,\n 'acs_entrances'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/list_accessible_entrances',\n method: 'POST',\n body: params,\n responseKey: 'acs_entrances',\n })\n }\n\n listUsers(\n params?: AcsAccessGroupsListUsersParams,\n ): SeamHttpRequest<AcsAccessGroupsListUsersResponse, 'acs_users'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/list_users',\n method: 'POST',\n body: params,\n responseKey: 'acs_users',\n })\n }\n\n removeUser(\n params?: AcsAccessGroupsRemoveUserParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/remove_user',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n}\n\nexport type AcsAccessGroupsAddUserBody =\n RouteRequestBody<'/acs/access_groups/add_user'>\n\nexport type AcsAccessGroupsAddUserResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/add_user'>>\n>\n\nexport type AcsAccessGroupsAddUserOptions = never\n\nexport type AcsAccessGroupsGetParams =\n RouteRequestBody<'/acs/access_groups/get'>\n\nexport type AcsAccessGroupsGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/get'>>\n>\n\nexport type AcsAccessGroupsGetOptions = never\n\nexport type AcsAccessGroupsListParams =\n RouteRequestBody<'/acs/access_groups/list'>\n\nexport type AcsAccessGroupsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/list'>>\n>\n\nexport type AcsAccessGroupsListOptions = never\n\nexport type AcsAccessGroupsListAccessibleEntrancesParams =\n RouteRequestBody<'/acs/access_groups/list_accessible_entrances'>\n\nexport type AcsAccessGroupsListAccessibleEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/list_accessible_entrances'>>\n>\n\nexport type AcsAccessGroupsListAccessibleEntrancesOptions = never\n\nexport type AcsAccessGroupsListUsersParams =\n RouteRequestBody<'/acs/access_groups/list_users'>\n\nexport type AcsAccessGroupsListUsersResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/list_users'>>\n>\n\nexport type AcsAccessGroupsListUsersOptions = never\n\nexport type AcsAccessGroupsRemoveUserParams =\n RouteRequestBody<'/acs/access_groups/remove_user'>\n\nexport type AcsAccessGroupsRemoveUserResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/remove_user'>>\n>\n\nexport type AcsAccessGroupsRemoveUserOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsCredentials {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsCredentials> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsCredentials.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsCredentials.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n assign(body?: AcsCredentialsAssignBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/assign',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n\n create(\n body?: AcsCredentialsCreateBody,\n ): SeamHttpRequest<AcsCredentialsCreateResponse, 'acs_credential'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/create',\n method: 'POST',\n body,\n responseKey: 'acs_credential',\n })\n }\n\n delete(\n params?: AcsCredentialsDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: AcsCredentialsGetParams,\n ): SeamHttpRequest<AcsCredentialsGetResponse, 'acs_credential'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/get',\n method: 'POST',\n body: params,\n responseKey: 'acs_credential',\n })\n }\n\n list(\n params?: AcsCredentialsListParams,\n ): SeamHttpRequest<AcsCredentialsListResponse, 'acs_credentials'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/list',\n method: 'GET',\n params,\n responseKey: 'acs_credentials',\n })\n }\n\n listAccessibleEntrances(\n params?: AcsCredentialsListAccessibleEntrancesParams,\n ): SeamHttpRequest<\n AcsCredentialsListAccessibleEntrancesResponse,\n 'acs_entrances'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/list_accessible_entrances',\n method: 'POST',\n body: params,\n responseKey: 'acs_entrances',\n })\n }\n\n unassign(\n body?: AcsCredentialsUnassignBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/unassign',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n\n update(body?: AcsCredentialsUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/update',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type AcsCredentialsAssignBody =\n RouteRequestBody<'/acs/credentials/assign'>\n\nexport type AcsCredentialsAssignResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/assign'>>\n>\n\nexport type AcsCredentialsAssignOptions = never\n\nexport type AcsCredentialsCreateBody =\n RouteRequestBody<'/acs/credentials/create'>\n\nexport type AcsCredentialsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/create'>>\n>\n\nexport type AcsCredentialsCreateOptions = never\n\nexport type AcsCredentialsDeleteParams =\n RouteRequestBody<'/acs/credentials/delete'>\n\nexport type AcsCredentialsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/delete'>>\n>\n\nexport type AcsCredentialsDeleteOptions = never\n\nexport type AcsCredentialsGetParams = RouteRequestBody<'/acs/credentials/get'>\n\nexport type AcsCredentialsGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/get'>>\n>\n\nexport type AcsCredentialsGetOptions = never\n\nexport type AcsCredentialsListParams =\n RouteRequestParams<'/acs/credentials/list'>\n\nexport type AcsCredentialsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/list'>>\n>\n\nexport type AcsCredentialsListOptions = never\n\nexport type AcsCredentialsListAccessibleEntrancesParams =\n RouteRequestBody<'/acs/credentials/list_accessible_entrances'>\n\nexport type AcsCredentialsListAccessibleEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/list_accessible_entrances'>>\n>\n\nexport type AcsCredentialsListAccessibleEntrancesOptions = never\n\nexport type AcsCredentialsUnassignBody =\n RouteRequestBody<'/acs/credentials/unassign'>\n\nexport type AcsCredentialsUnassignResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/unassign'>>\n>\n\nexport type AcsCredentialsUnassignOptions = never\n\nexport type AcsCredentialsUpdateBody =\n RouteRequestBody<'/acs/credentials/update'>\n\nexport type AcsCredentialsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/update'>>\n>\n\nexport type AcsCredentialsUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsEncodersSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsEncodersSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsEncodersSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsEncodersSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n nextCredentialEncodeWillFail(\n body?: AcsEncodersSimulateNextCredentialEncodeWillFailBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_encode_will_fail',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n nextCredentialEncodeWillSucceed(\n body?: AcsEncodersSimulateNextCredentialEncodeWillSucceedBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_encode_will_succeed',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n nextCredentialScanWillFail(\n body?: AcsEncodersSimulateNextCredentialScanWillFailBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_scan_will_fail',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n nextCredentialScanWillSucceed(\n body?: AcsEncodersSimulateNextCredentialScanWillSucceedBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_scan_will_succeed',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailBody =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_encode_will_fail'>\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_encode_will_fail'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailOptions = never\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedBody =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_encode_will_succeed'>\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_encode_will_succeed'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions = never\n\nexport type AcsEncodersSimulateNextCredentialScanWillFailBody =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_scan_will_fail'>\n\nexport type AcsEncodersSimulateNextCredentialScanWillFailResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_scan_will_fail'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialScanWillFailOptions = never\n\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedBody =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_scan_will_succeed'>\n\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_scan_will_succeed'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAcsEncodersSimulate } from './simulate/index.js'\n\nexport class SeamHttpAcsEncoders {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsEncoders> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsEncoders.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsEncoders.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpAcsEncodersSimulate {\n return SeamHttpAcsEncodersSimulate.fromClient(this.client, this.defaults)\n }\n\n encodeAccessMethod(\n body?: AcsEncodersEncodeAccessMethodBody,\n options: AcsEncodersEncodeAccessMethodOptions = {},\n ): SeamHttpRequest<AcsEncodersEncodeAccessMethodResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/encode_access_method',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n encodeCredential(\n body?: AcsEncodersEncodeCredentialBody,\n options: AcsEncodersEncodeCredentialOptions = {},\n ): SeamHttpRequest<AcsEncodersEncodeCredentialResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/encode_credential',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n get(\n params?: AcsEncodersGetParams,\n ): SeamHttpRequest<AcsEncodersGetResponse, 'acs_encoder'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/get',\n method: 'POST',\n body: params,\n responseKey: 'acs_encoder',\n })\n }\n\n list(\n params?: AcsEncodersListParams,\n ): SeamHttpRequest<AcsEncodersListResponse, 'acs_encoders'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/list',\n method: 'GET',\n params,\n responseKey: 'acs_encoders',\n })\n }\n\n scanCredential(\n body?: AcsEncodersScanCredentialBody,\n options: AcsEncodersScanCredentialOptions = {},\n ): SeamHttpRequest<AcsEncodersScanCredentialResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/scan_credential',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type AcsEncodersEncodeAccessMethodBody =\n RouteRequestBody<'/acs/encoders/encode_access_method'>\n\nexport type AcsEncodersEncodeAccessMethodResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/encode_access_method'>>\n>\n\nexport type AcsEncodersEncodeAccessMethodOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type AcsEncodersEncodeCredentialBody =\n RouteRequestBody<'/acs/encoders/encode_credential'>\n\nexport type AcsEncodersEncodeCredentialResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/encode_credential'>>\n>\n\nexport type AcsEncodersEncodeCredentialOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type AcsEncodersGetParams = RouteRequestBody<'/acs/encoders/get'>\n\nexport type AcsEncodersGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/get'>>\n>\n\nexport type AcsEncodersGetOptions = never\n\nexport type AcsEncodersListParams = RouteRequestParams<'/acs/encoders/list'>\n\nexport type AcsEncodersListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/list'>>\n>\n\nexport type AcsEncodersListOptions = never\n\nexport type AcsEncodersScanCredentialBody =\n RouteRequestBody<'/acs/encoders/scan_credential'>\n\nexport type AcsEncodersScanCredentialResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/scan_credential'>>\n>\n\nexport type AcsEncodersScanCredentialOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsEntrances {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsEntrances> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsEntrances.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsEntrances.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n params?: AcsEntrancesGetParams,\n ): SeamHttpRequest<AcsEntrancesGetResponse, 'acs_entrance'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/get',\n method: 'POST',\n body: params,\n responseKey: 'acs_entrance',\n })\n }\n\n grantAccess(\n body?: AcsEntrancesGrantAccessBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/grant_access',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n list(\n params?: AcsEntrancesListParams,\n ): SeamHttpRequest<AcsEntrancesListResponse, 'acs_entrances'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/list',\n method: 'POST',\n body: params,\n responseKey: 'acs_entrances',\n })\n }\n\n listCredentialsWithAccess(\n params?: AcsEntrancesListCredentialsWithAccessParams,\n ): SeamHttpRequest<\n AcsEntrancesListCredentialsWithAccessResponse,\n 'acs_credentials'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/list_credentials_with_access',\n method: 'POST',\n body: params,\n responseKey: 'acs_credentials',\n })\n }\n}\n\nexport type AcsEntrancesGetParams = RouteRequestBody<'/acs/entrances/get'>\n\nexport type AcsEntrancesGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/get'>>\n>\n\nexport type AcsEntrancesGetOptions = never\n\nexport type AcsEntrancesGrantAccessBody =\n RouteRequestBody<'/acs/entrances/grant_access'>\n\nexport type AcsEntrancesGrantAccessResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/grant_access'>>\n>\n\nexport type AcsEntrancesGrantAccessOptions = never\n\nexport type AcsEntrancesListParams = RouteRequestBody<'/acs/entrances/list'>\n\nexport type AcsEntrancesListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/list'>>\n>\n\nexport type AcsEntrancesListOptions = never\n\nexport type AcsEntrancesListCredentialsWithAccessParams =\n RouteRequestBody<'/acs/entrances/list_credentials_with_access'>\n\nexport type AcsEntrancesListCredentialsWithAccessResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/list_credentials_with_access'>>\n>\n\nexport type AcsEntrancesListCredentialsWithAccessOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsSystems {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsSystems> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsSystems.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsSystems.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n params?: AcsSystemsGetParams,\n ): SeamHttpRequest<AcsSystemsGetResponse, 'acs_system'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/systems/get',\n method: 'POST',\n body: params,\n responseKey: 'acs_system',\n })\n }\n\n list(\n params?: AcsSystemsListParams,\n ): SeamHttpRequest<AcsSystemsListResponse, 'acs_systems'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/systems/list',\n method: 'POST',\n body: params,\n responseKey: 'acs_systems',\n })\n }\n\n listCompatibleCredentialManagerAcsSystems(\n params?: AcsSystemsListCompatibleCredentialManagerAcsSystemsParams,\n ): SeamHttpRequest<\n AcsSystemsListCompatibleCredentialManagerAcsSystemsResponse,\n 'acs_systems'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/acs/systems/list_compatible_credential_manager_acs_systems',\n method: 'POST',\n body: params,\n responseKey: 'acs_systems',\n })\n }\n}\n\nexport type AcsSystemsGetParams = RouteRequestBody<'/acs/systems/get'>\n\nexport type AcsSystemsGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/systems/get'>>\n>\n\nexport type AcsSystemsGetOptions = never\n\nexport type AcsSystemsListParams = RouteRequestBody<'/acs/systems/list'>\n\nexport type AcsSystemsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/systems/list'>>\n>\n\nexport type AcsSystemsListOptions = never\n\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsParams =\n RouteRequestBody<'/acs/systems/list_compatible_credential_manager_acs_systems'>\n\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/systems/list_compatible_credential_manager_acs_systems'>\n >\n >\n\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsUsers {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsUsers> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsUsers.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsUsers.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n addToAccessGroup(\n body?: AcsUsersAddToAccessGroupBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/add_to_access_group',\n method: 'PUT',\n body,\n responseKey: undefined,\n })\n }\n\n create(\n body?: AcsUsersCreateBody,\n ): SeamHttpRequest<AcsUsersCreateResponse, 'acs_user'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/create',\n method: 'POST',\n body,\n responseKey: 'acs_user',\n })\n }\n\n delete(params?: AcsUsersDeleteParams): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: AcsUsersGetParams,\n ): SeamHttpRequest<AcsUsersGetResponse, 'acs_user'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/get',\n method: 'POST',\n body: params,\n responseKey: 'acs_user',\n })\n }\n\n list(\n params?: AcsUsersListParams,\n ): SeamHttpRequest<AcsUsersListResponse, 'acs_users'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/list',\n method: 'POST',\n body: params,\n responseKey: 'acs_users',\n })\n }\n\n listAccessibleEntrances(\n params?: AcsUsersListAccessibleEntrancesParams,\n ): SeamHttpRequest<AcsUsersListAccessibleEntrancesResponse, 'acs_entrances'> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/list_accessible_entrances',\n method: 'POST',\n body: params,\n responseKey: 'acs_entrances',\n })\n }\n\n removeFromAccessGroup(\n params?: AcsUsersRemoveFromAccessGroupParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/remove_from_access_group',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n revokeAccessToAllEntrances(\n body?: AcsUsersRevokeAccessToAllEntrancesBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/revoke_access_to_all_entrances',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n suspend(body?: AcsUsersSuspendBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/suspend',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n unsuspend(body?: AcsUsersUnsuspendBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/unsuspend',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n update(body?: AcsUsersUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/update',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type AcsUsersAddToAccessGroupBody =\n RouteRequestBody<'/acs/users/add_to_access_group'>\n\nexport type AcsUsersAddToAccessGroupResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/add_to_access_group'>>\n>\n\nexport type AcsUsersAddToAccessGroupOptions = never\n\nexport type AcsUsersCreateBody = RouteRequestBody<'/acs/users/create'>\n\nexport type AcsUsersCreateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/create'>>\n>\n\nexport type AcsUsersCreateOptions = never\n\nexport type AcsUsersDeleteParams = RouteRequestBody<'/acs/users/delete'>\n\nexport type AcsUsersDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/delete'>>\n>\n\nexport type AcsUsersDeleteOptions = never\n\nexport type AcsUsersGetParams = RouteRequestBody<'/acs/users/get'>\n\nexport type AcsUsersGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/get'>>\n>\n\nexport type AcsUsersGetOptions = never\n\nexport type AcsUsersListParams = RouteRequestBody<'/acs/users/list'>\n\nexport type AcsUsersListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/list'>>\n>\n\nexport type AcsUsersListOptions = never\n\nexport type AcsUsersListAccessibleEntrancesParams =\n RouteRequestBody<'/acs/users/list_accessible_entrances'>\n\nexport type AcsUsersListAccessibleEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/list_accessible_entrances'>>\n>\n\nexport type AcsUsersListAccessibleEntrancesOptions = never\n\nexport type AcsUsersRemoveFromAccessGroupParams =\n RouteRequestBody<'/acs/users/remove_from_access_group'>\n\nexport type AcsUsersRemoveFromAccessGroupResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/remove_from_access_group'>>\n>\n\nexport type AcsUsersRemoveFromAccessGroupOptions = never\n\nexport type AcsUsersRevokeAccessToAllEntrancesBody =\n RouteRequestBody<'/acs/users/revoke_access_to_all_entrances'>\n\nexport type AcsUsersRevokeAccessToAllEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/revoke_access_to_all_entrances'>>\n>\n\nexport type AcsUsersRevokeAccessToAllEntrancesOptions = never\n\nexport type AcsUsersSuspendBody = RouteRequestBody<'/acs/users/suspend'>\n\nexport type AcsUsersSuspendResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/suspend'>>\n>\n\nexport type AcsUsersSuspendOptions = never\n\nexport type AcsUsersUnsuspendBody = RouteRequestBody<'/acs/users/unsuspend'>\n\nexport type AcsUsersUnsuspendResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/unsuspend'>>\n>\n\nexport type AcsUsersUnsuspendOptions = never\n\nexport type AcsUsersUpdateBody = RouteRequestBody<'/acs/users/update'>\n\nexport type AcsUsersUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/update'>>\n>\n\nexport type AcsUsersUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpAcsAccessGroups } from './access-groups/index.js'\nimport { SeamHttpAcsCredentials } from './credentials/index.js'\nimport { SeamHttpAcsEncoders } from './encoders/index.js'\nimport { SeamHttpAcsEntrances } from './entrances/index.js'\nimport { SeamHttpAcsSystems } from './systems/index.js'\nimport { SeamHttpAcsUsers } from './users/index.js'\n\nexport class SeamHttpAcs {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcs> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcs.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcs.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get accessGroups(): SeamHttpAcsAccessGroups {\n return SeamHttpAcsAccessGroups.fromClient(this.client, this.defaults)\n }\n\n get credentials(): SeamHttpAcsCredentials {\n return SeamHttpAcsCredentials.fromClient(this.client, this.defaults)\n }\n\n get encoders(): SeamHttpAcsEncoders {\n return SeamHttpAcsEncoders.fromClient(this.client, this.defaults)\n }\n\n get entrances(): SeamHttpAcsEntrances {\n return SeamHttpAcsEntrances.fromClient(this.client, this.defaults)\n }\n\n get systems(): SeamHttpAcsSystems {\n return SeamHttpAcsSystems.fromClient(this.client, this.defaults)\n }\n\n get users(): SeamHttpAcsUsers {\n return SeamHttpAcsUsers.fromClient(this.client, this.defaults)\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpActionAttempts {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpActionAttempts> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpActionAttempts.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpActionAttempts.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n params?: ActionAttemptsGetParams,\n options: ActionAttemptsGetOptions = {},\n ): SeamHttpRequest<ActionAttemptsGetResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/action_attempts/get',\n method: 'POST',\n body: params,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n list(\n params?: ActionAttemptsListParams,\n ): SeamHttpRequest<ActionAttemptsListResponse, 'action_attempts'> {\n return new SeamHttpRequest(this, {\n pathname: '/action_attempts/list',\n method: 'POST',\n body: params,\n responseKey: 'action_attempts',\n })\n }\n}\n\nexport type ActionAttemptsGetParams = RouteRequestBody<'/action_attempts/get'>\n\nexport type ActionAttemptsGetResponse = SetNonNullable<\n Required<RouteResponse<'/action_attempts/get'>>\n>\n\nexport type ActionAttemptsGetOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ActionAttemptsListParams = RouteRequestBody<'/action_attempts/list'>\n\nexport type ActionAttemptsListResponse = SetNonNullable<\n Required<RouteResponse<'/action_attempts/list'>>\n>\n\nexport type ActionAttemptsListOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpConnectWebviews {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpConnectWebviews> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpConnectWebviews.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpConnectWebviews.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n body?: ConnectWebviewsCreateBody,\n ): SeamHttpRequest<ConnectWebviewsCreateResponse, 'connect_webview'> {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/create',\n method: 'POST',\n body,\n responseKey: 'connect_webview',\n })\n }\n\n delete(\n params?: ConnectWebviewsDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: ConnectWebviewsGetParams,\n ): SeamHttpRequest<ConnectWebviewsGetResponse, 'connect_webview'> {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/get',\n method: 'POST',\n body: params,\n responseKey: 'connect_webview',\n })\n }\n\n list(\n params?: ConnectWebviewsListParams,\n ): SeamHttpRequest<ConnectWebviewsListResponse, 'connect_webviews'> {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/list',\n method: 'POST',\n body: params,\n responseKey: 'connect_webviews',\n })\n }\n}\n\nexport type ConnectWebviewsCreateBody =\n RouteRequestBody<'/connect_webviews/create'>\n\nexport type ConnectWebviewsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/create'>>\n>\n\nexport type ConnectWebviewsCreateOptions = never\n\nexport type ConnectWebviewsDeleteParams =\n RouteRequestBody<'/connect_webviews/delete'>\n\nexport type ConnectWebviewsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/delete'>>\n>\n\nexport type ConnectWebviewsDeleteOptions = never\n\nexport type ConnectWebviewsGetParams = RouteRequestBody<'/connect_webviews/get'>\n\nexport type ConnectWebviewsGetResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/get'>>\n>\n\nexport type ConnectWebviewsGetOptions = never\n\nexport type ConnectWebviewsListParams =\n RouteRequestBody<'/connect_webviews/list'>\n\nexport type ConnectWebviewsListResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/list'>>\n>\n\nexport type ConnectWebviewsListOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpConnectedAccounts {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpConnectedAccounts> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpConnectedAccounts.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpConnectedAccounts.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n params?: ConnectedAccountsDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: ConnectedAccountsGetParams,\n ): SeamHttpRequest<ConnectedAccountsGetResponse, 'connected_account'> {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/get',\n method: 'GET',\n params,\n responseKey: 'connected_account',\n })\n }\n\n list(\n params?: ConnectedAccountsListParams,\n ): SeamHttpRequest<ConnectedAccountsListResponse, 'connected_accounts'> {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/list',\n method: 'POST',\n body: params,\n responseKey: 'connected_accounts',\n })\n }\n\n sync(body?: ConnectedAccountsSyncBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/sync',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n update(body?: ConnectedAccountsUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/update',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type ConnectedAccountsDeleteParams =\n RouteRequestBody<'/connected_accounts/delete'>\n\nexport type ConnectedAccountsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/delete'>>\n>\n\nexport type ConnectedAccountsDeleteOptions = never\n\nexport type ConnectedAccountsGetParams =\n RouteRequestParams<'/connected_accounts/get'>\n\nexport type ConnectedAccountsGetResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/get'>>\n>\n\nexport type ConnectedAccountsGetOptions = never\n\nexport type ConnectedAccountsListParams =\n RouteRequestBody<'/connected_accounts/list'>\n\nexport type ConnectedAccountsListResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/list'>>\n>\n\nexport type ConnectedAccountsListOptions = never\n\nexport type ConnectedAccountsSyncBody =\n RouteRequestBody<'/connected_accounts/sync'>\n\nexport type ConnectedAccountsSyncResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/sync'>>\n>\n\nexport type ConnectedAccountsSyncOptions = never\n\nexport type ConnectedAccountsUpdateBody =\n RouteRequestBody<'/connected_accounts/update'>\n\nexport type ConnectedAccountsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/update'>>\n>\n\nexport type ConnectedAccountsUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpDevicesSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpDevicesSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpDevicesSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpDevicesSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n connect(body?: DevicesSimulateConnectBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/connect',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n disconnect(\n body?: DevicesSimulateDisconnectBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/disconnect',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n remove(\n params?: DevicesSimulateRemoveParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/remove',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n}\n\nexport type DevicesSimulateConnectBody =\n RouteRequestBody<'/devices/simulate/connect'>\n\nexport type DevicesSimulateConnectResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/connect'>>\n>\n\nexport type DevicesSimulateConnectOptions = never\n\nexport type DevicesSimulateDisconnectBody =\n RouteRequestBody<'/devices/simulate/disconnect'>\n\nexport type DevicesSimulateDisconnectResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/disconnect'>>\n>\n\nexport type DevicesSimulateDisconnectOptions = never\n\nexport type DevicesSimulateRemoveParams =\n RouteRequestBody<'/devices/simulate/remove'>\n\nexport type DevicesSimulateRemoveResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/remove'>>\n>\n\nexport type DevicesSimulateRemoveOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpDevicesUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpDevicesUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpDevicesUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpDevicesUnmanaged.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n params?: DevicesUnmanagedGetParams,\n ): SeamHttpRequest<DevicesUnmanagedGetResponse, 'device'> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/unmanaged/get',\n method: 'POST',\n body: params,\n responseKey: 'device',\n })\n }\n\n list(\n params?: DevicesUnmanagedListParams,\n ): SeamHttpRequest<DevicesUnmanagedListResponse, 'devices'> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/unmanaged/list',\n method: 'POST',\n body: params,\n responseKey: 'devices',\n })\n }\n\n update(body?: DevicesUnmanagedUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/unmanaged/update',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type DevicesUnmanagedGetParams =\n RouteRequestBody<'/devices/unmanaged/get'>\n\nexport type DevicesUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/devices/unmanaged/get'>>\n>\n\nexport type DevicesUnmanagedGetOptions = never\n\nexport type DevicesUnmanagedListParams =\n RouteRequestBody<'/devices/unmanaged/list'>\n\nexport type DevicesUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/devices/unmanaged/list'>>\n>\n\nexport type DevicesUnmanagedListOptions = never\n\nexport type DevicesUnmanagedUpdateBody =\n RouteRequestBody<'/devices/unmanaged/update'>\n\nexport type DevicesUnmanagedUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/devices/unmanaged/update'>>\n>\n\nexport type DevicesUnmanagedUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpDevicesSimulate } from './simulate/index.js'\nimport { SeamHttpDevicesUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpDevices {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpDevices> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpDevices.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpDevices.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpDevicesSimulate {\n return SeamHttpDevicesSimulate.fromClient(this.client, this.defaults)\n }\n\n get unmanaged(): SeamHttpDevicesUnmanaged {\n return SeamHttpDevicesUnmanaged.fromClient(this.client, this.defaults)\n }\n\n get(\n params?: DevicesGetParams,\n ): SeamHttpRequest<DevicesGetResponse, 'device'> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/get',\n method: 'POST',\n body: params,\n responseKey: 'device',\n })\n }\n\n list(\n params?: DevicesListParams,\n ): SeamHttpRequest<DevicesListResponse, 'devices'> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/list',\n method: 'POST',\n body: params,\n responseKey: 'devices',\n })\n }\n\n listDeviceProviders(\n params?: DevicesListDeviceProvidersParams,\n ): SeamHttpRequest<DevicesListDeviceProvidersResponse, 'device_providers'> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/list_device_providers',\n method: 'POST',\n body: params,\n responseKey: 'device_providers',\n })\n }\n\n update(body?: DevicesUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/devices/update',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type DevicesGetParams = RouteRequestBody<'/devices/get'>\n\nexport type DevicesGetResponse = SetNonNullable<\n Required<RouteResponse<'/devices/get'>>\n>\n\nexport type DevicesGetOptions = never\n\nexport type DevicesListParams = RouteRequestBody<'/devices/list'>\n\nexport type DevicesListResponse = SetNonNullable<\n Required<RouteResponse<'/devices/list'>>\n>\n\nexport type DevicesListOptions = never\n\nexport type DevicesListDeviceProvidersParams =\n RouteRequestBody<'/devices/list_device_providers'>\n\nexport type DevicesListDeviceProvidersResponse = SetNonNullable<\n Required<RouteResponse<'/devices/list_device_providers'>>\n>\n\nexport type DevicesListDeviceProvidersOptions = never\n\nexport type DevicesUpdateBody = RouteRequestBody<'/devices/update'>\n\nexport type DevicesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/devices/update'>>\n>\n\nexport type DevicesUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpEvents {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpEvents> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpEvents.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpEvents.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(params?: EventsGetParams): SeamHttpRequest<EventsGetResponse, 'event'> {\n return new SeamHttpRequest(this, {\n pathname: '/events/get',\n method: 'POST',\n body: params,\n responseKey: 'event',\n })\n }\n\n list(\n params?: EventsListParams,\n ): SeamHttpRequest<EventsListResponse, 'events'> {\n return new SeamHttpRequest(this, {\n pathname: '/events/list',\n method: 'POST',\n body: params,\n responseKey: 'events',\n })\n }\n}\n\nexport type EventsGetParams = RouteRequestBody<'/events/get'>\n\nexport type EventsGetResponse = SetNonNullable<\n Required<RouteResponse<'/events/get'>>\n>\n\nexport type EventsGetOptions = never\n\nexport type EventsListParams = RouteRequestBody<'/events/list'>\n\nexport type EventsListResponse = SetNonNullable<\n Required<RouteResponse<'/events/list'>>\n>\n\nexport type EventsListOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpLocks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpLocks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpLocks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpLocks.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(params?: LocksGetParams): SeamHttpRequest<LocksGetResponse, 'device'> {\n return new SeamHttpRequest(this, {\n pathname: '/locks/get',\n method: 'POST',\n body: params,\n responseKey: 'device',\n })\n }\n\n list(\n params?: LocksListParams,\n ): SeamHttpRequest<LocksListResponse, 'devices'> {\n return new SeamHttpRequest(this, {\n pathname: '/locks/list',\n method: 'POST',\n body: params,\n responseKey: 'devices',\n })\n }\n\n lockDoor(\n body?: LocksLockDoorBody,\n options: LocksLockDoorOptions = {},\n ): SeamHttpRequest<LocksLockDoorResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/locks/lock_door',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n unlockDoor(\n body?: LocksUnlockDoorBody,\n options: LocksUnlockDoorOptions = {},\n ): SeamHttpRequest<LocksUnlockDoorResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/locks/unlock_door',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type LocksGetParams = RouteRequestBody<'/locks/get'>\n\nexport type LocksGetResponse = SetNonNullable<\n Required<RouteResponse<'/locks/get'>>\n>\n\nexport type LocksGetOptions = never\n\nexport type LocksListParams = RouteRequestBody<'/locks/list'>\n\nexport type LocksListResponse = SetNonNullable<\n Required<RouteResponse<'/locks/list'>>\n>\n\nexport type LocksListOptions = never\n\nexport type LocksLockDoorBody = RouteRequestBody<'/locks/lock_door'>\n\nexport type LocksLockDoorResponse = SetNonNullable<\n Required<RouteResponse<'/locks/lock_door'>>\n>\n\nexport type LocksLockDoorOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type LocksUnlockDoorBody = RouteRequestBody<'/locks/unlock_door'>\n\nexport type LocksUnlockDoorResponse = SetNonNullable<\n Required<RouteResponse<'/locks/unlock_door'>>\n>\n\nexport type LocksUnlockDoorOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpNoiseSensorsNoiseThresholds {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNoiseSensorsNoiseThresholds> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNoiseSensorsNoiseThresholds.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNoiseSensorsNoiseThresholds.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n body?: NoiseSensorsNoiseThresholdsCreateBody,\n ): SeamHttpRequest<\n NoiseSensorsNoiseThresholdsCreateResponse,\n 'noise_threshold'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/create',\n method: 'POST',\n body,\n responseKey: 'noise_threshold',\n })\n }\n\n delete(\n params?: NoiseSensorsNoiseThresholdsDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: NoiseSensorsNoiseThresholdsGetParams,\n ): SeamHttpRequest<\n NoiseSensorsNoiseThresholdsGetResponse,\n 'noise_threshold'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/get',\n method: 'POST',\n body: params,\n responseKey: 'noise_threshold',\n })\n }\n\n list(\n params?: NoiseSensorsNoiseThresholdsListParams,\n ): SeamHttpRequest<\n NoiseSensorsNoiseThresholdsListResponse,\n 'noise_thresholds'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/list',\n method: 'POST',\n body: params,\n responseKey: 'noise_thresholds',\n })\n }\n\n update(\n body?: NoiseSensorsNoiseThresholdsUpdateBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/update',\n method: 'PUT',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type NoiseSensorsNoiseThresholdsCreateBody =\n RouteRequestBody<'/noise_sensors/noise_thresholds/create'>\n\nexport type NoiseSensorsNoiseThresholdsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/create'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsCreateOptions = never\n\nexport type NoiseSensorsNoiseThresholdsDeleteParams =\n RouteRequestBody<'/noise_sensors/noise_thresholds/delete'>\n\nexport type NoiseSensorsNoiseThresholdsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/delete'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsDeleteOptions = never\n\nexport type NoiseSensorsNoiseThresholdsGetParams =\n RouteRequestBody<'/noise_sensors/noise_thresholds/get'>\n\nexport type NoiseSensorsNoiseThresholdsGetResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/get'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsGetOptions = never\n\nexport type NoiseSensorsNoiseThresholdsListParams =\n RouteRequestBody<'/noise_sensors/noise_thresholds/list'>\n\nexport type NoiseSensorsNoiseThresholdsListResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/list'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsListOptions = never\n\nexport type NoiseSensorsNoiseThresholdsUpdateBody =\n RouteRequestBody<'/noise_sensors/noise_thresholds/update'>\n\nexport type NoiseSensorsNoiseThresholdsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/update'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpNoiseSensorsSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNoiseSensorsSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNoiseSensorsSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNoiseSensorsSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n triggerNoiseThreshold(\n body?: NoiseSensorsSimulateTriggerNoiseThresholdBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/simulate/trigger_noise_threshold',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type NoiseSensorsSimulateTriggerNoiseThresholdBody =\n RouteRequestBody<'/noise_sensors/simulate/trigger_noise_threshold'>\n\nexport type NoiseSensorsSimulateTriggerNoiseThresholdResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/simulate/trigger_noise_threshold'>>\n>\n\nexport type NoiseSensorsSimulateTriggerNoiseThresholdOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpNoiseSensorsNoiseThresholds } from './noise-thresholds/index.js'\nimport { SeamHttpNoiseSensorsSimulate } from './simulate/index.js'\n\nexport class SeamHttpNoiseSensors {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNoiseSensors> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNoiseSensors.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNoiseSensors.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get noiseThresholds(): SeamHttpNoiseSensorsNoiseThresholds {\n return SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get simulate(): SeamHttpNoiseSensorsSimulate {\n return SeamHttpNoiseSensorsSimulate.fromClient(this.client, this.defaults)\n }\n\n list(\n params?: NoiseSensorsListParams,\n ): SeamHttpRequest<NoiseSensorsListResponse, 'devices'> {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/list',\n method: 'POST',\n body: params,\n responseKey: 'devices',\n })\n }\n}\n\nexport type NoiseSensorsListParams = RouteRequestBody<'/noise_sensors/list'>\n\nexport type NoiseSensorsListResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/list'>>\n>\n\nexport type NoiseSensorsListOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpPhonesSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpPhonesSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpPhonesSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpPhonesSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n createSandboxPhone(\n params?: PhonesSimulateCreateSandboxPhoneParams,\n ): SeamHttpRequest<PhonesSimulateCreateSandboxPhoneResponse, 'phone'> {\n return new SeamHttpRequest(this, {\n pathname: '/phones/simulate/create_sandbox_phone',\n method: 'POST',\n body: params,\n responseKey: 'phone',\n })\n }\n}\n\nexport type PhonesSimulateCreateSandboxPhoneParams =\n RouteRequestBody<'/phones/simulate/create_sandbox_phone'>\n\nexport type PhonesSimulateCreateSandboxPhoneResponse = SetNonNullable<\n Required<RouteResponse<'/phones/simulate/create_sandbox_phone'>>\n>\n\nexport type PhonesSimulateCreateSandboxPhoneOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpPhonesSimulate } from './simulate/index.js'\n\nexport class SeamHttpPhones {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpPhones> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpPhones.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpPhones.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpPhonesSimulate {\n return SeamHttpPhonesSimulate.fromClient(this.client, this.defaults)\n }\n\n deactivate(\n params?: PhonesDeactivateParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/phones/deactivate',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(params?: PhonesGetParams): SeamHttpRequest<PhonesGetResponse, 'phone'> {\n return new SeamHttpRequest(this, {\n pathname: '/phones/get',\n method: 'POST',\n body: params,\n responseKey: 'phone',\n })\n }\n\n list(\n params?: PhonesListParams,\n ): SeamHttpRequest<PhonesListResponse, 'phones'> {\n return new SeamHttpRequest(this, {\n pathname: '/phones/list',\n method: 'POST',\n body: params,\n responseKey: 'phones',\n })\n }\n}\n\nexport type PhonesDeactivateParams = RouteRequestBody<'/phones/deactivate'>\n\nexport type PhonesDeactivateResponse = SetNonNullable<\n Required<RouteResponse<'/phones/deactivate'>>\n>\n\nexport type PhonesDeactivateOptions = never\n\nexport type PhonesGetParams = RouteRequestBody<'/phones/get'>\n\nexport type PhonesGetResponse = SetNonNullable<\n Required<RouteResponse<'/phones/get'>>\n>\n\nexport type PhonesGetOptions = never\n\nexport type PhonesListParams = RouteRequestBody<'/phones/list'>\n\nexport type PhonesListResponse = SetNonNullable<\n Required<RouteResponse<'/phones/list'>>\n>\n\nexport type PhonesListOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSpaces {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSpaces> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSpaces.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSpaces.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n addAcsEntrances(\n body?: SpacesAddAcsEntrancesBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/add_acs_entrances',\n method: 'PUT',\n body,\n responseKey: undefined,\n })\n }\n\n addDevices(body?: SpacesAddDevicesBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/add_devices',\n method: 'PUT',\n body,\n responseKey: undefined,\n })\n }\n\n create(\n body?: SpacesCreateBody,\n ): SeamHttpRequest<SpacesCreateResponse, 'space'> {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/create',\n method: 'POST',\n body,\n responseKey: 'space',\n })\n }\n\n delete(params?: SpacesDeleteParams): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(params?: SpacesGetParams): SeamHttpRequest<SpacesGetResponse, 'space'> {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/get',\n method: 'POST',\n body: params,\n responseKey: 'space',\n })\n }\n\n list(\n params?: SpacesListParams,\n ): SeamHttpRequest<SpacesListResponse, 'spaces'> {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/list',\n method: 'GET',\n params,\n responseKey: 'spaces',\n })\n }\n\n removeAcsEntrances(\n params?: SpacesRemoveAcsEntrancesParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/remove_acs_entrances',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n removeDevices(\n params?: SpacesRemoveDevicesParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/remove_devices',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n update(\n body?: SpacesUpdateBody,\n ): SeamHttpRequest<SpacesUpdateResponse, 'space'> {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/update',\n method: 'PATCH',\n body,\n responseKey: 'space',\n })\n }\n}\n\nexport type SpacesAddAcsEntrancesBody =\n RouteRequestBody<'/spaces/add_acs_entrances'>\n\nexport type SpacesAddAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/add_acs_entrances'>>\n>\n\nexport type SpacesAddAcsEntrancesOptions = never\n\nexport type SpacesAddDevicesBody = RouteRequestBody<'/spaces/add_devices'>\n\nexport type SpacesAddDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/add_devices'>>\n>\n\nexport type SpacesAddDevicesOptions = never\n\nexport type SpacesCreateBody = RouteRequestBody<'/spaces/create'>\n\nexport type SpacesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/create'>>\n>\n\nexport type SpacesCreateOptions = never\n\nexport type SpacesDeleteParams = RouteRequestBody<'/spaces/delete'>\n\nexport type SpacesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/delete'>>\n>\n\nexport type SpacesDeleteOptions = never\n\nexport type SpacesGetParams = RouteRequestBody<'/spaces/get'>\n\nexport type SpacesGetResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/get'>>\n>\n\nexport type SpacesGetOptions = never\n\nexport type SpacesListParams = RouteRequestParams<'/spaces/list'>\n\nexport type SpacesListResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/list'>>\n>\n\nexport type SpacesListOptions = never\n\nexport type SpacesRemoveAcsEntrancesParams =\n RouteRequestBody<'/spaces/remove_acs_entrances'>\n\nexport type SpacesRemoveAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/remove_acs_entrances'>>\n>\n\nexport type SpacesRemoveAcsEntrancesOptions = never\n\nexport type SpacesRemoveDevicesParams =\n RouteRequestBody<'/spaces/remove_devices'>\n\nexport type SpacesRemoveDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/remove_devices'>>\n>\n\nexport type SpacesRemoveDevicesOptions = never\n\nexport type SpacesUpdateBody = RouteRequestBody<'/spaces/update'>\n\nexport type SpacesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/update'>>\n>\n\nexport type SpacesUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpThermostatsDailyPrograms {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostatsDailyPrograms> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostatsDailyPrograms.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostatsDailyPrograms.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n body?: ThermostatsDailyProgramsCreateBody,\n ): SeamHttpRequest<\n ThermostatsDailyProgramsCreateResponse,\n 'thermostat_daily_program'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/daily_programs/create',\n method: 'POST',\n body,\n responseKey: 'thermostat_daily_program',\n })\n }\n\n delete(\n params?: ThermostatsDailyProgramsDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/daily_programs/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n update(\n body?: ThermostatsDailyProgramsUpdateBody,\n options: ThermostatsDailyProgramsUpdateOptions = {},\n ): SeamHttpRequest<ThermostatsDailyProgramsUpdateResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/daily_programs/update',\n method: 'PATCH',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type ThermostatsDailyProgramsCreateBody =\n RouteRequestBody<'/thermostats/daily_programs/create'>\n\nexport type ThermostatsDailyProgramsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/daily_programs/create'>>\n>\n\nexport type ThermostatsDailyProgramsCreateOptions = never\n\nexport type ThermostatsDailyProgramsDeleteParams =\n RouteRequestBody<'/thermostats/daily_programs/delete'>\n\nexport type ThermostatsDailyProgramsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/daily_programs/delete'>>\n>\n\nexport type ThermostatsDailyProgramsDeleteOptions = never\n\nexport type ThermostatsDailyProgramsUpdateBody =\n RouteRequestBody<'/thermostats/daily_programs/update'>\n\nexport type ThermostatsDailyProgramsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/daily_programs/update'>>\n>\n\nexport type ThermostatsDailyProgramsUpdateOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpThermostatsSchedules {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostatsSchedules> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostatsSchedules.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostatsSchedules.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n body?: ThermostatsSchedulesCreateBody,\n ): SeamHttpRequest<\n ThermostatsSchedulesCreateResponse,\n 'thermostat_schedule'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/create',\n method: 'POST',\n body,\n responseKey: 'thermostat_schedule',\n })\n }\n\n delete(\n params?: ThermostatsSchedulesDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: ThermostatsSchedulesGetParams,\n ): SeamHttpRequest<ThermostatsSchedulesGetResponse, 'thermostat_schedule'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/get',\n method: 'POST',\n body: params,\n responseKey: 'thermostat_schedule',\n })\n }\n\n list(\n params?: ThermostatsSchedulesListParams,\n ): SeamHttpRequest<ThermostatsSchedulesListResponse, 'thermostat_schedules'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/list',\n method: 'POST',\n body: params,\n responseKey: 'thermostat_schedules',\n })\n }\n\n update(\n body?: ThermostatsSchedulesUpdateBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/update',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type ThermostatsSchedulesCreateBody =\n RouteRequestBody<'/thermostats/schedules/create'>\n\nexport type ThermostatsSchedulesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/create'>>\n>\n\nexport type ThermostatsSchedulesCreateOptions = never\n\nexport type ThermostatsSchedulesDeleteParams =\n RouteRequestBody<'/thermostats/schedules/delete'>\n\nexport type ThermostatsSchedulesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/delete'>>\n>\n\nexport type ThermostatsSchedulesDeleteOptions = never\n\nexport type ThermostatsSchedulesGetParams =\n RouteRequestBody<'/thermostats/schedules/get'>\n\nexport type ThermostatsSchedulesGetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/get'>>\n>\n\nexport type ThermostatsSchedulesGetOptions = never\n\nexport type ThermostatsSchedulesListParams =\n RouteRequestBody<'/thermostats/schedules/list'>\n\nexport type ThermostatsSchedulesListResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/list'>>\n>\n\nexport type ThermostatsSchedulesListOptions = never\n\nexport type ThermostatsSchedulesUpdateBody =\n RouteRequestBody<'/thermostats/schedules/update'>\n\nexport type ThermostatsSchedulesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/update'>>\n>\n\nexport type ThermostatsSchedulesUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpThermostatsSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostatsSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostatsSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostatsSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n hvacModeAdjusted(\n body?: ThermostatsSimulateHvacModeAdjustedBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/simulate/hvac_mode_adjusted',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n temperatureReached(\n body?: ThermostatsSimulateTemperatureReachedBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/simulate/temperature_reached',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type ThermostatsSimulateHvacModeAdjustedBody =\n RouteRequestBody<'/thermostats/simulate/hvac_mode_adjusted'>\n\nexport type ThermostatsSimulateHvacModeAdjustedResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/simulate/hvac_mode_adjusted'>>\n>\n\nexport type ThermostatsSimulateHvacModeAdjustedOptions = never\n\nexport type ThermostatsSimulateTemperatureReachedBody =\n RouteRequestBody<'/thermostats/simulate/temperature_reached'>\n\nexport type ThermostatsSimulateTemperatureReachedResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/simulate/temperature_reached'>>\n>\n\nexport type ThermostatsSimulateTemperatureReachedOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpThermostatsDailyPrograms } from './daily-programs/index.js'\nimport { SeamHttpThermostatsSchedules } from './schedules/index.js'\nimport { SeamHttpThermostatsSimulate } from './simulate/index.js'\n\nexport class SeamHttpThermostats {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostats> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostats.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostats.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get dailyPrograms(): SeamHttpThermostatsDailyPrograms {\n return SeamHttpThermostatsDailyPrograms.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get schedules(): SeamHttpThermostatsSchedules {\n return SeamHttpThermostatsSchedules.fromClient(this.client, this.defaults)\n }\n\n get simulate(): SeamHttpThermostatsSimulate {\n return SeamHttpThermostatsSimulate.fromClient(this.client, this.defaults)\n }\n\n activateClimatePreset(\n body?: ThermostatsActivateClimatePresetBody,\n options: ThermostatsActivateClimatePresetOptions = {},\n ): SeamHttpRequest<\n ThermostatsActivateClimatePresetResponse,\n 'action_attempt'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/activate_climate_preset',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n cool(\n body?: ThermostatsCoolBody,\n options: ThermostatsCoolOptions = {},\n ): SeamHttpRequest<ThermostatsCoolResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/cool',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n createClimatePreset(\n body?: ThermostatsCreateClimatePresetBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/create_climate_preset',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n deleteClimatePreset(\n params?: ThermostatsDeleteClimatePresetParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/delete_climate_preset',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n heat(\n body?: ThermostatsHeatBody,\n options: ThermostatsHeatOptions = {},\n ): SeamHttpRequest<ThermostatsHeatResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/heat',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n heatCool(\n body?: ThermostatsHeatCoolBody,\n options: ThermostatsHeatCoolOptions = {},\n ): SeamHttpRequest<ThermostatsHeatCoolResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/heat_cool',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n list(\n params?: ThermostatsListParams,\n ): SeamHttpRequest<ThermostatsListResponse, 'devices'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/list',\n method: 'POST',\n body: params,\n responseKey: 'devices',\n })\n }\n\n off(\n body?: ThermostatsOffBody,\n options: ThermostatsOffOptions = {},\n ): SeamHttpRequest<ThermostatsOffResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/off',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n setFallbackClimatePreset(\n body?: ThermostatsSetFallbackClimatePresetBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_fallback_climate_preset',\n method: 'POST',\n body,\n responseKey: undefined,\n })\n }\n\n setFanMode(\n body?: ThermostatsSetFanModeBody,\n options: ThermostatsSetFanModeOptions = {},\n ): SeamHttpRequest<ThermostatsSetFanModeResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_fan_mode',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n setHvacMode(\n body?: ThermostatsSetHvacModeBody,\n options: ThermostatsSetHvacModeOptions = {},\n ): SeamHttpRequest<ThermostatsSetHvacModeResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_hvac_mode',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n setTemperatureThreshold(\n body?: ThermostatsSetTemperatureThresholdBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_temperature_threshold',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n\n updateClimatePreset(\n body?: ThermostatsUpdateClimatePresetBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/update_climate_preset',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n\n updateWeeklyProgram(\n body?: ThermostatsUpdateWeeklyProgramBody,\n options: ThermostatsUpdateWeeklyProgramOptions = {},\n ): SeamHttpRequest<ThermostatsUpdateWeeklyProgramResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/update_weekly_program',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type ThermostatsActivateClimatePresetBody =\n RouteRequestBody<'/thermostats/activate_climate_preset'>\n\nexport type ThermostatsActivateClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/activate_climate_preset'>>\n>\n\nexport type ThermostatsActivateClimatePresetOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsCoolBody = RouteRequestBody<'/thermostats/cool'>\n\nexport type ThermostatsCoolResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/cool'>>\n>\n\nexport type ThermostatsCoolOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsCreateClimatePresetBody =\n RouteRequestBody<'/thermostats/create_climate_preset'>\n\nexport type ThermostatsCreateClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/create_climate_preset'>>\n>\n\nexport type ThermostatsCreateClimatePresetOptions = never\n\nexport type ThermostatsDeleteClimatePresetParams =\n RouteRequestBody<'/thermostats/delete_climate_preset'>\n\nexport type ThermostatsDeleteClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/delete_climate_preset'>>\n>\n\nexport type ThermostatsDeleteClimatePresetOptions = never\n\nexport type ThermostatsHeatBody = RouteRequestBody<'/thermostats/heat'>\n\nexport type ThermostatsHeatResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/heat'>>\n>\n\nexport type ThermostatsHeatOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsHeatCoolBody = RouteRequestBody<'/thermostats/heat_cool'>\n\nexport type ThermostatsHeatCoolResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/heat_cool'>>\n>\n\nexport type ThermostatsHeatCoolOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsListParams = RouteRequestBody<'/thermostats/list'>\n\nexport type ThermostatsListResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/list'>>\n>\n\nexport type ThermostatsListOptions = never\n\nexport type ThermostatsOffBody = RouteRequestBody<'/thermostats/off'>\n\nexport type ThermostatsOffResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/off'>>\n>\n\nexport type ThermostatsOffOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsSetFallbackClimatePresetBody =\n RouteRequestBody<'/thermostats/set_fallback_climate_preset'>\n\nexport type ThermostatsSetFallbackClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_fallback_climate_preset'>>\n>\n\nexport type ThermostatsSetFallbackClimatePresetOptions = never\n\nexport type ThermostatsSetFanModeBody =\n RouteRequestBody<'/thermostats/set_fan_mode'>\n\nexport type ThermostatsSetFanModeResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_fan_mode'>>\n>\n\nexport type ThermostatsSetFanModeOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsSetHvacModeBody =\n RouteRequestBody<'/thermostats/set_hvac_mode'>\n\nexport type ThermostatsSetHvacModeResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_hvac_mode'>>\n>\n\nexport type ThermostatsSetHvacModeOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsSetTemperatureThresholdBody =\n RouteRequestBody<'/thermostats/set_temperature_threshold'>\n\nexport type ThermostatsSetTemperatureThresholdResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_temperature_threshold'>>\n>\n\nexport type ThermostatsSetTemperatureThresholdOptions = never\n\nexport type ThermostatsUpdateClimatePresetBody =\n RouteRequestBody<'/thermostats/update_climate_preset'>\n\nexport type ThermostatsUpdateClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/update_climate_preset'>>\n>\n\nexport type ThermostatsUpdateClimatePresetOptions = never\n\nexport type ThermostatsUpdateWeeklyProgramBody =\n RouteRequestBody<'/thermostats/update_weekly_program'>\n\nexport type ThermostatsUpdateWeeklyProgramResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/update_weekly_program'>>\n>\n\nexport type ThermostatsUpdateWeeklyProgramOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUserIdentitiesEnrollmentAutomations {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUserIdentitiesEnrollmentAutomations> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUserIdentitiesEnrollmentAutomations.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUserIdentitiesEnrollmentAutomations.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n params?: UserIdentitiesEnrollmentAutomationsDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: UserIdentitiesEnrollmentAutomationsGetParams,\n ): SeamHttpRequest<\n UserIdentitiesEnrollmentAutomationsGetResponse,\n 'enrollment_automation'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/get',\n method: 'POST',\n body: params,\n responseKey: 'enrollment_automation',\n })\n }\n\n launch(\n body?: UserIdentitiesEnrollmentAutomationsLaunchBody,\n ): SeamHttpRequest<\n UserIdentitiesEnrollmentAutomationsLaunchResponse,\n 'enrollment_automation'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/launch',\n method: 'POST',\n body,\n responseKey: 'enrollment_automation',\n })\n }\n\n list(\n params?: UserIdentitiesEnrollmentAutomationsListParams,\n ): SeamHttpRequest<\n UserIdentitiesEnrollmentAutomationsListResponse,\n 'enrollment_automations'\n > {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/list',\n method: 'POST',\n body: params,\n responseKey: 'enrollment_automations',\n })\n }\n}\n\nexport type UserIdentitiesEnrollmentAutomationsDeleteParams =\n RouteRequestBody<'/user_identities/enrollment_automations/delete'>\n\nexport type UserIdentitiesEnrollmentAutomationsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/delete'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsDeleteOptions = never\n\nexport type UserIdentitiesEnrollmentAutomationsGetParams =\n RouteRequestBody<'/user_identities/enrollment_automations/get'>\n\nexport type UserIdentitiesEnrollmentAutomationsGetResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/get'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsGetOptions = never\n\nexport type UserIdentitiesEnrollmentAutomationsLaunchBody =\n RouteRequestBody<'/user_identities/enrollment_automations/launch'>\n\nexport type UserIdentitiesEnrollmentAutomationsLaunchResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/launch'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsLaunchOptions = never\n\nexport type UserIdentitiesEnrollmentAutomationsListParams =\n RouteRequestBody<'/user_identities/enrollment_automations/list'>\n\nexport type UserIdentitiesEnrollmentAutomationsListResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/list'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsListOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpUserIdentitiesEnrollmentAutomations } from './enrollment-automations/index.js'\n\nexport class SeamHttpUserIdentities {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUserIdentities> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUserIdentities.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUserIdentities.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get enrollmentAutomations(): SeamHttpUserIdentitiesEnrollmentAutomations {\n return SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n addAcsUser(\n body?: UserIdentitiesAddAcsUserBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/add_acs_user',\n method: 'PUT',\n body,\n responseKey: undefined,\n })\n }\n\n create(\n body?: UserIdentitiesCreateBody,\n ): SeamHttpRequest<UserIdentitiesCreateResponse, 'user_identity'> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/create',\n method: 'POST',\n body,\n responseKey: 'user_identity',\n })\n }\n\n delete(\n params?: UserIdentitiesDeleteParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n generateInstantKey(\n body?: UserIdentitiesGenerateInstantKeyBody,\n ): SeamHttpRequest<UserIdentitiesGenerateInstantKeyResponse, 'instant_key'> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/generate_instant_key',\n method: 'POST',\n body,\n responseKey: 'instant_key',\n })\n }\n\n get(\n params?: UserIdentitiesGetParams,\n ): SeamHttpRequest<UserIdentitiesGetResponse, 'user_identity'> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/get',\n method: 'GET',\n params,\n responseKey: 'user_identity',\n })\n }\n\n grantAccessToDevice(\n body?: UserIdentitiesGrantAccessToDeviceBody,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/grant_access_to_device',\n method: 'PUT',\n body,\n responseKey: undefined,\n })\n }\n\n list(\n params?: UserIdentitiesListParams,\n ): SeamHttpRequest<UserIdentitiesListResponse, 'user_identities'> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list',\n method: 'POST',\n body: params,\n responseKey: 'user_identities',\n })\n }\n\n listAccessibleDevices(\n params?: UserIdentitiesListAccessibleDevicesParams,\n ): SeamHttpRequest<UserIdentitiesListAccessibleDevicesResponse, 'devices'> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list_accessible_devices',\n method: 'POST',\n body: params,\n responseKey: 'devices',\n })\n }\n\n listAcsSystems(\n params?: UserIdentitiesListAcsSystemsParams,\n ): SeamHttpRequest<UserIdentitiesListAcsSystemsResponse, 'acs_systems'> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list_acs_systems',\n method: 'POST',\n body: params,\n responseKey: 'acs_systems',\n })\n }\n\n listAcsUsers(\n params?: UserIdentitiesListAcsUsersParams,\n ): SeamHttpRequest<UserIdentitiesListAcsUsersResponse, 'acs_users'> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list_acs_users',\n method: 'POST',\n body: params,\n responseKey: 'acs_users',\n })\n }\n\n removeAcsUser(\n params?: UserIdentitiesRemoveAcsUserParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/remove_acs_user',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n revokeAccessToDevice(\n params?: UserIdentitiesRevokeAccessToDeviceParams,\n ): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/revoke_access_to_device',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n update(body?: UserIdentitiesUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/update',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type UserIdentitiesAddAcsUserBody =\n RouteRequestBody<'/user_identities/add_acs_user'>\n\nexport type UserIdentitiesAddAcsUserResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/add_acs_user'>>\n>\n\nexport type UserIdentitiesAddAcsUserOptions = never\n\nexport type UserIdentitiesCreateBody =\n RouteRequestBody<'/user_identities/create'>\n\nexport type UserIdentitiesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/create'>>\n>\n\nexport type UserIdentitiesCreateOptions = never\n\nexport type UserIdentitiesDeleteParams =\n RouteRequestBody<'/user_identities/delete'>\n\nexport type UserIdentitiesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/delete'>>\n>\n\nexport type UserIdentitiesDeleteOptions = never\n\nexport type UserIdentitiesGenerateInstantKeyBody =\n RouteRequestBody<'/user_identities/generate_instant_key'>\n\nexport type UserIdentitiesGenerateInstantKeyResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/generate_instant_key'>>\n>\n\nexport type UserIdentitiesGenerateInstantKeyOptions = never\n\nexport type UserIdentitiesGetParams = RouteRequestParams<'/user_identities/get'>\n\nexport type UserIdentitiesGetResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/get'>>\n>\n\nexport type UserIdentitiesGetOptions = never\n\nexport type UserIdentitiesGrantAccessToDeviceBody =\n RouteRequestBody<'/user_identities/grant_access_to_device'>\n\nexport type UserIdentitiesGrantAccessToDeviceResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/grant_access_to_device'>>\n>\n\nexport type UserIdentitiesGrantAccessToDeviceOptions = never\n\nexport type UserIdentitiesListParams = RouteRequestBody<'/user_identities/list'>\n\nexport type UserIdentitiesListResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list'>>\n>\n\nexport type UserIdentitiesListOptions = never\n\nexport type UserIdentitiesListAccessibleDevicesParams =\n RouteRequestBody<'/user_identities/list_accessible_devices'>\n\nexport type UserIdentitiesListAccessibleDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list_accessible_devices'>>\n>\n\nexport type UserIdentitiesListAccessibleDevicesOptions = never\n\nexport type UserIdentitiesListAcsSystemsParams =\n RouteRequestBody<'/user_identities/list_acs_systems'>\n\nexport type UserIdentitiesListAcsSystemsResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list_acs_systems'>>\n>\n\nexport type UserIdentitiesListAcsSystemsOptions = never\n\nexport type UserIdentitiesListAcsUsersParams =\n RouteRequestBody<'/user_identities/list_acs_users'>\n\nexport type UserIdentitiesListAcsUsersResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list_acs_users'>>\n>\n\nexport type UserIdentitiesListAcsUsersOptions = never\n\nexport type UserIdentitiesRemoveAcsUserParams =\n RouteRequestBody<'/user_identities/remove_acs_user'>\n\nexport type UserIdentitiesRemoveAcsUserResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/remove_acs_user'>>\n>\n\nexport type UserIdentitiesRemoveAcsUserOptions = never\n\nexport type UserIdentitiesRevokeAccessToDeviceParams =\n RouteRequestBody<'/user_identities/revoke_access_to_device'>\n\nexport type UserIdentitiesRevokeAccessToDeviceResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/revoke_access_to_device'>>\n>\n\nexport type UserIdentitiesRevokeAccessToDeviceOptions = never\n\nexport type UserIdentitiesUpdateBody =\n RouteRequestBody<'/user_identities/update'>\n\nexport type UserIdentitiesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/update'>>\n>\n\nexport type UserIdentitiesUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpWebhooks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpWebhooks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpWebhooks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpWebhooks.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n body?: WebhooksCreateBody,\n ): SeamHttpRequest<WebhooksCreateResponse, 'webhook'> {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/create',\n method: 'POST',\n body,\n responseKey: 'webhook',\n })\n }\n\n delete(params?: WebhooksDeleteParams): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/delete',\n method: 'POST',\n body: params,\n responseKey: undefined,\n })\n }\n\n get(\n params?: WebhooksGetParams,\n ): SeamHttpRequest<WebhooksGetResponse, 'webhook'> {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/get',\n method: 'POST',\n body: params,\n responseKey: 'webhook',\n })\n }\n\n list(\n params?: WebhooksListParams,\n ): SeamHttpRequest<WebhooksListResponse, 'webhooks'> {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/list',\n method: 'GET',\n params,\n responseKey: 'webhooks',\n })\n }\n\n update(body?: WebhooksUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/update',\n method: 'PUT',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type WebhooksCreateBody = RouteRequestBody<'/webhooks/create'>\n\nexport type WebhooksCreateResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/create'>>\n>\n\nexport type WebhooksCreateOptions = never\n\nexport type WebhooksDeleteParams = RouteRequestBody<'/webhooks/delete'>\n\nexport type WebhooksDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/delete'>>\n>\n\nexport type WebhooksDeleteOptions = never\n\nexport type WebhooksGetParams = RouteRequestBody<'/webhooks/get'>\n\nexport type WebhooksGetResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/get'>>\n>\n\nexport type WebhooksGetOptions = never\n\nexport type WebhooksListParams = RouteRequestParams<'/webhooks/list'>\n\nexport type WebhooksListResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/list'>>\n>\n\nexport type WebhooksListOptions = never\n\nexport type WebhooksUpdateBody = RouteRequestBody<'/webhooks/update'>\n\nexport type WebhooksUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/update'>>\n>\n\nexport type WebhooksUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpWorkspaces {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpWorkspaces> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpWorkspaces.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpWorkspaces.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n body?: WorkspacesCreateBody,\n ): SeamHttpRequest<WorkspacesCreateResponse, 'workspace'> {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/create',\n method: 'POST',\n body,\n responseKey: 'workspace',\n })\n }\n\n get(\n params?: WorkspacesGetParams,\n ): SeamHttpRequest<WorkspacesGetResponse, 'workspace'> {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/get',\n method: 'GET',\n params,\n responseKey: 'workspace',\n })\n }\n\n list(\n params?: WorkspacesListParams,\n ): SeamHttpRequest<WorkspacesListResponse, 'workspaces'> {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/list',\n method: 'GET',\n params,\n responseKey: 'workspaces',\n })\n }\n\n resetSandbox(\n body?: WorkspacesResetSandboxBody,\n options: WorkspacesResetSandboxOptions = {},\n ): SeamHttpRequest<WorkspacesResetSandboxResponse, 'action_attempt'> {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/reset_sandbox',\n method: 'POST',\n body,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n update(body?: WorkspacesUpdateBody): SeamHttpRequest<void, undefined> {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/update',\n method: 'PATCH',\n body,\n responseKey: undefined,\n })\n }\n}\n\nexport type WorkspacesCreateBody = RouteRequestBody<'/workspaces/create'>\n\nexport type WorkspacesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/create'>>\n>\n\nexport type WorkspacesCreateOptions = never\n\nexport type WorkspacesGetParams = RouteRequestParams<'/workspaces/get'>\n\nexport type WorkspacesGetResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/get'>>\n>\n\nexport type WorkspacesGetOptions = never\n\nexport type WorkspacesListParams = RouteRequestParams<'/workspaces/list'>\n\nexport type WorkspacesListResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/list'>>\n>\n\nexport type WorkspacesListOptions = never\n\nexport type WorkspacesResetSandboxBody =\n RouteRequestBody<'/workspaces/reset_sandbox'>\n\nexport type WorkspacesResetSandboxResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/reset_sandbox'>>\n>\n\nexport type WorkspacesResetSandboxOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type WorkspacesUpdateBody = RouteRequestBody<'/workspaces/update'>\n\nexport type WorkspacesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/update'>>\n>\n\nexport type WorkspacesUpdateOptions = never\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpAccessCodes } from './access-codes/index.js'\nimport { SeamHttpAccessGrants } from './access-grants/index.js'\nimport { SeamHttpAccessMethods } from './access-methods/index.js'\nimport { SeamHttpAcs } from './acs/index.js'\nimport { SeamHttpActionAttempts } from './action-attempts/index.js'\nimport { SeamHttpClientSessions } from './client-sessions/index.js'\nimport { SeamHttpConnectWebviews } from './connect-webviews/index.js'\nimport { SeamHttpConnectedAccounts } from './connected-accounts/index.js'\nimport { SeamHttpDevices } from './devices/index.js'\nimport { SeamHttpEvents } from './events/index.js'\nimport { SeamHttpLocks } from './locks/index.js'\nimport { SeamHttpNoiseSensors } from './noise-sensors/index.js'\nimport { SeamHttpPhones } from './phones/index.js'\nimport { SeamHttpSpaces } from './spaces/index.js'\nimport { SeamHttpThermostats } from './thermostats/index.js'\nimport { SeamHttpUserIdentities } from './user-identities/index.js'\nimport { SeamHttpWebhooks } from './webhooks/index.js'\nimport { SeamHttpWorkspaces } from './workspaces/index.js'\n\nexport class SeamHttp {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttp {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttp(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttp {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttp(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttp {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttp(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttp> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttp.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttp.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttp {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttp(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttp {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttp(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get accessCodes(): SeamHttpAccessCodes {\n return SeamHttpAccessCodes.fromClient(this.client, this.defaults)\n }\n\n get accessGrants(): SeamHttpAccessGrants {\n return SeamHttpAccessGrants.fromClient(this.client, this.defaults)\n }\n\n get accessMethods(): SeamHttpAccessMethods {\n return SeamHttpAccessMethods.fromClient(this.client, this.defaults)\n }\n\n get acs(): SeamHttpAcs {\n return SeamHttpAcs.fromClient(this.client, this.defaults)\n }\n\n get actionAttempts(): SeamHttpActionAttempts {\n return SeamHttpActionAttempts.fromClient(this.client, this.defaults)\n }\n\n get clientSessions(): SeamHttpClientSessions {\n return SeamHttpClientSessions.fromClient(this.client, this.defaults)\n }\n\n get connectWebviews(): SeamHttpConnectWebviews {\n return SeamHttpConnectWebviews.fromClient(this.client, this.defaults)\n }\n\n get connectedAccounts(): SeamHttpConnectedAccounts {\n return SeamHttpConnectedAccounts.fromClient(this.client, this.defaults)\n }\n\n get devices(): SeamHttpDevices {\n return SeamHttpDevices.fromClient(this.client, this.defaults)\n }\n\n get events(): SeamHttpEvents {\n return SeamHttpEvents.fromClient(this.client, this.defaults)\n }\n\n get locks(): SeamHttpLocks {\n return SeamHttpLocks.fromClient(this.client, this.defaults)\n }\n\n get noiseSensors(): SeamHttpNoiseSensors {\n return SeamHttpNoiseSensors.fromClient(this.client, this.defaults)\n }\n\n get phones(): SeamHttpPhones {\n return SeamHttpPhones.fromClient(this.client, this.defaults)\n }\n\n get spaces(): SeamHttpSpaces {\n return SeamHttpSpaces.fromClient(this.client, this.defaults)\n }\n\n get thermostats(): SeamHttpThermostats {\n return SeamHttpThermostats.fromClient(this.client, this.defaults)\n }\n\n get userIdentities(): SeamHttpUserIdentities {\n return SeamHttpUserIdentities.fromClient(this.client, this.defaults)\n }\n\n get webhooks(): SeamHttpWebhooks {\n return SeamHttpWebhooks.fromClient(this.client, this.defaults)\n }\n\n get workspaces(): SeamHttpWorkspaces {\n return SeamHttpWorkspaces.fromClient(this.client, this.defaults)\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpAccessCodes } from './access-codes/index.js'\nimport { SeamHttpAccessCodesSimulate } from './access-codes/simulate/index.js'\nimport { SeamHttpAccessCodesUnmanaged } from './access-codes/unmanaged/index.js'\nimport { SeamHttpAccessGrants } from './access-grants/index.js'\nimport { SeamHttpAccessMethods } from './access-methods/index.js'\nimport { SeamHttpAcsAccessGroups } from './acs/access-groups/index.js'\nimport { SeamHttpAcsCredentials } from './acs/credentials/index.js'\nimport { SeamHttpAcsEncoders } from './acs/encoders/index.js'\nimport { SeamHttpAcsEncodersSimulate } from './acs/encoders/simulate/index.js'\nimport { SeamHttpAcsEntrances } from './acs/entrances/index.js'\nimport { SeamHttpAcsSystems } from './acs/systems/index.js'\nimport { SeamHttpAcsUsers } from './acs/users/index.js'\nimport { SeamHttpActionAttempts } from './action-attempts/index.js'\nimport { SeamHttpClientSessions } from './client-sessions/index.js'\nimport { SeamHttpConnectWebviews } from './connect-webviews/index.js'\nimport { SeamHttpConnectedAccounts } from './connected-accounts/index.js'\nimport { SeamHttpDevices } from './devices/index.js'\nimport { SeamHttpDevicesSimulate } from './devices/simulate/index.js'\nimport { SeamHttpDevicesUnmanaged } from './devices/unmanaged/index.js'\nimport { SeamHttpEvents } from './events/index.js'\nimport { SeamHttpLocks } from './locks/index.js'\nimport { SeamHttpNoiseSensors } from './noise-sensors/index.js'\nimport { SeamHttpNoiseSensorsNoiseThresholds } from './noise-sensors/noise-thresholds/index.js'\nimport { SeamHttpNoiseSensorsSimulate } from './noise-sensors/simulate/index.js'\nimport { SeamHttpPhones } from './phones/index.js'\nimport { SeamHttpPhonesSimulate } from './phones/simulate/index.js'\nimport { SeamHttpSpaces } from './spaces/index.js'\nimport { SeamHttpThermostatsDailyPrograms } from './thermostats/daily-programs/index.js'\nimport { SeamHttpThermostats } from './thermostats/index.js'\nimport { SeamHttpThermostatsSchedules } from './thermostats/schedules/index.js'\nimport { SeamHttpThermostatsSimulate } from './thermostats/simulate/index.js'\nimport { SeamHttpUserIdentitiesEnrollmentAutomations } from './user-identities/enrollment-automations/index.js'\nimport { SeamHttpUserIdentities } from './user-identities/index.js'\nimport { SeamHttpWebhooks } from './webhooks/index.js'\nimport { SeamHttpWorkspaces } from './workspaces/index.js'\n\nexport class SeamHttpEndpoints {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpEndpoints> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpEndpoints.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpEndpoints.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get ['/access_codes/create'](): SeamHttpAccessCodes['create'] {\n const { client, defaults } = this\n return function accessCodesCreate(\n ...args: Parameters<SeamHttpAccessCodes['create']>\n ): ReturnType<SeamHttpAccessCodes['create']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/access_codes/create_multiple'](): SeamHttpAccessCodes['createMultiple'] {\n const { client, defaults } = this\n return function accessCodesCreateMultiple(\n ...args: Parameters<SeamHttpAccessCodes['createMultiple']>\n ): ReturnType<SeamHttpAccessCodes['createMultiple']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.createMultiple(...args)\n }\n }\n\n get ['/access_codes/delete'](): SeamHttpAccessCodes['delete'] {\n const { client, defaults } = this\n return function accessCodesDelete(\n ...args: Parameters<SeamHttpAccessCodes['delete']>\n ): ReturnType<SeamHttpAccessCodes['delete']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_codes/generate_code'](): SeamHttpAccessCodes['generateCode'] {\n const { client, defaults } = this\n return function accessCodesGenerateCode(\n ...args: Parameters<SeamHttpAccessCodes['generateCode']>\n ): ReturnType<SeamHttpAccessCodes['generateCode']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.generateCode(...args)\n }\n }\n\n get ['/access_codes/get'](): SeamHttpAccessCodes['get'] {\n const { client, defaults } = this\n return function accessCodesGet(\n ...args: Parameters<SeamHttpAccessCodes['get']>\n ): ReturnType<SeamHttpAccessCodes['get']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_codes/list'](): SeamHttpAccessCodes['list'] {\n const { client, defaults } = this\n return function accessCodesList(\n ...args: Parameters<SeamHttpAccessCodes['list']>\n ): ReturnType<SeamHttpAccessCodes['list']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/access_codes/pull_backup_access_code'](): SeamHttpAccessCodes['pullBackupAccessCode'] {\n const { client, defaults } = this\n return function accessCodesPullBackupAccessCode(\n ...args: Parameters<SeamHttpAccessCodes['pullBackupAccessCode']>\n ): ReturnType<SeamHttpAccessCodes['pullBackupAccessCode']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.pullBackupAccessCode(...args)\n }\n }\n\n get ['/access_codes/report_device_constraints'](): SeamHttpAccessCodes['reportDeviceConstraints'] {\n const { client, defaults } = this\n return function accessCodesReportDeviceConstraints(\n ...args: Parameters<SeamHttpAccessCodes['reportDeviceConstraints']>\n ): ReturnType<SeamHttpAccessCodes['reportDeviceConstraints']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.reportDeviceConstraints(...args)\n }\n }\n\n get ['/access_codes/update'](): SeamHttpAccessCodes['update'] {\n const { client, defaults } = this\n return function accessCodesUpdate(\n ...args: Parameters<SeamHttpAccessCodes['update']>\n ): ReturnType<SeamHttpAccessCodes['update']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/access_codes/update_multiple'](): SeamHttpAccessCodes['updateMultiple'] {\n const { client, defaults } = this\n return function accessCodesUpdateMultiple(\n ...args: Parameters<SeamHttpAccessCodes['updateMultiple']>\n ): ReturnType<SeamHttpAccessCodes['updateMultiple']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.updateMultiple(...args)\n }\n }\n\n get ['/access_codes/simulate/create_unmanaged_access_code'](): SeamHttpAccessCodesSimulate['createUnmanagedAccessCode'] {\n const { client, defaults } = this\n return function accessCodesSimulateCreateUnmanagedAccessCode(\n ...args: Parameters<\n SeamHttpAccessCodesSimulate['createUnmanagedAccessCode']\n >\n ): ReturnType<SeamHttpAccessCodesSimulate['createUnmanagedAccessCode']> {\n const seam = SeamHttpAccessCodesSimulate.fromClient(client, defaults)\n return seam.createUnmanagedAccessCode(...args)\n }\n }\n\n get ['/access_codes/unmanaged/convert_to_managed'](): SeamHttpAccessCodesUnmanaged['convertToManaged'] {\n const { client, defaults } = this\n return function accessCodesUnmanagedConvertToManaged(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['convertToManaged']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['convertToManaged']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.convertToManaged(...args)\n }\n }\n\n get ['/access_codes/unmanaged/delete'](): SeamHttpAccessCodesUnmanaged['delete'] {\n const { client, defaults } = this\n return function accessCodesUnmanagedDelete(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['delete']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['delete']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_codes/unmanaged/get'](): SeamHttpAccessCodesUnmanaged['get'] {\n const { client, defaults } = this\n return function accessCodesUnmanagedGet(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['get']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['get']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_codes/unmanaged/list'](): SeamHttpAccessCodesUnmanaged['list'] {\n const { client, defaults } = this\n return function accessCodesUnmanagedList(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['list']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['list']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/access_codes/unmanaged/update'](): SeamHttpAccessCodesUnmanaged['update'] {\n const { client, defaults } = this\n return function accessCodesUnmanagedUpdate(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['update']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['update']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/access_grants/create'](): SeamHttpAccessGrants['create'] {\n const { client, defaults } = this\n return function accessGrantsCreate(\n ...args: Parameters<SeamHttpAccessGrants['create']>\n ): ReturnType<SeamHttpAccessGrants['create']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/access_grants/delete'](): SeamHttpAccessGrants['delete'] {\n const { client, defaults } = this\n return function accessGrantsDelete(\n ...args: Parameters<SeamHttpAccessGrants['delete']>\n ): ReturnType<SeamHttpAccessGrants['delete']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_grants/get'](): SeamHttpAccessGrants['get'] {\n const { client, defaults } = this\n return function accessGrantsGet(\n ...args: Parameters<SeamHttpAccessGrants['get']>\n ): ReturnType<SeamHttpAccessGrants['get']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_grants/list'](): SeamHttpAccessGrants['list'] {\n const { client, defaults } = this\n return function accessGrantsList(\n ...args: Parameters<SeamHttpAccessGrants['list']>\n ): ReturnType<SeamHttpAccessGrants['list']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/access_grants/update'](): SeamHttpAccessGrants['update'] {\n const { client, defaults } = this\n return function accessGrantsUpdate(\n ...args: Parameters<SeamHttpAccessGrants['update']>\n ): ReturnType<SeamHttpAccessGrants['update']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/access_methods/delete'](): SeamHttpAccessMethods['delete'] {\n const { client, defaults } = this\n return function accessMethodsDelete(\n ...args: Parameters<SeamHttpAccessMethods['delete']>\n ): ReturnType<SeamHttpAccessMethods['delete']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_methods/get'](): SeamHttpAccessMethods['get'] {\n const { client, defaults } = this\n return function accessMethodsGet(\n ...args: Parameters<SeamHttpAccessMethods['get']>\n ): ReturnType<SeamHttpAccessMethods['get']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_methods/list'](): SeamHttpAccessMethods['list'] {\n const { client, defaults } = this\n return function accessMethodsList(\n ...args: Parameters<SeamHttpAccessMethods['list']>\n ): ReturnType<SeamHttpAccessMethods['list']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/access_groups/add_user'](): SeamHttpAcsAccessGroups['addUser'] {\n const { client, defaults } = this\n return function acsAccessGroupsAddUser(\n ...args: Parameters<SeamHttpAcsAccessGroups['addUser']>\n ): ReturnType<SeamHttpAcsAccessGroups['addUser']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.addUser(...args)\n }\n }\n\n get ['/acs/access_groups/get'](): SeamHttpAcsAccessGroups['get'] {\n const { client, defaults } = this\n return function acsAccessGroupsGet(\n ...args: Parameters<SeamHttpAcsAccessGroups['get']>\n ): ReturnType<SeamHttpAcsAccessGroups['get']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/access_groups/list'](): SeamHttpAcsAccessGroups['list'] {\n const { client, defaults } = this\n return function acsAccessGroupsList(\n ...args: Parameters<SeamHttpAcsAccessGroups['list']>\n ): ReturnType<SeamHttpAcsAccessGroups['list']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/access_groups/list_accessible_entrances'](): SeamHttpAcsAccessGroups['listAccessibleEntrances'] {\n const { client, defaults } = this\n return function acsAccessGroupsListAccessibleEntrances(\n ...args: Parameters<SeamHttpAcsAccessGroups['listAccessibleEntrances']>\n ): ReturnType<SeamHttpAcsAccessGroups['listAccessibleEntrances']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.listAccessibleEntrances(...args)\n }\n }\n\n get ['/acs/access_groups/list_users'](): SeamHttpAcsAccessGroups['listUsers'] {\n const { client, defaults } = this\n return function acsAccessGroupsListUsers(\n ...args: Parameters<SeamHttpAcsAccessGroups['listUsers']>\n ): ReturnType<SeamHttpAcsAccessGroups['listUsers']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.listUsers(...args)\n }\n }\n\n get ['/acs/access_groups/remove_user'](): SeamHttpAcsAccessGroups['removeUser'] {\n const { client, defaults } = this\n return function acsAccessGroupsRemoveUser(\n ...args: Parameters<SeamHttpAcsAccessGroups['removeUser']>\n ): ReturnType<SeamHttpAcsAccessGroups['removeUser']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.removeUser(...args)\n }\n }\n\n get ['/acs/credentials/assign'](): SeamHttpAcsCredentials['assign'] {\n const { client, defaults } = this\n return function acsCredentialsAssign(\n ...args: Parameters<SeamHttpAcsCredentials['assign']>\n ): ReturnType<SeamHttpAcsCredentials['assign']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.assign(...args)\n }\n }\n\n get ['/acs/credentials/create'](): SeamHttpAcsCredentials['create'] {\n const { client, defaults } = this\n return function acsCredentialsCreate(\n ...args: Parameters<SeamHttpAcsCredentials['create']>\n ): ReturnType<SeamHttpAcsCredentials['create']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/acs/credentials/delete'](): SeamHttpAcsCredentials['delete'] {\n const { client, defaults } = this\n return function acsCredentialsDelete(\n ...args: Parameters<SeamHttpAcsCredentials['delete']>\n ): ReturnType<SeamHttpAcsCredentials['delete']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/acs/credentials/get'](): SeamHttpAcsCredentials['get'] {\n const { client, defaults } = this\n return function acsCredentialsGet(\n ...args: Parameters<SeamHttpAcsCredentials['get']>\n ): ReturnType<SeamHttpAcsCredentials['get']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/credentials/list'](): SeamHttpAcsCredentials['list'] {\n const { client, defaults } = this\n return function acsCredentialsList(\n ...args: Parameters<SeamHttpAcsCredentials['list']>\n ): ReturnType<SeamHttpAcsCredentials['list']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/credentials/list_accessible_entrances'](): SeamHttpAcsCredentials['listAccessibleEntrances'] {\n const { client, defaults } = this\n return function acsCredentialsListAccessibleEntrances(\n ...args: Parameters<SeamHttpAcsCredentials['listAccessibleEntrances']>\n ): ReturnType<SeamHttpAcsCredentials['listAccessibleEntrances']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.listAccessibleEntrances(...args)\n }\n }\n\n get ['/acs/credentials/unassign'](): SeamHttpAcsCredentials['unassign'] {\n const { client, defaults } = this\n return function acsCredentialsUnassign(\n ...args: Parameters<SeamHttpAcsCredentials['unassign']>\n ): ReturnType<SeamHttpAcsCredentials['unassign']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.unassign(...args)\n }\n }\n\n get ['/acs/credentials/update'](): SeamHttpAcsCredentials['update'] {\n const { client, defaults } = this\n return function acsCredentialsUpdate(\n ...args: Parameters<SeamHttpAcsCredentials['update']>\n ): ReturnType<SeamHttpAcsCredentials['update']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/acs/encoders/encode_access_method'](): SeamHttpAcsEncoders['encodeAccessMethod'] {\n const { client, defaults } = this\n return function acsEncodersEncodeAccessMethod(\n ...args: Parameters<SeamHttpAcsEncoders['encodeAccessMethod']>\n ): ReturnType<SeamHttpAcsEncoders['encodeAccessMethod']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.encodeAccessMethod(...args)\n }\n }\n\n get ['/acs/encoders/encode_credential'](): SeamHttpAcsEncoders['encodeCredential'] {\n const { client, defaults } = this\n return function acsEncodersEncodeCredential(\n ...args: Parameters<SeamHttpAcsEncoders['encodeCredential']>\n ): ReturnType<SeamHttpAcsEncoders['encodeCredential']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.encodeCredential(...args)\n }\n }\n\n get ['/acs/encoders/get'](): SeamHttpAcsEncoders['get'] {\n const { client, defaults } = this\n return function acsEncodersGet(\n ...args: Parameters<SeamHttpAcsEncoders['get']>\n ): ReturnType<SeamHttpAcsEncoders['get']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/encoders/list'](): SeamHttpAcsEncoders['list'] {\n const { client, defaults } = this\n return function acsEncodersList(\n ...args: Parameters<SeamHttpAcsEncoders['list']>\n ): ReturnType<SeamHttpAcsEncoders['list']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/encoders/scan_credential'](): SeamHttpAcsEncoders['scanCredential'] {\n const { client, defaults } = this\n return function acsEncodersScanCredential(\n ...args: Parameters<SeamHttpAcsEncoders['scanCredential']>\n ): ReturnType<SeamHttpAcsEncoders['scanCredential']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.scanCredential(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_encode_will_fail'](): SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillFail'] {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialEncodeWillFail(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillFail']\n >\n ): ReturnType<SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillFail']> {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialEncodeWillFail(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_encode_will_succeed'](): SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillSucceed'] {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialEncodeWillSucceed(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillSucceed']\n >\n ): ReturnType<\n SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillSucceed']\n > {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialEncodeWillSucceed(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_scan_will_fail'](): SeamHttpAcsEncodersSimulate['nextCredentialScanWillFail'] {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialScanWillFail(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialScanWillFail']\n >\n ): ReturnType<SeamHttpAcsEncodersSimulate['nextCredentialScanWillFail']> {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialScanWillFail(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_scan_will_succeed'](): SeamHttpAcsEncodersSimulate['nextCredentialScanWillSucceed'] {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialScanWillSucceed(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialScanWillSucceed']\n >\n ): ReturnType<\n SeamHttpAcsEncodersSimulate['nextCredentialScanWillSucceed']\n > {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialScanWillSucceed(...args)\n }\n }\n\n get ['/acs/entrances/get'](): SeamHttpAcsEntrances['get'] {\n const { client, defaults } = this\n return function acsEntrancesGet(\n ...args: Parameters<SeamHttpAcsEntrances['get']>\n ): ReturnType<SeamHttpAcsEntrances['get']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/entrances/grant_access'](): SeamHttpAcsEntrances['grantAccess'] {\n const { client, defaults } = this\n return function acsEntrancesGrantAccess(\n ...args: Parameters<SeamHttpAcsEntrances['grantAccess']>\n ): ReturnType<SeamHttpAcsEntrances['grantAccess']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.grantAccess(...args)\n }\n }\n\n get ['/acs/entrances/list'](): SeamHttpAcsEntrances['list'] {\n const { client, defaults } = this\n return function acsEntrancesList(\n ...args: Parameters<SeamHttpAcsEntrances['list']>\n ): ReturnType<SeamHttpAcsEntrances['list']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/entrances/list_credentials_with_access'](): SeamHttpAcsEntrances['listCredentialsWithAccess'] {\n const { client, defaults } = this\n return function acsEntrancesListCredentialsWithAccess(\n ...args: Parameters<SeamHttpAcsEntrances['listCredentialsWithAccess']>\n ): ReturnType<SeamHttpAcsEntrances['listCredentialsWithAccess']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.listCredentialsWithAccess(...args)\n }\n }\n\n get ['/acs/systems/get'](): SeamHttpAcsSystems['get'] {\n const { client, defaults } = this\n return function acsSystemsGet(\n ...args: Parameters<SeamHttpAcsSystems['get']>\n ): ReturnType<SeamHttpAcsSystems['get']> {\n const seam = SeamHttpAcsSystems.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/systems/list'](): SeamHttpAcsSystems['list'] {\n const { client, defaults } = this\n return function acsSystemsList(\n ...args: Parameters<SeamHttpAcsSystems['list']>\n ): ReturnType<SeamHttpAcsSystems['list']> {\n const seam = SeamHttpAcsSystems.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/systems/list_compatible_credential_manager_acs_systems'](): SeamHttpAcsSystems['listCompatibleCredentialManagerAcsSystems'] {\n const { client, defaults } = this\n return function acsSystemsListCompatibleCredentialManagerAcsSystems(\n ...args: Parameters<\n SeamHttpAcsSystems['listCompatibleCredentialManagerAcsSystems']\n >\n ): ReturnType<\n SeamHttpAcsSystems['listCompatibleCredentialManagerAcsSystems']\n > {\n const seam = SeamHttpAcsSystems.fromClient(client, defaults)\n return seam.listCompatibleCredentialManagerAcsSystems(...args)\n }\n }\n\n get ['/acs/users/add_to_access_group'](): SeamHttpAcsUsers['addToAccessGroup'] {\n const { client, defaults } = this\n return function acsUsersAddToAccessGroup(\n ...args: Parameters<SeamHttpAcsUsers['addToAccessGroup']>\n ): ReturnType<SeamHttpAcsUsers['addToAccessGroup']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.addToAccessGroup(...args)\n }\n }\n\n get ['/acs/users/create'](): SeamHttpAcsUsers['create'] {\n const { client, defaults } = this\n return function acsUsersCreate(\n ...args: Parameters<SeamHttpAcsUsers['create']>\n ): ReturnType<SeamHttpAcsUsers['create']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/acs/users/delete'](): SeamHttpAcsUsers['delete'] {\n const { client, defaults } = this\n return function acsUsersDelete(\n ...args: Parameters<SeamHttpAcsUsers['delete']>\n ): ReturnType<SeamHttpAcsUsers['delete']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/acs/users/get'](): SeamHttpAcsUsers['get'] {\n const { client, defaults } = this\n return function acsUsersGet(\n ...args: Parameters<SeamHttpAcsUsers['get']>\n ): ReturnType<SeamHttpAcsUsers['get']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/users/list'](): SeamHttpAcsUsers['list'] {\n const { client, defaults } = this\n return function acsUsersList(\n ...args: Parameters<SeamHttpAcsUsers['list']>\n ): ReturnType<SeamHttpAcsUsers['list']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/users/list_accessible_entrances'](): SeamHttpAcsUsers['listAccessibleEntrances'] {\n const { client, defaults } = this\n return function acsUsersListAccessibleEntrances(\n ...args: Parameters<SeamHttpAcsUsers['listAccessibleEntrances']>\n ): ReturnType<SeamHttpAcsUsers['listAccessibleEntrances']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.listAccessibleEntrances(...args)\n }\n }\n\n get ['/acs/users/remove_from_access_group'](): SeamHttpAcsUsers['removeFromAccessGroup'] {\n const { client, defaults } = this\n return function acsUsersRemoveFromAccessGroup(\n ...args: Parameters<SeamHttpAcsUsers['removeFromAccessGroup']>\n ): ReturnType<SeamHttpAcsUsers['removeFromAccessGroup']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.removeFromAccessGroup(...args)\n }\n }\n\n get ['/acs/users/revoke_access_to_all_entrances'](): SeamHttpAcsUsers['revokeAccessToAllEntrances'] {\n const { client, defaults } = this\n return function acsUsersRevokeAccessToAllEntrances(\n ...args: Parameters<SeamHttpAcsUsers['revokeAccessToAllEntrances']>\n ): ReturnType<SeamHttpAcsUsers['revokeAccessToAllEntrances']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.revokeAccessToAllEntrances(...args)\n }\n }\n\n get ['/acs/users/suspend'](): SeamHttpAcsUsers['suspend'] {\n const { client, defaults } = this\n return function acsUsersSuspend(\n ...args: Parameters<SeamHttpAcsUsers['suspend']>\n ): ReturnType<SeamHttpAcsUsers['suspend']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.suspend(...args)\n }\n }\n\n get ['/acs/users/unsuspend'](): SeamHttpAcsUsers['unsuspend'] {\n const { client, defaults } = this\n return function acsUsersUnsuspend(\n ...args: Parameters<SeamHttpAcsUsers['unsuspend']>\n ): ReturnType<SeamHttpAcsUsers['unsuspend']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.unsuspend(...args)\n }\n }\n\n get ['/acs/users/update'](): SeamHttpAcsUsers['update'] {\n const { client, defaults } = this\n return function acsUsersUpdate(\n ...args: Parameters<SeamHttpAcsUsers['update']>\n ): ReturnType<SeamHttpAcsUsers['update']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/action_attempts/get'](): SeamHttpActionAttempts['get'] {\n const { client, defaults } = this\n return function actionAttemptsGet(\n ...args: Parameters<SeamHttpActionAttempts['get']>\n ): ReturnType<SeamHttpActionAttempts['get']> {\n const seam = SeamHttpActionAttempts.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/action_attempts/list'](): SeamHttpActionAttempts['list'] {\n const { client, defaults } = this\n return function actionAttemptsList(\n ...args: Parameters<SeamHttpActionAttempts['list']>\n ): ReturnType<SeamHttpActionAttempts['list']> {\n const seam = SeamHttpActionAttempts.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/client_sessions/create'](): SeamHttpClientSessions['create'] {\n const { client, defaults } = this\n return function clientSessionsCreate(\n ...args: Parameters<SeamHttpClientSessions['create']>\n ): ReturnType<SeamHttpClientSessions['create']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/client_sessions/delete'](): SeamHttpClientSessions['delete'] {\n const { client, defaults } = this\n return function clientSessionsDelete(\n ...args: Parameters<SeamHttpClientSessions['delete']>\n ): ReturnType<SeamHttpClientSessions['delete']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/client_sessions/get'](): SeamHttpClientSessions['get'] {\n const { client, defaults } = this\n return function clientSessionsGet(\n ...args: Parameters<SeamHttpClientSessions['get']>\n ): ReturnType<SeamHttpClientSessions['get']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/client_sessions/get_or_create'](): SeamHttpClientSessions['getOrCreate'] {\n const { client, defaults } = this\n return function clientSessionsGetOrCreate(\n ...args: Parameters<SeamHttpClientSessions['getOrCreate']>\n ): ReturnType<SeamHttpClientSessions['getOrCreate']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.getOrCreate(...args)\n }\n }\n\n get ['/client_sessions/grant_access'](): SeamHttpClientSessions['grantAccess'] {\n const { client, defaults } = this\n return function clientSessionsGrantAccess(\n ...args: Parameters<SeamHttpClientSessions['grantAccess']>\n ): ReturnType<SeamHttpClientSessions['grantAccess']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.grantAccess(...args)\n }\n }\n\n get ['/client_sessions/list'](): SeamHttpClientSessions['list'] {\n const { client, defaults } = this\n return function clientSessionsList(\n ...args: Parameters<SeamHttpClientSessions['list']>\n ): ReturnType<SeamHttpClientSessions['list']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/client_sessions/revoke'](): SeamHttpClientSessions['revoke'] {\n const { client, defaults } = this\n return function clientSessionsRevoke(\n ...args: Parameters<SeamHttpClientSessions['revoke']>\n ): ReturnType<SeamHttpClientSessions['revoke']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.revoke(...args)\n }\n }\n\n get ['/connect_webviews/create'](): SeamHttpConnectWebviews['create'] {\n const { client, defaults } = this\n return function connectWebviewsCreate(\n ...args: Parameters<SeamHttpConnectWebviews['create']>\n ): ReturnType<SeamHttpConnectWebviews['create']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/connect_webviews/delete'](): SeamHttpConnectWebviews['delete'] {\n const { client, defaults } = this\n return function connectWebviewsDelete(\n ...args: Parameters<SeamHttpConnectWebviews['delete']>\n ): ReturnType<SeamHttpConnectWebviews['delete']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/connect_webviews/get'](): SeamHttpConnectWebviews['get'] {\n const { client, defaults } = this\n return function connectWebviewsGet(\n ...args: Parameters<SeamHttpConnectWebviews['get']>\n ): ReturnType<SeamHttpConnectWebviews['get']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/connect_webviews/list'](): SeamHttpConnectWebviews['list'] {\n const { client, defaults } = this\n return function connectWebviewsList(\n ...args: Parameters<SeamHttpConnectWebviews['list']>\n ): ReturnType<SeamHttpConnectWebviews['list']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/connected_accounts/delete'](): SeamHttpConnectedAccounts['delete'] {\n const { client, defaults } = this\n return function connectedAccountsDelete(\n ...args: Parameters<SeamHttpConnectedAccounts['delete']>\n ): ReturnType<SeamHttpConnectedAccounts['delete']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/connected_accounts/get'](): SeamHttpConnectedAccounts['get'] {\n const { client, defaults } = this\n return function connectedAccountsGet(\n ...args: Parameters<SeamHttpConnectedAccounts['get']>\n ): ReturnType<SeamHttpConnectedAccounts['get']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/connected_accounts/list'](): SeamHttpConnectedAccounts['list'] {\n const { client, defaults } = this\n return function connectedAccountsList(\n ...args: Parameters<SeamHttpConnectedAccounts['list']>\n ): ReturnType<SeamHttpConnectedAccounts['list']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/connected_accounts/sync'](): SeamHttpConnectedAccounts['sync'] {\n const { client, defaults } = this\n return function connectedAccountsSync(\n ...args: Parameters<SeamHttpConnectedAccounts['sync']>\n ): ReturnType<SeamHttpConnectedAccounts['sync']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.sync(...args)\n }\n }\n\n get ['/connected_accounts/update'](): SeamHttpConnectedAccounts['update'] {\n const { client, defaults } = this\n return function connectedAccountsUpdate(\n ...args: Parameters<SeamHttpConnectedAccounts['update']>\n ): ReturnType<SeamHttpConnectedAccounts['update']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/devices/get'](): SeamHttpDevices['get'] {\n const { client, defaults } = this\n return function devicesGet(\n ...args: Parameters<SeamHttpDevices['get']>\n ): ReturnType<SeamHttpDevices['get']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/devices/list'](): SeamHttpDevices['list'] {\n const { client, defaults } = this\n return function devicesList(\n ...args: Parameters<SeamHttpDevices['list']>\n ): ReturnType<SeamHttpDevices['list']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/devices/list_device_providers'](): SeamHttpDevices['listDeviceProviders'] {\n const { client, defaults } = this\n return function devicesListDeviceProviders(\n ...args: Parameters<SeamHttpDevices['listDeviceProviders']>\n ): ReturnType<SeamHttpDevices['listDeviceProviders']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.listDeviceProviders(...args)\n }\n }\n\n get ['/devices/update'](): SeamHttpDevices['update'] {\n const { client, defaults } = this\n return function devicesUpdate(\n ...args: Parameters<SeamHttpDevices['update']>\n ): ReturnType<SeamHttpDevices['update']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/devices/simulate/connect'](): SeamHttpDevicesSimulate['connect'] {\n const { client, defaults } = this\n return function devicesSimulateConnect(\n ...args: Parameters<SeamHttpDevicesSimulate['connect']>\n ): ReturnType<SeamHttpDevicesSimulate['connect']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.connect(...args)\n }\n }\n\n get ['/devices/simulate/disconnect'](): SeamHttpDevicesSimulate['disconnect'] {\n const { client, defaults } = this\n return function devicesSimulateDisconnect(\n ...args: Parameters<SeamHttpDevicesSimulate['disconnect']>\n ): ReturnType<SeamHttpDevicesSimulate['disconnect']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.disconnect(...args)\n }\n }\n\n get ['/devices/simulate/remove'](): SeamHttpDevicesSimulate['remove'] {\n const { client, defaults } = this\n return function devicesSimulateRemove(\n ...args: Parameters<SeamHttpDevicesSimulate['remove']>\n ): ReturnType<SeamHttpDevicesSimulate['remove']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.remove(...args)\n }\n }\n\n get ['/devices/unmanaged/get'](): SeamHttpDevicesUnmanaged['get'] {\n const { client, defaults } = this\n return function devicesUnmanagedGet(\n ...args: Parameters<SeamHttpDevicesUnmanaged['get']>\n ): ReturnType<SeamHttpDevicesUnmanaged['get']> {\n const seam = SeamHttpDevicesUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/devices/unmanaged/list'](): SeamHttpDevicesUnmanaged['list'] {\n const { client, defaults } = this\n return function devicesUnmanagedList(\n ...args: Parameters<SeamHttpDevicesUnmanaged['list']>\n ): ReturnType<SeamHttpDevicesUnmanaged['list']> {\n const seam = SeamHttpDevicesUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/devices/unmanaged/update'](): SeamHttpDevicesUnmanaged['update'] {\n const { client, defaults } = this\n return function devicesUnmanagedUpdate(\n ...args: Parameters<SeamHttpDevicesUnmanaged['update']>\n ): ReturnType<SeamHttpDevicesUnmanaged['update']> {\n const seam = SeamHttpDevicesUnmanaged.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/events/get'](): SeamHttpEvents['get'] {\n const { client, defaults } = this\n return function eventsGet(\n ...args: Parameters<SeamHttpEvents['get']>\n ): ReturnType<SeamHttpEvents['get']> {\n const seam = SeamHttpEvents.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/events/list'](): SeamHttpEvents['list'] {\n const { client, defaults } = this\n return function eventsList(\n ...args: Parameters<SeamHttpEvents['list']>\n ): ReturnType<SeamHttpEvents['list']> {\n const seam = SeamHttpEvents.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/locks/get'](): SeamHttpLocks['get'] {\n const { client, defaults } = this\n return function locksGet(\n ...args: Parameters<SeamHttpLocks['get']>\n ): ReturnType<SeamHttpLocks['get']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/locks/list'](): SeamHttpLocks['list'] {\n const { client, defaults } = this\n return function locksList(\n ...args: Parameters<SeamHttpLocks['list']>\n ): ReturnType<SeamHttpLocks['list']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/locks/lock_door'](): SeamHttpLocks['lockDoor'] {\n const { client, defaults } = this\n return function locksLockDoor(\n ...args: Parameters<SeamHttpLocks['lockDoor']>\n ): ReturnType<SeamHttpLocks['lockDoor']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.lockDoor(...args)\n }\n }\n\n get ['/locks/unlock_door'](): SeamHttpLocks['unlockDoor'] {\n const { client, defaults } = this\n return function locksUnlockDoor(\n ...args: Parameters<SeamHttpLocks['unlockDoor']>\n ): ReturnType<SeamHttpLocks['unlockDoor']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.unlockDoor(...args)\n }\n }\n\n get ['/noise_sensors/list'](): SeamHttpNoiseSensors['list'] {\n const { client, defaults } = this\n return function noiseSensorsList(\n ...args: Parameters<SeamHttpNoiseSensors['list']>\n ): ReturnType<SeamHttpNoiseSensors['list']> {\n const seam = SeamHttpNoiseSensors.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/create'](): SeamHttpNoiseSensorsNoiseThresholds['create'] {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsCreate(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['create']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['create']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.create(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/delete'](): SeamHttpNoiseSensorsNoiseThresholds['delete'] {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsDelete(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['delete']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['delete']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.delete(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/get'](): SeamHttpNoiseSensorsNoiseThresholds['get'] {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsGet(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['get']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['get']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.get(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/list'](): SeamHttpNoiseSensorsNoiseThresholds['list'] {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsList(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['list']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['list']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.list(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/update'](): SeamHttpNoiseSensorsNoiseThresholds['update'] {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsUpdate(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['update']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['update']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.update(...args)\n }\n }\n\n get ['/noise_sensors/simulate/trigger_noise_threshold'](): SeamHttpNoiseSensorsSimulate['triggerNoiseThreshold'] {\n const { client, defaults } = this\n return function noiseSensorsSimulateTriggerNoiseThreshold(\n ...args: Parameters<SeamHttpNoiseSensorsSimulate['triggerNoiseThreshold']>\n ): ReturnType<SeamHttpNoiseSensorsSimulate['triggerNoiseThreshold']> {\n const seam = SeamHttpNoiseSensorsSimulate.fromClient(client, defaults)\n return seam.triggerNoiseThreshold(...args)\n }\n }\n\n get ['/phones/deactivate'](): SeamHttpPhones['deactivate'] {\n const { client, defaults } = this\n return function phonesDeactivate(\n ...args: Parameters<SeamHttpPhones['deactivate']>\n ): ReturnType<SeamHttpPhones['deactivate']> {\n const seam = SeamHttpPhones.fromClient(client, defaults)\n return seam.deactivate(...args)\n }\n }\n\n get ['/phones/get'](): SeamHttpPhones['get'] {\n const { client, defaults } = this\n return function phonesGet(\n ...args: Parameters<SeamHttpPhones['get']>\n ): ReturnType<SeamHttpPhones['get']> {\n const seam = SeamHttpPhones.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/phones/list'](): SeamHttpPhones['list'] {\n const { client, defaults } = this\n return function phonesList(\n ...args: Parameters<SeamHttpPhones['list']>\n ): ReturnType<SeamHttpPhones['list']> {\n const seam = SeamHttpPhones.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/phones/simulate/create_sandbox_phone'](): SeamHttpPhonesSimulate['createSandboxPhone'] {\n const { client, defaults } = this\n return function phonesSimulateCreateSandboxPhone(\n ...args: Parameters<SeamHttpPhonesSimulate['createSandboxPhone']>\n ): ReturnType<SeamHttpPhonesSimulate['createSandboxPhone']> {\n const seam = SeamHttpPhonesSimulate.fromClient(client, defaults)\n return seam.createSandboxPhone(...args)\n }\n }\n\n get ['/spaces/add_acs_entrances'](): SeamHttpSpaces['addAcsEntrances'] {\n const { client, defaults } = this\n return function spacesAddAcsEntrances(\n ...args: Parameters<SeamHttpSpaces['addAcsEntrances']>\n ): ReturnType<SeamHttpSpaces['addAcsEntrances']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.addAcsEntrances(...args)\n }\n }\n\n get ['/spaces/add_devices'](): SeamHttpSpaces['addDevices'] {\n const { client, defaults } = this\n return function spacesAddDevices(\n ...args: Parameters<SeamHttpSpaces['addDevices']>\n ): ReturnType<SeamHttpSpaces['addDevices']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.addDevices(...args)\n }\n }\n\n get ['/spaces/create'](): SeamHttpSpaces['create'] {\n const { client, defaults } = this\n return function spacesCreate(\n ...args: Parameters<SeamHttpSpaces['create']>\n ): ReturnType<SeamHttpSpaces['create']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/spaces/delete'](): SeamHttpSpaces['delete'] {\n const { client, defaults } = this\n return function spacesDelete(\n ...args: Parameters<SeamHttpSpaces['delete']>\n ): ReturnType<SeamHttpSpaces['delete']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/spaces/get'](): SeamHttpSpaces['get'] {\n const { client, defaults } = this\n return function spacesGet(\n ...args: Parameters<SeamHttpSpaces['get']>\n ): ReturnType<SeamHttpSpaces['get']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/spaces/list'](): SeamHttpSpaces['list'] {\n const { client, defaults } = this\n return function spacesList(\n ...args: Parameters<SeamHttpSpaces['list']>\n ): ReturnType<SeamHttpSpaces['list']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/spaces/remove_acs_entrances'](): SeamHttpSpaces['removeAcsEntrances'] {\n const { client, defaults } = this\n return function spacesRemoveAcsEntrances(\n ...args: Parameters<SeamHttpSpaces['removeAcsEntrances']>\n ): ReturnType<SeamHttpSpaces['removeAcsEntrances']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.removeAcsEntrances(...args)\n }\n }\n\n get ['/spaces/remove_devices'](): SeamHttpSpaces['removeDevices'] {\n const { client, defaults } = this\n return function spacesRemoveDevices(\n ...args: Parameters<SeamHttpSpaces['removeDevices']>\n ): ReturnType<SeamHttpSpaces['removeDevices']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.removeDevices(...args)\n }\n }\n\n get ['/spaces/update'](): SeamHttpSpaces['update'] {\n const { client, defaults } = this\n return function spacesUpdate(\n ...args: Parameters<SeamHttpSpaces['update']>\n ): ReturnType<SeamHttpSpaces['update']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/thermostats/activate_climate_preset'](): SeamHttpThermostats['activateClimatePreset'] {\n const { client, defaults } = this\n return function thermostatsActivateClimatePreset(\n ...args: Parameters<SeamHttpThermostats['activateClimatePreset']>\n ): ReturnType<SeamHttpThermostats['activateClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.activateClimatePreset(...args)\n }\n }\n\n get ['/thermostats/cool'](): SeamHttpThermostats['cool'] {\n const { client, defaults } = this\n return function thermostatsCool(\n ...args: Parameters<SeamHttpThermostats['cool']>\n ): ReturnType<SeamHttpThermostats['cool']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.cool(...args)\n }\n }\n\n get ['/thermostats/create_climate_preset'](): SeamHttpThermostats['createClimatePreset'] {\n const { client, defaults } = this\n return function thermostatsCreateClimatePreset(\n ...args: Parameters<SeamHttpThermostats['createClimatePreset']>\n ): ReturnType<SeamHttpThermostats['createClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.createClimatePreset(...args)\n }\n }\n\n get ['/thermostats/delete_climate_preset'](): SeamHttpThermostats['deleteClimatePreset'] {\n const { client, defaults } = this\n return function thermostatsDeleteClimatePreset(\n ...args: Parameters<SeamHttpThermostats['deleteClimatePreset']>\n ): ReturnType<SeamHttpThermostats['deleteClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.deleteClimatePreset(...args)\n }\n }\n\n get ['/thermostats/heat'](): SeamHttpThermostats['heat'] {\n const { client, defaults } = this\n return function thermostatsHeat(\n ...args: Parameters<SeamHttpThermostats['heat']>\n ): ReturnType<SeamHttpThermostats['heat']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.heat(...args)\n }\n }\n\n get ['/thermostats/heat_cool'](): SeamHttpThermostats['heatCool'] {\n const { client, defaults } = this\n return function thermostatsHeatCool(\n ...args: Parameters<SeamHttpThermostats['heatCool']>\n ): ReturnType<SeamHttpThermostats['heatCool']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.heatCool(...args)\n }\n }\n\n get ['/thermostats/list'](): SeamHttpThermostats['list'] {\n const { client, defaults } = this\n return function thermostatsList(\n ...args: Parameters<SeamHttpThermostats['list']>\n ): ReturnType<SeamHttpThermostats['list']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/thermostats/off'](): SeamHttpThermostats['off'] {\n const { client, defaults } = this\n return function thermostatsOff(\n ...args: Parameters<SeamHttpThermostats['off']>\n ): ReturnType<SeamHttpThermostats['off']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.off(...args)\n }\n }\n\n get ['/thermostats/set_fallback_climate_preset'](): SeamHttpThermostats['setFallbackClimatePreset'] {\n const { client, defaults } = this\n return function thermostatsSetFallbackClimatePreset(\n ...args: Parameters<SeamHttpThermostats['setFallbackClimatePreset']>\n ): ReturnType<SeamHttpThermostats['setFallbackClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setFallbackClimatePreset(...args)\n }\n }\n\n get ['/thermostats/set_fan_mode'](): SeamHttpThermostats['setFanMode'] {\n const { client, defaults } = this\n return function thermostatsSetFanMode(\n ...args: Parameters<SeamHttpThermostats['setFanMode']>\n ): ReturnType<SeamHttpThermostats['setFanMode']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setFanMode(...args)\n }\n }\n\n get ['/thermostats/set_hvac_mode'](): SeamHttpThermostats['setHvacMode'] {\n const { client, defaults } = this\n return function thermostatsSetHvacMode(\n ...args: Parameters<SeamHttpThermostats['setHvacMode']>\n ): ReturnType<SeamHttpThermostats['setHvacMode']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setHvacMode(...args)\n }\n }\n\n get ['/thermostats/set_temperature_threshold'](): SeamHttpThermostats['setTemperatureThreshold'] {\n const { client, defaults } = this\n return function thermostatsSetTemperatureThreshold(\n ...args: Parameters<SeamHttpThermostats['setTemperatureThreshold']>\n ): ReturnType<SeamHttpThermostats['setTemperatureThreshold']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setTemperatureThreshold(...args)\n }\n }\n\n get ['/thermostats/update_climate_preset'](): SeamHttpThermostats['updateClimatePreset'] {\n const { client, defaults } = this\n return function thermostatsUpdateClimatePreset(\n ...args: Parameters<SeamHttpThermostats['updateClimatePreset']>\n ): ReturnType<SeamHttpThermostats['updateClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.updateClimatePreset(...args)\n }\n }\n\n get ['/thermostats/update_weekly_program'](): SeamHttpThermostats['updateWeeklyProgram'] {\n const { client, defaults } = this\n return function thermostatsUpdateWeeklyProgram(\n ...args: Parameters<SeamHttpThermostats['updateWeeklyProgram']>\n ): ReturnType<SeamHttpThermostats['updateWeeklyProgram']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.updateWeeklyProgram(...args)\n }\n }\n\n get ['/thermostats/daily_programs/create'](): SeamHttpThermostatsDailyPrograms['create'] {\n const { client, defaults } = this\n return function thermostatsDailyProgramsCreate(\n ...args: Parameters<SeamHttpThermostatsDailyPrograms['create']>\n ): ReturnType<SeamHttpThermostatsDailyPrograms['create']> {\n const seam = SeamHttpThermostatsDailyPrograms.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/thermostats/daily_programs/delete'](): SeamHttpThermostatsDailyPrograms['delete'] {\n const { client, defaults } = this\n return function thermostatsDailyProgramsDelete(\n ...args: Parameters<SeamHttpThermostatsDailyPrograms['delete']>\n ): ReturnType<SeamHttpThermostatsDailyPrograms['delete']> {\n const seam = SeamHttpThermostatsDailyPrograms.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/thermostats/daily_programs/update'](): SeamHttpThermostatsDailyPrograms['update'] {\n const { client, defaults } = this\n return function thermostatsDailyProgramsUpdate(\n ...args: Parameters<SeamHttpThermostatsDailyPrograms['update']>\n ): ReturnType<SeamHttpThermostatsDailyPrograms['update']> {\n const seam = SeamHttpThermostatsDailyPrograms.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/thermostats/schedules/create'](): SeamHttpThermostatsSchedules['create'] {\n const { client, defaults } = this\n return function thermostatsSchedulesCreate(\n ...args: Parameters<SeamHttpThermostatsSchedules['create']>\n ): ReturnType<SeamHttpThermostatsSchedules['create']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/thermostats/schedules/delete'](): SeamHttpThermostatsSchedules['delete'] {\n const { client, defaults } = this\n return function thermostatsSchedulesDelete(\n ...args: Parameters<SeamHttpThermostatsSchedules['delete']>\n ): ReturnType<SeamHttpThermostatsSchedules['delete']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/thermostats/schedules/get'](): SeamHttpThermostatsSchedules['get'] {\n const { client, defaults } = this\n return function thermostatsSchedulesGet(\n ...args: Parameters<SeamHttpThermostatsSchedules['get']>\n ): ReturnType<SeamHttpThermostatsSchedules['get']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/thermostats/schedules/list'](): SeamHttpThermostatsSchedules['list'] {\n const { client, defaults } = this\n return function thermostatsSchedulesList(\n ...args: Parameters<SeamHttpThermostatsSchedules['list']>\n ): ReturnType<SeamHttpThermostatsSchedules['list']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/thermostats/schedules/update'](): SeamHttpThermostatsSchedules['update'] {\n const { client, defaults } = this\n return function thermostatsSchedulesUpdate(\n ...args: Parameters<SeamHttpThermostatsSchedules['update']>\n ): ReturnType<SeamHttpThermostatsSchedules['update']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/thermostats/simulate/hvac_mode_adjusted'](): SeamHttpThermostatsSimulate['hvacModeAdjusted'] {\n const { client, defaults } = this\n return function thermostatsSimulateHvacModeAdjusted(\n ...args: Parameters<SeamHttpThermostatsSimulate['hvacModeAdjusted']>\n ): ReturnType<SeamHttpThermostatsSimulate['hvacModeAdjusted']> {\n const seam = SeamHttpThermostatsSimulate.fromClient(client, defaults)\n return seam.hvacModeAdjusted(...args)\n }\n }\n\n get ['/thermostats/simulate/temperature_reached'](): SeamHttpThermostatsSimulate['temperatureReached'] {\n const { client, defaults } = this\n return function thermostatsSimulateTemperatureReached(\n ...args: Parameters<SeamHttpThermostatsSimulate['temperatureReached']>\n ): ReturnType<SeamHttpThermostatsSimulate['temperatureReached']> {\n const seam = SeamHttpThermostatsSimulate.fromClient(client, defaults)\n return seam.temperatureReached(...args)\n }\n }\n\n get ['/user_identities/add_acs_user'](): SeamHttpUserIdentities['addAcsUser'] {\n const { client, defaults } = this\n return function userIdentitiesAddAcsUser(\n ...args: Parameters<SeamHttpUserIdentities['addAcsUser']>\n ): ReturnType<SeamHttpUserIdentities['addAcsUser']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.addAcsUser(...args)\n }\n }\n\n get ['/user_identities/create'](): SeamHttpUserIdentities['create'] {\n const { client, defaults } = this\n return function userIdentitiesCreate(\n ...args: Parameters<SeamHttpUserIdentities['create']>\n ): ReturnType<SeamHttpUserIdentities['create']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/user_identities/delete'](): SeamHttpUserIdentities['delete'] {\n const { client, defaults } = this\n return function userIdentitiesDelete(\n ...args: Parameters<SeamHttpUserIdentities['delete']>\n ): ReturnType<SeamHttpUserIdentities['delete']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/user_identities/generate_instant_key'](): SeamHttpUserIdentities['generateInstantKey'] {\n const { client, defaults } = this\n return function userIdentitiesGenerateInstantKey(\n ...args: Parameters<SeamHttpUserIdentities['generateInstantKey']>\n ): ReturnType<SeamHttpUserIdentities['generateInstantKey']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.generateInstantKey(...args)\n }\n }\n\n get ['/user_identities/get'](): SeamHttpUserIdentities['get'] {\n const { client, defaults } = this\n return function userIdentitiesGet(\n ...args: Parameters<SeamHttpUserIdentities['get']>\n ): ReturnType<SeamHttpUserIdentities['get']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/user_identities/grant_access_to_device'](): SeamHttpUserIdentities['grantAccessToDevice'] {\n const { client, defaults } = this\n return function userIdentitiesGrantAccessToDevice(\n ...args: Parameters<SeamHttpUserIdentities['grantAccessToDevice']>\n ): ReturnType<SeamHttpUserIdentities['grantAccessToDevice']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.grantAccessToDevice(...args)\n }\n }\n\n get ['/user_identities/list'](): SeamHttpUserIdentities['list'] {\n const { client, defaults } = this\n return function userIdentitiesList(\n ...args: Parameters<SeamHttpUserIdentities['list']>\n ): ReturnType<SeamHttpUserIdentities['list']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/user_identities/list_accessible_devices'](): SeamHttpUserIdentities['listAccessibleDevices'] {\n const { client, defaults } = this\n return function userIdentitiesListAccessibleDevices(\n ...args: Parameters<SeamHttpUserIdentities['listAccessibleDevices']>\n ): ReturnType<SeamHttpUserIdentities['listAccessibleDevices']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.listAccessibleDevices(...args)\n }\n }\n\n get ['/user_identities/list_acs_systems'](): SeamHttpUserIdentities['listAcsSystems'] {\n const { client, defaults } = this\n return function userIdentitiesListAcsSystems(\n ...args: Parameters<SeamHttpUserIdentities['listAcsSystems']>\n ): ReturnType<SeamHttpUserIdentities['listAcsSystems']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.listAcsSystems(...args)\n }\n }\n\n get ['/user_identities/list_acs_users'](): SeamHttpUserIdentities['listAcsUsers'] {\n const { client, defaults } = this\n return function userIdentitiesListAcsUsers(\n ...args: Parameters<SeamHttpUserIdentities['listAcsUsers']>\n ): ReturnType<SeamHttpUserIdentities['listAcsUsers']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.listAcsUsers(...args)\n }\n }\n\n get ['/user_identities/remove_acs_user'](): SeamHttpUserIdentities['removeAcsUser'] {\n const { client, defaults } = this\n return function userIdentitiesRemoveAcsUser(\n ...args: Parameters<SeamHttpUserIdentities['removeAcsUser']>\n ): ReturnType<SeamHttpUserIdentities['removeAcsUser']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.removeAcsUser(...args)\n }\n }\n\n get ['/user_identities/revoke_access_to_device'](): SeamHttpUserIdentities['revokeAccessToDevice'] {\n const { client, defaults } = this\n return function userIdentitiesRevokeAccessToDevice(\n ...args: Parameters<SeamHttpUserIdentities['revokeAccessToDevice']>\n ): ReturnType<SeamHttpUserIdentities['revokeAccessToDevice']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.revokeAccessToDevice(...args)\n }\n }\n\n get ['/user_identities/update'](): SeamHttpUserIdentities['update'] {\n const { client, defaults } = this\n return function userIdentitiesUpdate(\n ...args: Parameters<SeamHttpUserIdentities['update']>\n ): ReturnType<SeamHttpUserIdentities['update']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/delete'](): SeamHttpUserIdentitiesEnrollmentAutomations['delete'] {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsDelete(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['delete']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['delete']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.delete(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/get'](): SeamHttpUserIdentitiesEnrollmentAutomations['get'] {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsGet(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['get']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['get']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.get(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/launch'](): SeamHttpUserIdentitiesEnrollmentAutomations['launch'] {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsLaunch(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['launch']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['launch']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.launch(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/list'](): SeamHttpUserIdentitiesEnrollmentAutomations['list'] {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsList(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['list']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['list']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.list(...args)\n }\n }\n\n get ['/webhooks/create'](): SeamHttpWebhooks['create'] {\n const { client, defaults } = this\n return function webhooksCreate(\n ...args: Parameters<SeamHttpWebhooks['create']>\n ): ReturnType<SeamHttpWebhooks['create']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/webhooks/delete'](): SeamHttpWebhooks['delete'] {\n const { client, defaults } = this\n return function webhooksDelete(\n ...args: Parameters<SeamHttpWebhooks['delete']>\n ): ReturnType<SeamHttpWebhooks['delete']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/webhooks/get'](): SeamHttpWebhooks['get'] {\n const { client, defaults } = this\n return function webhooksGet(\n ...args: Parameters<SeamHttpWebhooks['get']>\n ): ReturnType<SeamHttpWebhooks['get']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/webhooks/list'](): SeamHttpWebhooks['list'] {\n const { client, defaults } = this\n return function webhooksList(\n ...args: Parameters<SeamHttpWebhooks['list']>\n ): ReturnType<SeamHttpWebhooks['list']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/webhooks/update'](): SeamHttpWebhooks['update'] {\n const { client, defaults } = this\n return function webhooksUpdate(\n ...args: Parameters<SeamHttpWebhooks['update']>\n ): ReturnType<SeamHttpWebhooks['update']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/workspaces/create'](): SeamHttpWorkspaces['create'] {\n const { client, defaults } = this\n return function workspacesCreate(\n ...args: Parameters<SeamHttpWorkspaces['create']>\n ): ReturnType<SeamHttpWorkspaces['create']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/workspaces/get'](): SeamHttpWorkspaces['get'] {\n const { client, defaults } = this\n return function workspacesGet(\n ...args: Parameters<SeamHttpWorkspaces['get']>\n ): ReturnType<SeamHttpWorkspaces['get']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/workspaces/list'](): SeamHttpWorkspaces['list'] {\n const { client, defaults } = this\n return function workspacesList(\n ...args: Parameters<SeamHttpWorkspaces['list']>\n ): ReturnType<SeamHttpWorkspaces['list']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/workspaces/reset_sandbox'](): SeamHttpWorkspaces['resetSandbox'] {\n const { client, defaults } = this\n return function workspacesResetSandbox(\n ...args: Parameters<SeamHttpWorkspaces['resetSandbox']>\n ): ReturnType<SeamHttpWorkspaces['resetSandbox']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.resetSandbox(...args)\n }\n }\n\n get ['/workspaces/update'](): SeamHttpWorkspaces['update'] {\n const { client, defaults } = this\n return function workspacesUpdate(\n ...args: Parameters<SeamHttpWorkspaces['update']>\n ): ReturnType<SeamHttpWorkspaces['update']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n}\n","import { type Client, createClient } from './client.js'\nimport {\n isSeamHttpMultiWorkspaceOptionsWithClient,\n isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n SeamHttpMultiWorkspaceInvalidOptionsError,\n type SeamHttpMultiWorkspaceOptions,\n type SeamHttpMultiWorkspaceOptionsWithClient,\n type SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n type SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from './options.js'\nimport { limitToSeamHttpRequestOptions, parseOptions } from './parse-options.js'\nimport { SeamHttpWorkspaces } from './routes/index.js'\n\nexport class SeamHttpMultiWorkspace {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n\n constructor(options: SeamHttpMultiWorkspaceOptions = {}) {\n const opts = parseOptions(options)\n this.client = 'client' in opts ? opts.client : createClient(opts)\n this.defaults = limitToSeamHttpRequestOptions(opts)\n }\n\n static fromClient(\n client: SeamHttpMultiWorkspaceOptionsWithClient['client'],\n options: Omit<SeamHttpMultiWorkspaceOptionsWithClient, 'client'> = {},\n ): SeamHttpMultiWorkspace {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpMultiWorkspaceOptionsWithClient(constructorOptions)) {\n throw new SeamHttpMultiWorkspaceInvalidOptionsError('Missing client')\n }\n return new SeamHttpMultiWorkspace(constructorOptions)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken['consoleSessionToken'],\n options: Omit<\n SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n 'consoleSessionToken'\n > = {},\n ): SeamHttpMultiWorkspace {\n const constructorOptions = { ...options, consoleSessionToken }\n if (\n !isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken(\n constructorOptions,\n )\n ) {\n throw new SeamHttpMultiWorkspaceInvalidOptionsError(\n 'Missing consoleSessionToken',\n )\n }\n return new SeamHttpMultiWorkspace(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken['personalAccessToken'],\n options: Omit<\n SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n 'personalAccessToken'\n > = {},\n ): SeamHttpMultiWorkspace {\n const constructorOptions = { ...options, personalAccessToken }\n if (\n !isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken(\n constructorOptions,\n )\n ) {\n throw new SeamHttpMultiWorkspaceInvalidOptionsError(\n 'Missing personalAccessToken',\n )\n }\n return new SeamHttpMultiWorkspace(constructorOptions)\n }\n\n get workspaces(): Pick<SeamHttpWorkspaces, 'create' | 'list'> {\n return SeamHttpWorkspaces.fromClient(this.client, this.defaults)\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/lib/lts-version.ts","../src/lib/version.ts","../src/lib/seam/connect/parse-options.ts","../src/lib/seam/connect/options.ts","../src/lib/seam/connect/token.ts","../src/lib/seam/connect/auth.ts","../src/lib/seam/connect/seam-http-error.ts","../src/lib/seam/connect/error-interceptor.ts","../src/lib/seam/connect/client.ts","../src/lib/seam/connect/openapi.ts","../src/lib/seam/connect/resolve-action-attempt.ts","../src/lib/seam/connect/seam-http-request.ts","../src/lib/seam/connect/seam-paginator.ts","../src/lib/seam/connect/routes/client-sessions/client-sessions.ts","../src/lib/seam/connect/routes/access-codes/simulate/simulate.ts","../src/lib/seam/connect/routes/access-codes/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/access-codes/access-codes.ts","../src/lib/seam/connect/routes/access-grants/access-grants.ts","../src/lib/seam/connect/routes/access-methods/access-methods.ts","../src/lib/seam/connect/routes/acs/access-groups/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/acs/access-groups/access-groups.ts","../src/lib/seam/connect/routes/acs/credential-pools/credential-pools.ts","../src/lib/seam/connect/routes/acs/credential-provisioning-automations/credential-provisioning-automations.ts","../src/lib/seam/connect/routes/acs/credentials/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/acs/credentials/credentials.ts","../src/lib/seam/connect/routes/acs/encoders/simulate/simulate.ts","../src/lib/seam/connect/routes/acs/encoders/encoders.ts","../src/lib/seam/connect/routes/acs/entrances/entrances.ts","../src/lib/seam/connect/routes/acs/systems/systems.ts","../src/lib/seam/connect/routes/acs/users/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/acs/users/users.ts","../src/lib/seam/connect/routes/acs/acs.ts","../src/lib/seam/connect/routes/action-attempts/action-attempts.ts","../src/lib/seam/connect/routes/bridges/bridges.ts","../src/lib/seam/connect/routes/connect-webviews/connect-webviews.ts","../src/lib/seam/connect/routes/connected-accounts/connected-accounts.ts","../src/lib/seam/connect/routes/devices/simulate/simulate.ts","../src/lib/seam/connect/routes/devices/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/devices/devices.ts","../src/lib/seam/connect/routes/events/events.ts","../src/lib/seam/connect/routes/locks/simulate/simulate.ts","../src/lib/seam/connect/routes/locks/locks.ts","../src/lib/seam/connect/routes/networks/networks.ts","../src/lib/seam/connect/routes/noise-sensors/noise-thresholds/noise-thresholds.ts","../src/lib/seam/connect/routes/noise-sensors/simulate/simulate.ts","../src/lib/seam/connect/routes/noise-sensors/noise-sensors.ts","../src/lib/seam/connect/routes/phones/simulate/simulate.ts","../src/lib/seam/connect/routes/phones/phones.ts","../src/lib/seam/connect/routes/seam/bridge/v1/bridge-client-sessions/bridge-client-sessions.ts","../src/lib/seam/connect/routes/seam/bridge/v1/bridge-connected-systems/bridge-connected-systems.ts","../src/lib/seam/connect/routes/seam/bridge/v1/v1.ts","../src/lib/seam/connect/routes/seam/instant-key/v1/client-sessions/client-sessions.ts","../src/lib/seam/connect/routes/seam/instant-key/v1/v1.ts","../src/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/credentials/credentials.ts","../src/lib/seam/connect/routes/seam/mobile-sdk/v1/acs/acs.ts","../src/lib/seam/connect/routes/seam/mobile-sdk/v1/phone-sessions/phone-sessions.ts","../src/lib/seam/connect/routes/seam/mobile-sdk/v1/v1.ts","../src/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/spaces.ts","../src/lib/seam/connect/routes/seam/partner/v1/building-blocks/building-blocks.ts","../src/lib/seam/connect/routes/seam/partner/v1/resources/resources.ts","../src/lib/seam/connect/routes/seam/partner/v1/v1.ts","../src/lib/seam/connect/routes/spaces/spaces.ts","../src/lib/seam/connect/routes/thermostats/daily-programs/daily-programs.ts","../src/lib/seam/connect/routes/thermostats/schedules/schedules.ts","../src/lib/seam/connect/routes/thermostats/simulate/simulate.ts","../src/lib/seam/connect/routes/thermostats/thermostats.ts","../src/lib/seam/connect/routes/unstable-access-grants/unstable-access-grants.ts","../src/lib/seam/connect/routes/unstable-access-methods/unstable-access-methods.ts","../src/lib/seam/connect/routes/unstable-locations/unstable-locations.ts","../src/lib/seam/connect/routes/unstable-partner/building-blocks/building-blocks.ts","../src/lib/seam/connect/routes/unstable-partner/resources/resources.ts","../src/lib/seam/connect/routes/unstable-partner/unstable-partner.ts","../src/lib/seam/connect/routes/user-identities/enrollment-automations/enrollment-automations.ts","../src/lib/seam/connect/routes/user-identities/user-identities.ts","../src/lib/seam/connect/routes/webhooks/webhooks.ts","../src/lib/seam/connect/routes/workspaces/workspaces.ts","../src/lib/seam/connect/routes/seam-http.ts","../src/lib/seam/connect/routes/seam-http-endpoints.ts","../src/lib/seam/connect/seam-http-multi-workspace.ts"],"names":["isAxiosError","axios","serializeUrlSearchParams","axiosRetry","exponentialDelay","_parent"],"mappings":"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","file":"connect.cjs","sourcesContent":["export const seamApiLtsVersion = '1.0.0'\n","const seamapiJavascriptHttpVersion = '0.0.0'\n\nexport default seamapiJavascriptHttpVersion\n","import { seamApiLtsVersion } from 'lib/lts-version.js'\nimport version from 'lib/version.js'\n\nimport { getAuthHeaders } from './auth.js'\nimport type { Client, ClientOptions } from './client.js'\nimport {\n isSeamHttpMultiWorkspaceOptionsWithClient,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n SeamHttpInvalidOptionsError,\n type SeamHttpMultiWorkspaceOptions,\n type SeamHttpOptions,\n type SeamHttpRequestOptions,\n} from './options.js'\n\nexport const defaultEndpoint = 'https://connect.getseam.com'\n\nexport const sdkHeaders = {\n 'seam-sdk-name': 'seamapi/javascript-http',\n 'seam-sdk-version': version,\n 'seam-lts-version': seamApiLtsVersion,\n}\n\nexport type Options =\n | SeamHttpMultiWorkspaceOptions\n | (SeamHttpOptions & { publishableKey?: string })\n\ntype ParsedOptions = Required<\n (ClientOptions | { client: Client }) & SeamHttpRequestOptions\n>\n\nexport const parseOptions = (\n apiKeyOrOptions: string | Options,\n): ParsedOptions => {\n const options = getNormalizedOptions(apiKeyOrOptions)\n\n if (isSeamHttpOptionsWithClient(options)) return options\n if (isSeamHttpMultiWorkspaceOptionsWithClient(options)) return options\n\n return {\n ...options,\n axiosOptions: {\n baseURL: options.endpoint ?? getEndpointFromEnv() ?? defaultEndpoint,\n withCredentials: isSeamHttpOptionsWithClientSessionToken(options),\n ...options.axiosOptions,\n headers: {\n ...getAuthHeaders(options),\n ...options.axiosOptions?.headers,\n ...sdkHeaders,\n },\n },\n axiosRetryOptions: {\n ...options.axiosRetryOptions,\n },\n }\n}\n\nconst getNormalizedOptions = (\n apiKeyOrOptions: string | Options,\n): SeamHttpOptions & Required<SeamHttpRequestOptions> => {\n const options =\n typeof apiKeyOrOptions === 'string'\n ? { apiKey: apiKeyOrOptions }\n : apiKeyOrOptions\n\n const requestOptions = {\n isUndocumentedApiEnabled: options.isUndocumentedApiEnabled ?? false,\n waitForActionAttempt: options.waitForActionAttempt ?? true,\n }\n\n if (isSeamHttpOptionsWithClient(options)) {\n return {\n ...options,\n ...requestOptions,\n }\n }\n\n const apiKey =\n 'apiKey' in options ? options.apiKey : getApiKeyFromEnv(options)\n\n const personalAccessToken =\n 'personalAccessToken' in options\n ? options.personalAccessToken\n : getPersonalAccessTokenFromEnv(options)\n\n const workspaceId =\n 'workspaceId' in options ? options.workspaceId : getWorkspaceIdFromEnv()\n\n if (\n apiKey != null &&\n personalAccessToken != null &&\n !('apiKey' in options) &&\n !('personalAccessToken' in options)\n ) {\n throw new SeamHttpInvalidOptionsError(\n 'Both SEAM_API_KEY and SEAM_PERSONAL_ACCESS_TOKEN environment variables are defined. Please use only one authentication method.',\n )\n }\n\n return {\n ...options,\n ...(apiKey != null ? { apiKey } : {}),\n ...(workspaceId != null ? { workspaceId } : {}),\n ...(personalAccessToken != null ? { personalAccessToken } : {}),\n ...requestOptions,\n }\n}\n\nconst getApiKeyFromEnv = (\n options: SeamHttpOptions,\n): string | null | undefined => {\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n return null\n }\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n return null\n }\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n return null\n }\n return globalThis.process?.env?.SEAM_API_KEY\n}\n\nconst getPersonalAccessTokenFromEnv = (\n options: SeamHttpOptions,\n): string | null | undefined => {\n if ('apiKey' in options && options.apiKey != null) {\n return null\n }\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n return null\n }\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n return null\n }\n return globalThis.process?.env?.SEAM_PERSONAL_ACCESS_TOKEN\n}\n\nconst getWorkspaceIdFromEnv = (): string | null | undefined => {\n return globalThis.process?.env?.SEAM_WORKSPACE_ID\n}\n\nconst getEndpointFromEnv = (): string | null | undefined => {\n if (globalThis.process?.env?.SEAM_API_URL != null) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Using the SEAM_API_URL environment variable is deprecated. Support will be remove in a later major version. Use SEAM_ENDPOINT instead.',\n )\n }\n\n if (\n globalThis.process?.env?.SEAM_API_URL != null &&\n globalThis.process?.env?.SEAM_ENDPOINT != null\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Detected both the SEAM_API_URL and SEAM_ENDPOINT environment variables. Using SEAM_ENDPOINT.',\n )\n }\n\n return (\n globalThis.process?.env?.SEAM_ENDPOINT ??\n globalThis.process?.env?.SEAM_API_URL\n )\n}\n\nexport const limitToSeamHttpRequestOptions = (\n options: Required<SeamHttpRequestOptions>,\n): Required<SeamHttpRequestOptions> => {\n return Object.keys(options)\n .filter(isSeamHttpRequestOption)\n .reduce(\n (obj, key) => ({\n ...obj,\n [key]: options[key],\n }),\n {},\n ) as Required<SeamHttpRequestOptions>\n}\n\nexport const isSeamHttpRequestOption = (\n key: string,\n): key is keyof SeamHttpRequestOptions => {\n const keys: Record<keyof SeamHttpRequestOptions, true> = {\n isUndocumentedApiEnabled: true,\n waitForActionAttempt: true,\n }\n return Object.keys(keys).includes(key)\n}\n","import type { Client, ClientOptions } from './client.js'\nimport { isSeamHttpRequestOption } from './parse-options.js'\nimport type { ResolveActionAttemptOptions } from './resolve-action-attempt.js'\n\nexport type SeamHttpMultiWorkspaceOptions =\n | SeamHttpMultiWorkspaceOptionsFromEnv\n | SeamHttpMultiWorkspaceOptionsWithClient\n | SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken\n | SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken\n\nexport type SeamHttpOptions =\n | SeamHttpOptionsFromEnv\n | SeamHttpOptionsWithClient\n | SeamHttpOptionsWithApiKey\n | SeamHttpOptionsWithClientSessionToken\n | SeamHttpOptionsWithConsoleSessionToken\n | SeamHttpOptionsWithPersonalAccessToken\n\ninterface SeamHttpCommonOptions extends ClientOptions, SeamHttpRequestOptions {\n endpoint?: string\n}\n\nexport interface SeamHttpRequestOptions {\n waitForActionAttempt?: boolean | ResolveActionAttemptOptions\n isUndocumentedApiEnabled?: boolean\n}\n\nexport interface SeamHttpFromPublishableKeyOptions\n extends SeamHttpCommonOptions {}\n\nexport interface SeamHttpOptionsFromEnv extends SeamHttpCommonOptions {}\n\nexport interface SeamHttpMultiWorkspaceOptionsFromEnv\n extends SeamHttpCommonOptions {}\n\nexport interface SeamHttpMultiWorkspaceOptionsWithClient\n extends SeamHttpCommonOptions {\n client: Client\n}\n\nexport const isSeamHttpMultiWorkspaceOptionsWithClient = (\n options: SeamHttpOptions,\n): options is SeamHttpMultiWorkspaceOptionsWithClient =>\n isSeamHttpOptionsWithClient(options)\n\nexport interface SeamHttpOptionsWithClient extends SeamHttpRequestOptions {\n client: Client\n}\n\nexport const isSeamHttpOptionsWithClient = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithClient => {\n if (!('client' in options)) return false\n if (options.client == null) return false\n\n const keys = Object.keys(options).filter((k) => k !== 'client')\n if (keys.filter((k) => !isSeamHttpRequestOption(k)).length > 0) {\n throw new SeamHttpInvalidOptionsError(\n `The client option cannot be used with any other option, but received: ${keys.join(\n ', ',\n )}`,\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithApiKey extends SeamHttpCommonOptions {\n apiKey: string\n}\n\nexport const isSeamHttpOptionsWithApiKey = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithApiKey => {\n if (!('apiKey' in options)) return false\n if (options.apiKey == null) return false\n\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The clientSessionToken option cannot be used with the apiKey option',\n )\n }\n\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The consoleSessionToken option cannot be used with the apiKey option',\n )\n }\n\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The personalAccessToken option cannot be used with the apiKey option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithClientSessionToken\n extends SeamHttpCommonOptions {\n clientSessionToken: string\n}\n\nexport const isSeamHttpOptionsWithClientSessionToken = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithClientSessionToken => {\n if (!('clientSessionToken' in options)) return false\n if (options.clientSessionToken == null) return false\n\n if ('apiKey' in options && options.apiKey != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The apiKey option cannot be used with the clientSessionToken option',\n )\n }\n\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The consoleSessionToken option cannot be used with the clientSessionToken option',\n )\n }\n\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The personalAccessToken option cannot be used with the clientSessionToken option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken\n extends SeamHttpCommonOptions {\n consoleSessionToken: string\n}\n\nexport const isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken = (\n options: SeamHttpOptions,\n): options is SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken => {\n if (!('consoleSessionToken' in options)) return false\n if (options.consoleSessionToken == null) return false\n\n if ('apiKey' in options && options.apiKey != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The apiKey option cannot be used with the consoleSessionToken option',\n )\n }\n\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The clientSessionToken option cannot be used with the consoleSessionToken option',\n )\n }\n\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The personalAccessToken option cannot be used with the consoleSessionToken option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithConsoleSessionToken\n extends SeamHttpCommonOptions {\n consoleSessionToken: string\n workspaceId: string\n}\n\nexport const isSeamHttpOptionsWithConsoleSessionToken = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithConsoleSessionToken => {\n if (!isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken(options)) {\n return false\n }\n\n if (!('workspaceId' in options) || options.workspaceId == null) {\n throw new SeamHttpInvalidOptionsError(\n 'Must pass a workspaceId when using a consoleSessionToken',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken\n extends SeamHttpCommonOptions {\n personalAccessToken: string\n}\n\nexport const isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken = (\n options: SeamHttpOptions,\n): options is SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken => {\n if (!('personalAccessToken' in options)) return false\n if (options.personalAccessToken == null) return false\n\n if ('apiKey' in options && options.apiKey != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The apiKey option cannot be used with the personalAccessToken option',\n )\n }\n\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The clientSessionToken option cannot be used with the personalAccessToken option',\n )\n }\n\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The consoleSessionToken option cannot be used with the personalAccessToken option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithPersonalAccessToken\n extends SeamHttpCommonOptions {\n personalAccessToken: string\n workspaceId: string\n}\n\nexport const isSeamHttpOptionsWithPersonalAccessToken = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithPersonalAccessToken => {\n if (!isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken(options)) {\n return false\n }\n\n if (!('workspaceId' in options) || options.workspaceId == null) {\n throw new SeamHttpInvalidOptionsError(\n 'Must pass a workspaceId when using a personalAccessToken',\n )\n }\n\n return true\n}\n\nexport class SeamHttpInvalidOptionsError extends Error {\n constructor(message: string) {\n super(`SeamHttp received invalid options: ${message}`)\n this.name = this.constructor.name\n }\n}\n\nexport class SeamHttpMultiWorkspaceInvalidOptionsError extends Error {\n constructor(message: string) {\n super(`SeamHttpMultiWorkspace received invalid options: ${message}`)\n this.name = this.constructor.name\n }\n}\n","export const tokenPrefix = 'seam_'\n\nexport const accessTokenPrefix = 'seam_at'\n\nexport const jwtPrefix = 'ey'\n\nexport const clientSessionTokenPrefix = 'seam_cst'\n\nexport const publishableKeyTokenPrefix = 'seam_pk'\n\nexport const isAccessToken = (token: string): boolean =>\n token.startsWith(accessTokenPrefix)\n\nexport const isJwt = (token: string): boolean => token.startsWith(jwtPrefix)\n\nexport const isSeamToken = (token: string): boolean =>\n token.startsWith(tokenPrefix)\n\nexport const isApiKey = (token: string): boolean =>\n !isClientSessionToken(token) &&\n !isJwt(token) &&\n !isAccessToken(token) &&\n !isPublishableKey(token) &&\n isSeamToken(token)\n\nexport const isClientSessionToken = (token: string): boolean =>\n token.startsWith(clientSessionTokenPrefix)\n\nexport const isPublishableKey = (token: string): boolean =>\n token.startsWith(publishableKeyTokenPrefix)\n\nexport const isConsoleSessionToken = (token: string): boolean => isJwt(token)\n\nexport const isPersonalAccessToken = (token: string): boolean =>\n isAccessToken(token)\n","import {\n isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n SeamHttpInvalidOptionsError,\n type SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n type SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n} from './options.js'\nimport type { Options } from './parse-options.js'\nimport {\n accessTokenPrefix,\n clientSessionTokenPrefix,\n isAccessToken,\n isClientSessionToken,\n isJwt,\n isPublishableKey,\n isSeamToken,\n jwtPrefix,\n publishableKeyTokenPrefix,\n tokenPrefix,\n} from './token.js'\n\ntype Headers = Record<string, string>\n\nexport const getAuthHeaders = (options: Options): Headers => {\n if ('publishableKey' in options && options.publishableKey != null) {\n return getAuthHeadersForPublishableKey(options.publishableKey)\n }\n\n if (isSeamHttpOptionsWithApiKey(options)) {\n return getAuthHeadersForApiKey(options)\n }\n\n if (isSeamHttpOptionsWithClientSessionToken(options)) {\n return getAuthHeadersForClientSessionToken(options)\n }\n\n if (\n isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken(options) ||\n isSeamHttpOptionsWithConsoleSessionToken(options)\n ) {\n return getAuthHeadersForConsoleSessionToken(options)\n }\n\n if (\n isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken(options) ||\n isSeamHttpOptionsWithPersonalAccessToken(options)\n ) {\n return getAuthHeadersForPersonalAccessToken(options)\n }\n\n throw new SeamHttpInvalidOptionsError(\n [\n 'Must specify',\n 'an apiKey,',\n 'clientSessionToken,',\n 'publishableKey,',\n 'consoleSessionToken',\n 'or personalAccessToken.',\n 'Attempted reading configuration from the environment, but the environment variable SEAM_API_KEY is not set.',\n ].join(' '),\n )\n}\n\nconst getAuthHeadersForApiKey = ({\n apiKey,\n}: SeamHttpOptionsWithApiKey): Headers => {\n if (isClientSessionToken(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token cannot be used as an apiKey',\n )\n }\n\n if (isJwt(apiKey)) {\n throw new SeamHttpInvalidTokenError('A JWT cannot be used as an apiKey')\n }\n\n if (isAccessToken(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as an apiKey',\n )\n }\n\n if (isPublishableKey(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as an apiKey',\n )\n }\n\n if (!isSeamToken(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid apiKey format, expected token to start with ${tokenPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${apiKey}`,\n }\n}\n\nexport const getAuthHeadersForClientSessionToken = ({\n clientSessionToken,\n}: SeamHttpOptionsWithClientSessionToken): Headers => {\n if (isJwt(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A JWT cannot be used as a clientSessionToken',\n )\n }\n\n if (isAccessToken(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as a clientSessionToken',\n )\n }\n\n if (isPublishableKey(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as a clientSessionToken',\n )\n }\n\n if (!isClientSessionToken(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid clientSessionToken format, expected token to start with ${clientSessionTokenPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${clientSessionToken}`,\n 'client-session-token': clientSessionToken,\n }\n}\n\nconst getAuthHeadersForConsoleSessionToken = ({\n consoleSessionToken,\n ...options\n}:\n | SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken\n | SeamHttpOptionsWithConsoleSessionToken): Headers => {\n const workspaceId = 'workspaceId' in options ? options.workspaceId : undefined\n\n if (isAccessToken(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as a consoleSessionToken',\n )\n }\n\n if (isClientSessionToken(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token cannot be used as a consoleSessionToken',\n )\n }\n\n if (isPublishableKey(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as a consoleSessionToken',\n )\n }\n\n if (!isJwt(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid consoleSessionToken format, expected a JWT which starts with ${jwtPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${consoleSessionToken}`,\n ...(workspaceId != null ? { 'seam-workspace': workspaceId } : {}),\n }\n}\n\nconst getAuthHeadersForPersonalAccessToken = ({\n personalAccessToken,\n ...options\n}:\n | SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken\n | SeamHttpOptionsWithPersonalAccessToken): Headers => {\n const workspaceId = 'workspaceId' in options ? options.workspaceId : undefined\n\n if (isJwt(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A JWT cannot be used as a personalAccessToken',\n )\n }\n\n if (isClientSessionToken(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token cannot be used as a personalAccessToken',\n )\n }\n\n if (isPublishableKey(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as a personalAccessToken',\n )\n }\n\n if (!isAccessToken(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid personalAccessToken format, expected token to start with ${accessTokenPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${personalAccessToken}`,\n ...(workspaceId != null ? { 'seam-workspace': workspaceId } : {}),\n }\n}\n\nconst getAuthHeadersForPublishableKey = (publishableKey: string): Headers => {\n if (isJwt(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A JWT cannot be used as a publishableKey',\n )\n }\n\n if (isAccessToken(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as a publishableKey',\n )\n }\n\n if (isClientSessionToken(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token Key cannot be used as a publishableKey',\n )\n }\n\n if (!isPublishableKey(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid publishableKey format, expected token to start with ${publishableKeyTokenPrefix}`,\n )\n }\n\n return {\n 'seam-publishable-key': publishableKey,\n }\n}\n\nexport class SeamHttpInvalidTokenError extends Error {\n constructor(message: string) {\n super(`SeamHttp received an invalid token: ${message}`)\n this.name = this.constructor.name\n }\n}\n\nexport const warnOnInsecureuserIdentifierKey = (\n userIdentifierKey: string,\n): void => {\n if (isEmail(userIdentifierKey)) {\n // eslint-disable-next-line no-console\n console.warn(\n ...[\n 'Using an email for the userIdentifierKey is insecure and may return an error in the future!',\n 'This is insecure because an email is common knowledge or easily guessed.',\n 'Use something with sufficient entropy known only to the owner of the client session.',\n 'For help choosing a user identifier key see',\n 'https://docs.seam.co/latest/seam-components/overview/get-started-with-client-side-components#3-select-a-user-identifier-key',\n ],\n )\n }\n}\n\n// SOURCE: https://stackoverflow.com/a/46181\nconst isEmail = (value: string): boolean => {\n if (value.includes('!')) return false\n // The regex may run slow on strings starting with '!@!.' and with many repetitions of '!.'.\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)\n}\n","import type { ApiError } from './api-error-types.js'\n\nexport class SeamHttpApiError extends Error {\n code: string\n statusCode: number\n requestId: string\n data?: unknown\n\n constructor(error: ApiError, statusCode: number, requestId: string) {\n const { type, message, data } = error\n super(message)\n this.name = this.constructor.name\n this.code = type\n this.statusCode = statusCode\n this.requestId = requestId\n if (data != null) this.data = data\n }\n}\n\nexport const isSeamHttpApiError = (\n error: unknown,\n): error is SeamHttpApiError => {\n return error instanceof SeamHttpApiError\n}\n\nexport class SeamHttpUnauthorizedError extends SeamHttpApiError {\n override code: 'unauthorized'\n override statusCode: 401\n\n constructor(requestId: string) {\n const type = 'unauthorized'\n const status = 401\n super({ type, message: 'Unauthorized' }, status, requestId)\n this.name = this.constructor.name\n this.code = type\n this.statusCode = status\n this.requestId = requestId\n }\n}\n\nexport const isSeamHttpUnauthorizedError = (\n error: unknown,\n): error is SeamHttpUnauthorizedError => {\n return error instanceof SeamHttpUnauthorizedError\n}\n\nexport class SeamHttpInvalidInputError extends SeamHttpApiError {\n override code: 'invalid_input'\n readonly #validationErrors: NonNullable<ApiError['validation_errors']>\n\n constructor(error: ApiError, statusCode: number, requestId: string) {\n super(error, statusCode, requestId)\n this.name = this.constructor.name\n this.code = 'invalid_input'\n this.#validationErrors = error.validation_errors ?? {}\n }\n\n getValidationErrorMessages(paramName: string): string[] {\n return this.#validationErrors[paramName]?._errors ?? []\n }\n}\n\nexport const isSeamHttpInvalidInputError = (\n error: unknown,\n): error is SeamHttpInvalidInputError => {\n return error instanceof SeamHttpInvalidInputError\n}\n","import { type AxiosError, isAxiosError } from 'axios'\n\nimport type { ApiErrorResponse } from './api-error-types.js'\nimport {\n SeamHttpApiError,\n SeamHttpInvalidInputError,\n SeamHttpUnauthorizedError,\n} from './seam-http-error.js'\n\nexport const errorInterceptor = async (err: unknown): Promise<void> => {\n if (!isAxiosError(err)) throw err\n\n const { response } = err\n const status = response?.status\n\n const requestId = getRequestId(err)\n\n if (status == null) throw err\n\n if (status === 401) {\n throw new SeamHttpUnauthorizedError(requestId)\n }\n\n if (!isApiErrorResponse(response)) throw err\n\n const { type } = response.data.error\n\n const args = [response.data.error, status, requestId] as const\n\n if (type === 'invalid_input') throw new SeamHttpInvalidInputError(...args)\n throw new SeamHttpApiError(...args)\n}\n\nconst isApiErrorResponse = (\n response: AxiosError['response'],\n): response is NonNullable<AxiosError<ApiErrorResponse>['response']> => {\n if (response == null) return false\n const { headers, data } = response\n\n if (headers == null) return false\n\n const contentType = headers['Content-Type']\n if (\n typeof contentType === 'string' &&\n !contentType.startsWith('application/json')\n ) {\n return false\n }\n\n if (typeof data === 'object' && data != null) {\n return (\n 'error' in data &&\n typeof data.error === 'object' &&\n data.error != null &&\n 'type' in data.error &&\n typeof data.error.type === 'string' &&\n 'message' in data.error &&\n typeof data.error.message === 'string'\n )\n }\n\n return false\n}\n\nconst getRequestId = (err: AxiosError): string => {\n const headers = err.response?.headers\n if (headers == null) return ''\n const requestId = headers['seam-request-id']\n if (requestId == null) return ''\n return requestId\n}\n","import { serializeUrlSearchParams } from '@seamapi/url-search-params-serializer'\nimport axios, { type AxiosInstance, type AxiosRequestConfig } from 'axios'\nimport axiosRetry, { type AxiosRetry, exponentialDelay } from 'axios-retry'\n\nimport { errorInterceptor } from './error-interceptor.js'\n\nexport type Client = AxiosInstance\n\nexport interface ClientOptions {\n axiosOptions?: AxiosRequestConfig\n axiosRetryOptions?: AxiosRetryConfig\n}\n\ntype AxiosRetryConfig = Parameters<AxiosRetry>[1]\n\nexport const createClient = (options: ClientOptions): AxiosInstance => {\n const client = axios.create({\n paramsSerializer: serializeUrlSearchParams,\n adapter: 'fetch',\n ...options.axiosOptions,\n })\n\n axiosRetry(client, {\n retries: 2,\n retryDelay: exponentialDelay,\n ...options.axiosRetryOptions,\n })\n\n client.interceptors.response.use(undefined, errorInterceptor)\n\n return client\n}\n","import type { openapi } from '@seamapi/types/connect'\n\nimport { createClient } from './client.js'\nimport { defaultEndpoint, sdkHeaders } from './parse-options.js'\n\nexport const getOpenapiSchema = async (\n endpoint = defaultEndpoint,\n): Promise<typeof openapi> => {\n const client = createClient({\n axiosOptions: {\n baseURL: endpoint,\n headers: sdkHeaders,\n },\n })\n const { data } = await client.get<typeof openapi>('/openapi.json')\n return data\n}\n","import type { ActionAttempt } from '@seamapi/types/connect'\n\nimport type { SeamHttpActionAttempts } from './routes/index.js'\n\nexport interface ResolveActionAttemptOptions {\n timeout?: number\n pollingInterval?: number\n}\n\nexport const resolveActionAttempt = async <T extends ActionAttempt>(\n actionAttempt: T,\n actionAttempts: SeamHttpActionAttempts,\n { timeout = 5000, pollingInterval = 500 }: ResolveActionAttemptOptions,\n): Promise<SucceededActionAttempt<T>> => {\n let timeoutRef\n const timeoutPromise = new Promise<SucceededActionAttempt<T>>(\n (_resolve, reject) => {\n timeoutRef = globalThis.setTimeout(() => {\n reject(new SeamActionAttemptTimeoutError<T>(actionAttempt, timeout))\n }, timeout)\n },\n )\n\n try {\n return await Promise.race([\n pollActionAttempt<T>(actionAttempt, actionAttempts, { pollingInterval }),\n timeoutPromise,\n ])\n } finally {\n if (timeoutRef != null) globalThis.clearTimeout(timeoutRef)\n }\n}\n\nconst pollActionAttempt = async <T extends ActionAttempt>(\n actionAttempt: T,\n actionAttempts: SeamHttpActionAttempts,\n options: Pick<ResolveActionAttemptOptions, 'pollingInterval'>,\n): Promise<SucceededActionAttempt<T>> => {\n if (isSuccessfulActionAttempt(actionAttempt)) {\n return actionAttempt\n }\n\n if (isFailedActionAttempt(actionAttempt)) {\n throw new SeamActionAttemptFailedError(actionAttempt)\n }\n\n await new Promise((resolve) => setTimeout(resolve, options.pollingInterval))\n\n const nextActionAttempt = await actionAttempts.get({\n action_attempt_id: actionAttempt.action_attempt_id,\n })\n\n return await pollActionAttempt(\n nextActionAttempt as unknown as T,\n actionAttempts,\n options,\n )\n}\n\nexport const isSeamActionAttemptError = <T extends ActionAttempt>(\n error: unknown,\n): error is SeamActionAttemptError<T> => {\n return error instanceof SeamActionAttemptError\n}\n\nexport class SeamActionAttemptError<T extends ActionAttempt> extends Error {\n actionAttempt: T\n\n constructor(message: string, actionAttempt: T) {\n super(message)\n this.name = this.constructor.name\n this.actionAttempt = actionAttempt\n }\n}\n\nexport const isSeamActionAttemptFailedError = <T extends ActionAttempt>(\n error: unknown,\n): error is SeamActionAttemptFailedError<T> => {\n return error instanceof SeamActionAttemptFailedError\n}\n\nexport class SeamActionAttemptFailedError<\n T extends ActionAttempt,\n> extends SeamActionAttemptError<T> {\n code: string\n\n constructor(actionAttempt: FailedActionAttempt<T>) {\n super(actionAttempt.error.message, actionAttempt)\n this.name = this.constructor.name\n this.code = actionAttempt.error.type\n }\n}\n\nexport const isSeamActionAttemptTimeoutError = <T extends ActionAttempt>(\n error: unknown,\n): error is SeamActionAttemptTimeoutError<T> => {\n return error instanceof SeamActionAttemptTimeoutError\n}\n\nexport class SeamActionAttemptTimeoutError<\n T extends ActionAttempt,\n> extends SeamActionAttemptError<T> {\n constructor(actionAttempt: T, timeout: number) {\n super(\n `Timed out waiting for action action attempt after ${timeout}ms`,\n actionAttempt,\n )\n this.name = this.constructor.name\n }\n}\n\nconst isSuccessfulActionAttempt = <T extends ActionAttempt>(\n actionAttempt: T,\n): actionAttempt is SucceededActionAttempt<T> =>\n actionAttempt.status === 'success'\n\nconst isFailedActionAttempt = <T extends ActionAttempt>(\n actionAttempt: T,\n): actionAttempt is FailedActionAttempt<T> => actionAttempt.status === 'error'\n\nexport type SucceededActionAttempt<T extends ActionAttempt> = Extract<\n T,\n { status: 'success' }\n>\n\nexport type FailedActionAttempt<T extends ActionAttempt> = Extract<\n T,\n { status: 'error' }\n>\n","import type { ActionAttempt } from '@seamapi/types/connect'\nimport { serializeUrlSearchParams } from '@seamapi/url-search-params-serializer'\nimport type { Method } from 'axios'\n\nimport type { Client } from './client.js'\nimport type { SeamHttpRequestOptions } from './options.js'\nimport { resolveActionAttempt } from './resolve-action-attempt.js'\nimport { SeamHttpActionAttempts } from './routes/index.js'\n\ninterface SeamHttpRequestParent {\n readonly client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n}\n\ninterface SeamHttpRequestConfig<TResponseKey> {\n readonly pathname: string\n readonly method: Method\n readonly body?: unknown\n readonly params?: undefined | Record<string, unknown>\n readonly responseKey: TResponseKey\n readonly options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>\n}\n\nexport class SeamHttpRequest<\n const TResponse,\n const TResponseKey extends keyof TResponse | undefined,\n> implements\n Promise<\n TResponseKey extends keyof TResponse ? TResponse[TResponseKey] : undefined\n >\n{\n readonly [Symbol.toStringTag]: string = 'SeamHttpRequest'\n\n readonly #parent: SeamHttpRequestParent\n readonly #config: SeamHttpRequestConfig<TResponseKey>\n\n constructor(\n parent: SeamHttpRequestParent,\n config: SeamHttpRequestConfig<TResponseKey>,\n ) {\n this.#parent = parent\n this.#config = config\n }\n\n public get responseKey(): TResponseKey {\n return this.#config.responseKey\n }\n\n public get url(): URL {\n const { client } = this.#parent\n\n const serializer =\n typeof client.defaults.paramsSerializer === 'function'\n ? client.defaults.paramsSerializer\n : serializeUrlSearchParams\n\n const origin = getUrlPrefix(client.defaults.baseURL ?? '')\n\n const path =\n this.params == null\n ? this.pathname\n : `${this.pathname}?${serializer(this.params)}`\n\n return new URL(`${origin}${path}`)\n }\n\n public get pathname(): string {\n return this.#config.pathname.startsWith('/')\n ? this.#config.pathname\n : `/${this.#config.pathname}`\n }\n\n public get method(): Method {\n return this.#config.method\n }\n\n public get params(): undefined | Record<string, unknown> {\n return this.#config.params\n }\n\n public get body(): unknown {\n return this.#config.body\n }\n\n async execute(): Promise<\n TResponseKey extends keyof TResponse ? TResponse[TResponseKey] : undefined\n > {\n const response = await this.fetchResponse()\n\n type Response = TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined\n\n if (this.responseKey === undefined) {\n return undefined as Response\n }\n\n const data = response[this.responseKey] as unknown as Response\n\n if (this.responseKey === 'action_attempt') {\n const waitForActionAttempt =\n this.#config.options?.waitForActionAttempt ??\n this.#parent.defaults.waitForActionAttempt\n\n if (waitForActionAttempt !== false) {\n const actionAttempt = await resolveActionAttempt(\n data as unknown as ActionAttempt,\n SeamHttpActionAttempts.fromClient(this.#parent.client, {\n ...this.#parent.defaults,\n waitForActionAttempt: false,\n }),\n typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt,\n )\n return actionAttempt as Response\n }\n }\n\n return data\n }\n\n async fetchResponse(): Promise<TResponse> {\n const { client } = this.#parent\n const response = await client.request({\n url: this.pathname,\n method: this.method,\n data: this.body,\n params: this.params,\n })\n return response.data as unknown as TResponse\n }\n\n async then<\n TResult1 = TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined,\n TResult2 = never,\n >(\n onfulfilled?:\n | ((\n value: TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined,\n ) => TResult1 | PromiseLike<TResult1>)\n | null\n | undefined,\n onrejected?:\n | ((reason: unknown) => TResult2 | PromiseLike<TResult2>)\n | null\n | undefined,\n ): Promise<TResult1 | TResult2> {\n return await this.execute().then(onfulfilled, onrejected)\n }\n\n async catch<TResult = never>(\n onrejected?:\n | ((reason: unknown) => TResult | PromiseLike<TResult>)\n | null\n | undefined,\n ): Promise<\n | (TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined)\n | TResult\n > {\n return await this.execute().catch(onrejected)\n }\n\n async finally(\n onfinally?: (() => void) | null | undefined,\n ): Promise<\n TResponseKey extends keyof TResponse ? TResponse[TResponseKey] : undefined\n > {\n return await this.execute().finally(onfinally)\n }\n}\n\nconst getUrlPrefix = (input: string): string => {\n if (canParseUrl(input)) {\n const url = new URL(input).toString()\n if (url.endsWith('/')) return url.slice(0, -1)\n return url\n }\n if (globalThis.location != null) {\n const pathname = input.startsWith('/') ? input : `/${input}`\n return new URL(`${globalThis.location.origin}${pathname}`).toString()\n }\n throw new Error(\n `Cannot resolve origin from ${input} in a non-browser environment`,\n )\n}\n\n// UPSTREAM: Prefer URL.canParse when it has wider support.\n// https://caniuse.com/mdn-api_url_canparse_static\nconst canParseUrl = (input: string): boolean => {\n try {\n return new URL(input) != null\n } catch {\n return false\n }\n}\n","import type { Client } from './client.js'\nimport type { SeamHttpRequestOptions } from './options.js'\nimport { SeamHttpRequest } from './seam-http-request.js'\n\ninterface SeamPaginatorParent {\n readonly client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n}\n\ndeclare const $brand: unique symbol\n\ntype PageCursor = string & { [$brand]: 'SeamPageCursor' }\n\ninterface Pagination {\n readonly hasNextPage: boolean\n readonly nextPageCursor: PageCursor | null\n readonly nextPageUrl: string | null\n}\n\nexport class SeamPaginator<\n const TResponse,\n const TResponseKey extends keyof TResponse,\n> implements AsyncIterable<EnsureReadonlyArray<TResponse[TResponseKey]>>\n{\n readonly #request: SeamHttpRequest<TResponse, TResponseKey>\n readonly #parent: SeamPaginatorParent\n\n constructor(\n parent: SeamPaginatorParent,\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ) {\n if (request.responseKey == null) {\n throw new Error(\n `The ${request.pathname} endpoint does not support pagination`,\n )\n }\n this.#parent = parent\n this.#request = request\n }\n\n async firstPage(): Promise<\n [EnsureReadonlyArray<TResponse[TResponseKey]>, Pagination]\n > {\n return await this.#fetch()\n }\n\n async nextPage(\n nextPageCursor: Pagination['nextPageCursor'],\n ): Promise<[EnsureReadonlyArray<TResponse[TResponseKey]>, Pagination]> {\n if (nextPageCursor == null) {\n throw new Error('Cannot get the next page with a null nextPageCursor')\n }\n\n return await this.#fetch(nextPageCursor)\n }\n\n async #fetch(\n nextPageCursor?: Pagination['nextPageCursor'],\n ): Promise<[EnsureReadonlyArray<TResponse[TResponseKey]>, Pagination]> {\n const responseKey = this.#request.responseKey\n\n if (responseKey == null) {\n throw new Error('Cannot paginate a response without a responseKey')\n }\n\n const request = new SeamHttpRequest<TResponse, TResponseKey>(this.#parent, {\n pathname: this.#request.pathname,\n method: this.#request.method,\n responseKey,\n params:\n this.#request.params != null\n ? { ...this.#request.params, page_cursor: nextPageCursor }\n : undefined,\n body:\n this.#request.body != null\n ? { ...this.#request.body, page_cursor: nextPageCursor }\n : undefined,\n })\n\n const response = await request.fetchResponse()\n const data = response[responseKey]\n\n const paginationData =\n response != null &&\n typeof response === 'object' &&\n 'pagination' in response\n ? (response.pagination as PaginationData)\n : null\n\n const pagination: Pagination = {\n hasNextPage: paginationData?.has_next_page ?? false,\n nextPageCursor: paginationData?.next_page_cursor ?? null,\n nextPageUrl: paginationData?.next_page_url ?? null,\n }\n\n if (!Array.isArray(data)) {\n throw new Error(\n `Expected an array response for ${String(responseKey)} but got ${String(typeof data)}`,\n )\n }\n\n return [\n data as EnsureReadonlyArray<TResponse[TResponseKey]>,\n pagination,\n ] as const\n }\n\n async flattenToArray(): Promise<\n EnsureReadonlyArray<TResponse[TResponseKey]>\n > {\n const items = [] as EnsureMutableArray<TResponse[TResponseKey]>\n let [current, pagination] = await this.firstPage()\n items.push(...current)\n while (pagination.hasNextPage) {\n ;[current, pagination] = await this.nextPage(pagination.nextPageCursor)\n items.push(...current)\n }\n return items as EnsureReadonlyArray<TResponse[TResponseKey]>\n }\n\n async *flatten(): AsyncGenerator<\n EnsureReadonlyArray<TResponse[TResponseKey]>\n > {\n let [current, pagination] = await this.firstPage()\n for (const item of current) {\n yield item\n }\n while (pagination.hasNextPage) {\n ;[current, pagination] = await this.nextPage(pagination.nextPageCursor)\n for (const item of current) {\n yield item\n }\n }\n }\n\n async *[Symbol.asyncIterator](): AsyncGenerator<\n EnsureReadonlyArray<TResponse[TResponseKey]>\n > {\n let [current, pagination] = await this.firstPage()\n yield current\n while (pagination.hasNextPage) {\n ;[current, pagination] = await this.nextPage(pagination.nextPageCursor)\n yield current\n }\n }\n}\n\ntype EnsureReadonlyArray<T> = T extends readonly any[] ? T : never\ntype EnsureMutableArray<T> = T extends any[] ? T : never\n\ninterface PaginationData {\n has_next_page: boolean\n next_page_cursor: PageCursor | null\n next_page_url: string | null\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpClientSessions {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpClientSessions> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpClientSessions.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpClientSessions.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: ClientSessionsCreateParameters,\n options: ClientSessionsCreateOptions = {},\n ): ClientSessionsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/create',\n method: 'PUT',\n body: parameters,\n responseKey: 'client_session',\n options,\n })\n }\n\n delete(\n parameters?: ClientSessionsDeleteParameters,\n options: ClientSessionsDeleteOptions = {},\n ): ClientSessionsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ClientSessionsGetParameters,\n options: ClientSessionsGetOptions = {},\n ): ClientSessionsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/get',\n method: 'POST',\n body: parameters,\n responseKey: 'client_session',\n options,\n })\n }\n\n getOrCreate(\n parameters?: ClientSessionsGetOrCreateParameters,\n options: ClientSessionsGetOrCreateOptions = {},\n ): ClientSessionsGetOrCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/get_or_create',\n method: 'POST',\n body: parameters,\n responseKey: 'client_session',\n options,\n })\n }\n\n grantAccess(\n parameters?: ClientSessionsGrantAccessParameters,\n options: ClientSessionsGrantAccessOptions = {},\n ): ClientSessionsGrantAccessRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/grant_access',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n list(\n parameters?: ClientSessionsListParameters,\n options: ClientSessionsListOptions = {},\n ): ClientSessionsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/list',\n method: 'POST',\n body: parameters,\n responseKey: 'client_sessions',\n options,\n })\n }\n\n revoke(\n parameters?: ClientSessionsRevokeParameters,\n options: ClientSessionsRevokeOptions = {},\n ): ClientSessionsRevokeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/revoke',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type ClientSessionsCreateParameters =\n RouteRequestBody<'/client_sessions/create'>\n\n/**\n * @deprecated Use ClientSessionsCreateParameters instead.\n */\nexport type ClientSessionsCreateBody = ClientSessionsCreateParameters\n\n/**\n * @deprecated Use ClientSessionsCreateRequest instead.\n */\nexport type ClientSessionsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/create'>>\n>\n\nexport type ClientSessionsCreateRequest = SeamHttpRequest<\n ClientSessionsCreateResponse,\n 'client_session'\n>\n\nexport type ClientSessionsCreateOptions = Record<string, never>\n\nexport type ClientSessionsDeleteParameters =\n RouteRequestBody<'/client_sessions/delete'>\n\n/**\n * @deprecated Use ClientSessionsDeleteParameters instead.\n */\nexport type ClientSessionsDeleteParams = ClientSessionsDeleteParameters\n\n/**\n * @deprecated Use ClientSessionsDeleteRequest instead.\n */\nexport type ClientSessionsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/delete'>>\n>\n\nexport type ClientSessionsDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type ClientSessionsDeleteOptions = Record<string, never>\n\nexport type ClientSessionsGetParameters =\n RouteRequestBody<'/client_sessions/get'>\n\n/**\n * @deprecated Use ClientSessionsGetParameters instead.\n */\nexport type ClientSessionsGetParams = ClientSessionsGetParameters\n\n/**\n * @deprecated Use ClientSessionsGetRequest instead.\n */\nexport type ClientSessionsGetResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/get'>>\n>\n\nexport type ClientSessionsGetRequest = SeamHttpRequest<\n ClientSessionsGetResponse,\n 'client_session'\n>\n\nexport type ClientSessionsGetOptions = Record<string, never>\n\nexport type ClientSessionsGetOrCreateParameters =\n RouteRequestBody<'/client_sessions/get_or_create'>\n\n/**\n * @deprecated Use ClientSessionsGetOrCreateParameters instead.\n */\nexport type ClientSessionsGetOrCreateBody = ClientSessionsGetOrCreateParameters\n\n/**\n * @deprecated Use ClientSessionsGetOrCreateRequest instead.\n */\nexport type ClientSessionsGetOrCreateResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/get_or_create'>>\n>\n\nexport type ClientSessionsGetOrCreateRequest = SeamHttpRequest<\n ClientSessionsGetOrCreateResponse,\n 'client_session'\n>\n\nexport type ClientSessionsGetOrCreateOptions = Record<string, never>\n\nexport type ClientSessionsGrantAccessParameters =\n RouteRequestBody<'/client_sessions/grant_access'>\n\n/**\n * @deprecated Use ClientSessionsGrantAccessParameters instead.\n */\nexport type ClientSessionsGrantAccessBody = ClientSessionsGrantAccessParameters\n\n/**\n * @deprecated Use ClientSessionsGrantAccessRequest instead.\n */\nexport type ClientSessionsGrantAccessResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/grant_access'>>\n>\n\nexport type ClientSessionsGrantAccessRequest = SeamHttpRequest<void, undefined>\n\nexport type ClientSessionsGrantAccessOptions = Record<string, never>\n\nexport type ClientSessionsListParameters =\n RouteRequestBody<'/client_sessions/list'>\n\n/**\n * @deprecated Use ClientSessionsListParameters instead.\n */\nexport type ClientSessionsListParams = ClientSessionsListParameters\n\n/**\n * @deprecated Use ClientSessionsListRequest instead.\n */\nexport type ClientSessionsListResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/list'>>\n>\n\nexport type ClientSessionsListRequest = SeamHttpRequest<\n ClientSessionsListResponse,\n 'client_sessions'\n>\n\nexport type ClientSessionsListOptions = Record<string, never>\n\nexport type ClientSessionsRevokeParameters =\n RouteRequestBody<'/client_sessions/revoke'>\n\n/**\n * @deprecated Use ClientSessionsRevokeParameters instead.\n */\nexport type ClientSessionsRevokeBody = ClientSessionsRevokeParameters\n\n/**\n * @deprecated Use ClientSessionsRevokeRequest instead.\n */\nexport type ClientSessionsRevokeResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/revoke'>>\n>\n\nexport type ClientSessionsRevokeRequest = SeamHttpRequest<void, undefined>\n\nexport type ClientSessionsRevokeOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessCodesSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessCodesSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessCodesSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessCodesSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n createUnmanagedAccessCode(\n parameters?: AccessCodesSimulateCreateUnmanagedAccessCodeParameters,\n options: AccessCodesSimulateCreateUnmanagedAccessCodeOptions = {},\n ): AccessCodesSimulateCreateUnmanagedAccessCodeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/simulate/create_unmanaged_access_code',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n}\n\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeParameters =\n RouteRequestBody<'/access_codes/simulate/create_unmanaged_access_code'>\n\n/**\n * @deprecated Use AccessCodesSimulateCreateUnmanagedAccessCodeParameters instead.\n */\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeBody =\n AccessCodesSimulateCreateUnmanagedAccessCodeParameters\n\n/**\n * @deprecated Use AccessCodesSimulateCreateUnmanagedAccessCodeRequest instead.\n */\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/access_codes/simulate/create_unmanaged_access_code'>\n >\n >\n\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeRequest =\n SeamHttpRequest<\n AccessCodesSimulateCreateUnmanagedAccessCodeResponse,\n 'access_code'\n >\n\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessCodesUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessCodesUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessCodesUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessCodesUnmanaged.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n convertToManaged(\n parameters?: AccessCodesUnmanagedConvertToManagedParameters,\n options: AccessCodesUnmanagedConvertToManagedOptions = {},\n ): AccessCodesUnmanagedConvertToManagedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/convert_to_managed',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n delete(\n parameters?: AccessCodesUnmanagedDeleteParameters,\n options: AccessCodesUnmanagedDeleteOptions = {},\n ): AccessCodesUnmanagedDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AccessCodesUnmanagedGetParameters,\n options: AccessCodesUnmanagedGetOptions = {},\n ): AccessCodesUnmanagedGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n\n list(\n parameters?: AccessCodesUnmanagedListParameters,\n options: AccessCodesUnmanagedListOptions = {},\n ): AccessCodesUnmanagedListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_codes',\n options,\n })\n }\n\n update(\n parameters?: AccessCodesUnmanagedUpdateParameters,\n options: AccessCodesUnmanagedUpdateOptions = {},\n ): AccessCodesUnmanagedUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AccessCodesUnmanagedConvertToManagedParameters =\n RouteRequestBody<'/access_codes/unmanaged/convert_to_managed'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedConvertToManagedParameters instead.\n */\nexport type AccessCodesUnmanagedConvertToManagedBody =\n AccessCodesUnmanagedConvertToManagedParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedConvertToManagedRequest instead.\n */\nexport type AccessCodesUnmanagedConvertToManagedResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/convert_to_managed'>>\n>\n\nexport type AccessCodesUnmanagedConvertToManagedRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type AccessCodesUnmanagedConvertToManagedOptions = Record<string, never>\n\nexport type AccessCodesUnmanagedDeleteParameters =\n RouteRequestBody<'/access_codes/unmanaged/delete'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedDeleteParameters instead.\n */\nexport type AccessCodesUnmanagedDeleteParams =\n AccessCodesUnmanagedDeleteParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedDeleteRequest instead.\n */\nexport type AccessCodesUnmanagedDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/delete'>>\n>\n\nexport type AccessCodesUnmanagedDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type AccessCodesUnmanagedDeleteOptions = Record<string, never>\n\nexport type AccessCodesUnmanagedGetParameters =\n RouteRequestBody<'/access_codes/unmanaged/get'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedGetParameters instead.\n */\nexport type AccessCodesUnmanagedGetParams = AccessCodesUnmanagedGetParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedGetRequest instead.\n */\nexport type AccessCodesUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/get'>>\n>\n\nexport type AccessCodesUnmanagedGetRequest = SeamHttpRequest<\n AccessCodesUnmanagedGetResponse,\n 'access_code'\n>\n\nexport type AccessCodesUnmanagedGetOptions = Record<string, never>\n\nexport type AccessCodesUnmanagedListParameters =\n RouteRequestBody<'/access_codes/unmanaged/list'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedListParameters instead.\n */\nexport type AccessCodesUnmanagedListParams = AccessCodesUnmanagedListParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedListRequest instead.\n */\nexport type AccessCodesUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/list'>>\n>\n\nexport type AccessCodesUnmanagedListRequest = SeamHttpRequest<\n AccessCodesUnmanagedListResponse,\n 'access_codes'\n>\n\nexport type AccessCodesUnmanagedListOptions = Record<string, never>\n\nexport type AccessCodesUnmanagedUpdateParameters =\n RouteRequestBody<'/access_codes/unmanaged/update'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedUpdateParameters instead.\n */\nexport type AccessCodesUnmanagedUpdateBody =\n AccessCodesUnmanagedUpdateParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedUpdateRequest instead.\n */\nexport type AccessCodesUnmanagedUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/update'>>\n>\n\nexport type AccessCodesUnmanagedUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type AccessCodesUnmanagedUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAccessCodesSimulate } from './simulate/index.js'\nimport { SeamHttpAccessCodesUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpAccessCodes {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessCodes> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessCodes.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessCodes.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpAccessCodesSimulate {\n return SeamHttpAccessCodesSimulate.fromClient(this.client, this.defaults)\n }\n\n get unmanaged(): SeamHttpAccessCodesUnmanaged {\n return SeamHttpAccessCodesUnmanaged.fromClient(this.client, this.defaults)\n }\n\n create(\n parameters?: AccessCodesCreateParameters,\n options: AccessCodesCreateOptions = {},\n ): AccessCodesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/create',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n\n createMultiple(\n parameters?: AccessCodesCreateMultipleParameters,\n options: AccessCodesCreateMultipleOptions = {},\n ): AccessCodesCreateMultipleRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/create_multiple',\n method: 'PUT',\n body: parameters,\n responseKey: 'access_codes',\n options,\n })\n }\n\n delete(\n parameters?: AccessCodesDeleteParameters,\n options: AccessCodesDeleteOptions = {},\n ): AccessCodesDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n generateCode(\n parameters?: AccessCodesGenerateCodeParameters,\n options: AccessCodesGenerateCodeOptions = {},\n ): AccessCodesGenerateCodeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/generate_code',\n method: 'POST',\n body: parameters,\n responseKey: 'generated_code',\n options,\n })\n }\n\n get(\n parameters?: AccessCodesGetParameters,\n options: AccessCodesGetOptions = {},\n ): AccessCodesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n\n list(\n parameters?: AccessCodesListParameters,\n options: AccessCodesListOptions = {},\n ): AccessCodesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_codes',\n options,\n })\n }\n\n pullBackupAccessCode(\n parameters?: AccessCodesPullBackupAccessCodeParameters,\n options: AccessCodesPullBackupAccessCodeOptions = {},\n ): AccessCodesPullBackupAccessCodeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/pull_backup_access_code',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n\n reportDeviceConstraints(\n parameters?: AccessCodesReportDeviceConstraintsParameters,\n options: AccessCodesReportDeviceConstraintsOptions = {},\n ): AccessCodesReportDeviceConstraintsRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/report_device_constraints',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: AccessCodesUpdateParameters,\n options: AccessCodesUpdateOptions = {},\n ): AccessCodesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/update',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n updateMultiple(\n parameters?: AccessCodesUpdateMultipleParameters,\n options: AccessCodesUpdateMultipleOptions = {},\n ): AccessCodesUpdateMultipleRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/update_multiple',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AccessCodesCreateParameters =\n RouteRequestBody<'/access_codes/create'>\n\n/**\n * @deprecated Use AccessCodesCreateParameters instead.\n */\nexport type AccessCodesCreateBody = AccessCodesCreateParameters\n\n/**\n * @deprecated Use AccessCodesCreateRequest instead.\n */\nexport type AccessCodesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/create'>>\n>\n\nexport type AccessCodesCreateRequest = SeamHttpRequest<\n AccessCodesCreateResponse,\n 'access_code'\n>\n\nexport type AccessCodesCreateOptions = Record<string, never>\n\nexport type AccessCodesCreateMultipleParameters =\n RouteRequestBody<'/access_codes/create_multiple'>\n\n/**\n * @deprecated Use AccessCodesCreateMultipleParameters instead.\n */\nexport type AccessCodesCreateMultipleBody = AccessCodesCreateMultipleParameters\n\n/**\n * @deprecated Use AccessCodesCreateMultipleRequest instead.\n */\nexport type AccessCodesCreateMultipleResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/create_multiple'>>\n>\n\nexport type AccessCodesCreateMultipleRequest = SeamHttpRequest<\n AccessCodesCreateMultipleResponse,\n 'access_codes'\n>\n\nexport type AccessCodesCreateMultipleOptions = Record<string, never>\n\nexport type AccessCodesDeleteParameters =\n RouteRequestBody<'/access_codes/delete'>\n\n/**\n * @deprecated Use AccessCodesDeleteParameters instead.\n */\nexport type AccessCodesDeleteParams = AccessCodesDeleteParameters\n\n/**\n * @deprecated Use AccessCodesDeleteRequest instead.\n */\nexport type AccessCodesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/delete'>>\n>\n\nexport type AccessCodesDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type AccessCodesDeleteOptions = Record<string, never>\n\nexport type AccessCodesGenerateCodeParameters =\n RouteRequestBody<'/access_codes/generate_code'>\n\n/**\n * @deprecated Use AccessCodesGenerateCodeParameters instead.\n */\nexport type AccessCodesGenerateCodeParams = AccessCodesGenerateCodeParameters\n\n/**\n * @deprecated Use AccessCodesGenerateCodeRequest instead.\n */\nexport type AccessCodesGenerateCodeResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/generate_code'>>\n>\n\nexport type AccessCodesGenerateCodeRequest = SeamHttpRequest<\n AccessCodesGenerateCodeResponse,\n 'generated_code'\n>\n\nexport type AccessCodesGenerateCodeOptions = Record<string, never>\n\nexport type AccessCodesGetParameters = RouteRequestBody<'/access_codes/get'>\n\n/**\n * @deprecated Use AccessCodesGetParameters instead.\n */\nexport type AccessCodesGetParams = AccessCodesGetParameters\n\n/**\n * @deprecated Use AccessCodesGetRequest instead.\n */\nexport type AccessCodesGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/get'>>\n>\n\nexport type AccessCodesGetRequest = SeamHttpRequest<\n AccessCodesGetResponse,\n 'access_code'\n>\n\nexport type AccessCodesGetOptions = Record<string, never>\n\nexport type AccessCodesListParameters = RouteRequestBody<'/access_codes/list'>\n\n/**\n * @deprecated Use AccessCodesListParameters instead.\n */\nexport type AccessCodesListParams = AccessCodesListParameters\n\n/**\n * @deprecated Use AccessCodesListRequest instead.\n */\nexport type AccessCodesListResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/list'>>\n>\n\nexport type AccessCodesListRequest = SeamHttpRequest<\n AccessCodesListResponse,\n 'access_codes'\n>\n\nexport type AccessCodesListOptions = Record<string, never>\n\nexport type AccessCodesPullBackupAccessCodeParameters =\n RouteRequestBody<'/access_codes/pull_backup_access_code'>\n\n/**\n * @deprecated Use AccessCodesPullBackupAccessCodeParameters instead.\n */\nexport type AccessCodesPullBackupAccessCodeBody =\n AccessCodesPullBackupAccessCodeParameters\n\n/**\n * @deprecated Use AccessCodesPullBackupAccessCodeRequest instead.\n */\nexport type AccessCodesPullBackupAccessCodeResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/pull_backup_access_code'>>\n>\n\nexport type AccessCodesPullBackupAccessCodeRequest = SeamHttpRequest<\n AccessCodesPullBackupAccessCodeResponse,\n 'access_code'\n>\n\nexport type AccessCodesPullBackupAccessCodeOptions = Record<string, never>\n\nexport type AccessCodesReportDeviceConstraintsParameters =\n RouteRequestBody<'/access_codes/report_device_constraints'>\n\n/**\n * @deprecated Use AccessCodesReportDeviceConstraintsParameters instead.\n */\nexport type AccessCodesReportDeviceConstraintsBody =\n AccessCodesReportDeviceConstraintsParameters\n\n/**\n * @deprecated Use AccessCodesReportDeviceConstraintsRequest instead.\n */\nexport type AccessCodesReportDeviceConstraintsResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/report_device_constraints'>>\n>\n\nexport type AccessCodesReportDeviceConstraintsRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type AccessCodesReportDeviceConstraintsOptions = Record<string, never>\n\nexport type AccessCodesUpdateParameters =\n RouteRequestBody<'/access_codes/update'>\n\n/**\n * @deprecated Use AccessCodesUpdateParameters instead.\n */\nexport type AccessCodesUpdateBody = AccessCodesUpdateParameters\n\n/**\n * @deprecated Use AccessCodesUpdateRequest instead.\n */\nexport type AccessCodesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/update'>>\n>\n\nexport type AccessCodesUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type AccessCodesUpdateOptions = Record<string, never>\n\nexport type AccessCodesUpdateMultipleParameters =\n RouteRequestBody<'/access_codes/update_multiple'>\n\n/**\n * @deprecated Use AccessCodesUpdateMultipleParameters instead.\n */\nexport type AccessCodesUpdateMultipleBody = AccessCodesUpdateMultipleParameters\n\n/**\n * @deprecated Use AccessCodesUpdateMultipleRequest instead.\n */\nexport type AccessCodesUpdateMultipleResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/update_multiple'>>\n>\n\nexport type AccessCodesUpdateMultipleRequest = SeamHttpRequest<void, undefined>\n\nexport type AccessCodesUpdateMultipleOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessGrants {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessGrants> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessGrants.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessGrants.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: AccessGrantsCreateParameters,\n options: AccessGrantsCreateOptions = {},\n ): AccessGrantsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/create',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grant',\n options,\n })\n }\n\n delete(\n parameters?: AccessGrantsDeleteParameters,\n options: AccessGrantsDeleteOptions = {},\n ): AccessGrantsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AccessGrantsGetParameters,\n options: AccessGrantsGetOptions = {},\n ): AccessGrantsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grant',\n options,\n })\n }\n\n list(\n parameters?: AccessGrantsListParameters,\n options: AccessGrantsListOptions = {},\n ): AccessGrantsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grants',\n options,\n })\n }\n\n update(\n parameters?: AccessGrantsUpdateParameters,\n options: AccessGrantsUpdateOptions = {},\n ): AccessGrantsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AccessGrantsCreateParameters =\n RouteRequestBody<'/access_grants/create'>\n\n/**\n * @deprecated Use AccessGrantsCreateParameters instead.\n */\nexport type AccessGrantsCreateBody = AccessGrantsCreateParameters\n\n/**\n * @deprecated Use AccessGrantsCreateRequest instead.\n */\nexport type AccessGrantsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/create'>>\n>\n\nexport type AccessGrantsCreateRequest = SeamHttpRequest<\n AccessGrantsCreateResponse,\n 'access_grant'\n>\n\nexport type AccessGrantsCreateOptions = Record<string, never>\n\nexport type AccessGrantsDeleteParameters =\n RouteRequestBody<'/access_grants/delete'>\n\n/**\n * @deprecated Use AccessGrantsDeleteParameters instead.\n */\nexport type AccessGrantsDeleteParams = AccessGrantsDeleteParameters\n\n/**\n * @deprecated Use AccessGrantsDeleteRequest instead.\n */\nexport type AccessGrantsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/delete'>>\n>\n\nexport type AccessGrantsDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type AccessGrantsDeleteOptions = Record<string, never>\n\nexport type AccessGrantsGetParameters = RouteRequestBody<'/access_grants/get'>\n\n/**\n * @deprecated Use AccessGrantsGetParameters instead.\n */\nexport type AccessGrantsGetParams = AccessGrantsGetParameters\n\n/**\n * @deprecated Use AccessGrantsGetRequest instead.\n */\nexport type AccessGrantsGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/get'>>\n>\n\nexport type AccessGrantsGetRequest = SeamHttpRequest<\n AccessGrantsGetResponse,\n 'access_grant'\n>\n\nexport type AccessGrantsGetOptions = Record<string, never>\n\nexport type AccessGrantsListParameters = RouteRequestBody<'/access_grants/list'>\n\n/**\n * @deprecated Use AccessGrantsListParameters instead.\n */\nexport type AccessGrantsListParams = AccessGrantsListParameters\n\n/**\n * @deprecated Use AccessGrantsListRequest instead.\n */\nexport type AccessGrantsListResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/list'>>\n>\n\nexport type AccessGrantsListRequest = SeamHttpRequest<\n AccessGrantsListResponse,\n 'access_grants'\n>\n\nexport type AccessGrantsListOptions = Record<string, never>\n\nexport type AccessGrantsUpdateParameters =\n RouteRequestBody<'/access_grants/update'>\n\n/**\n * @deprecated Use AccessGrantsUpdateParameters instead.\n */\nexport type AccessGrantsUpdateBody = AccessGrantsUpdateParameters\n\n/**\n * @deprecated Use AccessGrantsUpdateRequest instead.\n */\nexport type AccessGrantsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/update'>>\n>\n\nexport type AccessGrantsUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type AccessGrantsUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessMethods {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessMethods> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessMethods.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessMethods.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n parameters?: AccessMethodsDeleteParameters,\n options: AccessMethodsDeleteOptions = {},\n ): AccessMethodsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AccessMethodsGetParameters,\n options: AccessMethodsGetOptions = {},\n ): AccessMethodsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_method',\n options,\n })\n }\n\n list(\n parameters?: AccessMethodsListParameters,\n options: AccessMethodsListOptions = {},\n ): AccessMethodsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_methods',\n options,\n })\n }\n}\n\nexport type AccessMethodsDeleteParameters =\n RouteRequestBody<'/access_methods/delete'>\n\n/**\n * @deprecated Use AccessMethodsDeleteParameters instead.\n */\nexport type AccessMethodsDeleteParams = AccessMethodsDeleteParameters\n\n/**\n * @deprecated Use AccessMethodsDeleteRequest instead.\n */\nexport type AccessMethodsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/delete'>>\n>\n\nexport type AccessMethodsDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type AccessMethodsDeleteOptions = Record<string, never>\n\nexport type AccessMethodsGetParameters = RouteRequestBody<'/access_methods/get'>\n\n/**\n * @deprecated Use AccessMethodsGetParameters instead.\n */\nexport type AccessMethodsGetParams = AccessMethodsGetParameters\n\n/**\n * @deprecated Use AccessMethodsGetRequest instead.\n */\nexport type AccessMethodsGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/get'>>\n>\n\nexport type AccessMethodsGetRequest = SeamHttpRequest<\n AccessMethodsGetResponse,\n 'access_method'\n>\n\nexport type AccessMethodsGetOptions = Record<string, never>\n\nexport type AccessMethodsListParameters =\n RouteRequestBody<'/access_methods/list'>\n\n/**\n * @deprecated Use AccessMethodsListParameters instead.\n */\nexport type AccessMethodsListParams = AccessMethodsListParameters\n\n/**\n * @deprecated Use AccessMethodsListRequest instead.\n */\nexport type AccessMethodsListResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/list'>>\n>\n\nexport type AccessMethodsListRequest = SeamHttpRequest<\n AccessMethodsListResponse,\n 'access_methods'\n>\n\nexport type AccessMethodsListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsAccessGroupsUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsAccessGroupsUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsAccessGroupsUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsAccessGroupsUnmanaged.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsAccessGroupsUnmanagedGetParameters,\n options: AcsAccessGroupsUnmanagedGetOptions = {},\n ): AcsAccessGroupsUnmanagedGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_access_group',\n options,\n })\n }\n\n list(\n parameters?: AcsAccessGroupsUnmanagedListParameters,\n options: AcsAccessGroupsUnmanagedListOptions = {},\n ): AcsAccessGroupsUnmanagedListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/unmanaged/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_access_groups',\n options,\n })\n }\n}\n\nexport type AcsAccessGroupsUnmanagedGetParameters =\n RouteRequestBody<'/acs/access_groups/unmanaged/get'>\n\n/**\n * @deprecated Use AcsAccessGroupsUnmanagedGetParameters instead.\n */\nexport type AcsAccessGroupsUnmanagedGetParams =\n AcsAccessGroupsUnmanagedGetParameters\n\n/**\n * @deprecated Use AcsAccessGroupsUnmanagedGetRequest instead.\n */\nexport type AcsAccessGroupsUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/unmanaged/get'>>\n>\n\nexport type AcsAccessGroupsUnmanagedGetRequest = SeamHttpRequest<\n AcsAccessGroupsUnmanagedGetResponse,\n 'acs_access_group'\n>\n\nexport type AcsAccessGroupsUnmanagedGetOptions = Record<string, never>\n\nexport type AcsAccessGroupsUnmanagedListParameters =\n RouteRequestBody<'/acs/access_groups/unmanaged/list'>\n\n/**\n * @deprecated Use AcsAccessGroupsUnmanagedListParameters instead.\n */\nexport type AcsAccessGroupsUnmanagedListParams =\n AcsAccessGroupsUnmanagedListParameters\n\n/**\n * @deprecated Use AcsAccessGroupsUnmanagedListRequest instead.\n */\nexport type AcsAccessGroupsUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/unmanaged/list'>>\n>\n\nexport type AcsAccessGroupsUnmanagedListRequest = SeamHttpRequest<\n AcsAccessGroupsUnmanagedListResponse,\n 'acs_access_groups'\n>\n\nexport type AcsAccessGroupsUnmanagedListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAcsAccessGroupsUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpAcsAccessGroups {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsAccessGroups> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsAccessGroups.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsAccessGroups.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get unmanaged(): SeamHttpAcsAccessGroupsUnmanaged {\n return SeamHttpAcsAccessGroupsUnmanaged.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n addUser(\n parameters?: AcsAccessGroupsAddUserParameters,\n options: AcsAccessGroupsAddUserOptions = {},\n ): AcsAccessGroupsAddUserRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/add_user',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AcsAccessGroupsGetParameters,\n options: AcsAccessGroupsGetOptions = {},\n ): AcsAccessGroupsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_access_group',\n options,\n })\n }\n\n list(\n parameters?: AcsAccessGroupsListParameters,\n options: AcsAccessGroupsListOptions = {},\n ): AcsAccessGroupsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_access_groups',\n options,\n })\n }\n\n listAccessibleEntrances(\n parameters?: AcsAccessGroupsListAccessibleEntrancesParameters,\n options: AcsAccessGroupsListAccessibleEntrancesOptions = {},\n ): AcsAccessGroupsListAccessibleEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/list_accessible_entrances',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrances',\n options,\n })\n }\n\n listUsers(\n parameters?: AcsAccessGroupsListUsersParameters,\n options: AcsAccessGroupsListUsersOptions = {},\n ): AcsAccessGroupsListUsersRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/list_users',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_users',\n options,\n })\n }\n\n removeUser(\n parameters?: AcsAccessGroupsRemoveUserParameters,\n options: AcsAccessGroupsRemoveUserOptions = {},\n ): AcsAccessGroupsRemoveUserRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/remove_user',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AcsAccessGroupsAddUserParameters =\n RouteRequestBody<'/acs/access_groups/add_user'>\n\n/**\n * @deprecated Use AcsAccessGroupsAddUserParameters instead.\n */\nexport type AcsAccessGroupsAddUserBody = AcsAccessGroupsAddUserParameters\n\n/**\n * @deprecated Use AcsAccessGroupsAddUserRequest instead.\n */\nexport type AcsAccessGroupsAddUserResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/add_user'>>\n>\n\nexport type AcsAccessGroupsAddUserRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsAccessGroupsAddUserOptions = Record<string, never>\n\nexport type AcsAccessGroupsGetParameters =\n RouteRequestBody<'/acs/access_groups/get'>\n\n/**\n * @deprecated Use AcsAccessGroupsGetParameters instead.\n */\nexport type AcsAccessGroupsGetParams = AcsAccessGroupsGetParameters\n\n/**\n * @deprecated Use AcsAccessGroupsGetRequest instead.\n */\nexport type AcsAccessGroupsGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/get'>>\n>\n\nexport type AcsAccessGroupsGetRequest = SeamHttpRequest<\n AcsAccessGroupsGetResponse,\n 'acs_access_group'\n>\n\nexport type AcsAccessGroupsGetOptions = Record<string, never>\n\nexport type AcsAccessGroupsListParameters =\n RouteRequestBody<'/acs/access_groups/list'>\n\n/**\n * @deprecated Use AcsAccessGroupsListParameters instead.\n */\nexport type AcsAccessGroupsListParams = AcsAccessGroupsListParameters\n\n/**\n * @deprecated Use AcsAccessGroupsListRequest instead.\n */\nexport type AcsAccessGroupsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/list'>>\n>\n\nexport type AcsAccessGroupsListRequest = SeamHttpRequest<\n AcsAccessGroupsListResponse,\n 'acs_access_groups'\n>\n\nexport type AcsAccessGroupsListOptions = Record<string, never>\n\nexport type AcsAccessGroupsListAccessibleEntrancesParameters =\n RouteRequestBody<'/acs/access_groups/list_accessible_entrances'>\n\n/**\n * @deprecated Use AcsAccessGroupsListAccessibleEntrancesParameters instead.\n */\nexport type AcsAccessGroupsListAccessibleEntrancesParams =\n AcsAccessGroupsListAccessibleEntrancesParameters\n\n/**\n * @deprecated Use AcsAccessGroupsListAccessibleEntrancesRequest instead.\n */\nexport type AcsAccessGroupsListAccessibleEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/list_accessible_entrances'>>\n>\n\nexport type AcsAccessGroupsListAccessibleEntrancesRequest = SeamHttpRequest<\n AcsAccessGroupsListAccessibleEntrancesResponse,\n 'acs_entrances'\n>\n\nexport type AcsAccessGroupsListAccessibleEntrancesOptions = Record<\n string,\n never\n>\n\nexport type AcsAccessGroupsListUsersParameters =\n RouteRequestBody<'/acs/access_groups/list_users'>\n\n/**\n * @deprecated Use AcsAccessGroupsListUsersParameters instead.\n */\nexport type AcsAccessGroupsListUsersParams = AcsAccessGroupsListUsersParameters\n\n/**\n * @deprecated Use AcsAccessGroupsListUsersRequest instead.\n */\nexport type AcsAccessGroupsListUsersResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/list_users'>>\n>\n\nexport type AcsAccessGroupsListUsersRequest = SeamHttpRequest<\n AcsAccessGroupsListUsersResponse,\n 'acs_users'\n>\n\nexport type AcsAccessGroupsListUsersOptions = Record<string, never>\n\nexport type AcsAccessGroupsRemoveUserParameters =\n RouteRequestBody<'/acs/access_groups/remove_user'>\n\n/**\n * @deprecated Use AcsAccessGroupsRemoveUserParameters instead.\n */\nexport type AcsAccessGroupsRemoveUserParams =\n AcsAccessGroupsRemoveUserParameters\n\n/**\n * @deprecated Use AcsAccessGroupsRemoveUserRequest instead.\n */\nexport type AcsAccessGroupsRemoveUserResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/remove_user'>>\n>\n\nexport type AcsAccessGroupsRemoveUserRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsAccessGroupsRemoveUserOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsCredentialPools {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsCredentialPools> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsCredentialPools.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsCredentialPools.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n list(\n parameters?: AcsCredentialPoolsListParameters,\n options: AcsCredentialPoolsListOptions = {},\n ): AcsCredentialPoolsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credential_pools/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential_pools',\n options,\n })\n }\n}\n\nexport type AcsCredentialPoolsListParameters =\n RouteRequestBody<'/acs/credential_pools/list'>\n\n/**\n * @deprecated Use AcsCredentialPoolsListParameters instead.\n */\nexport type AcsCredentialPoolsListParams = AcsCredentialPoolsListParameters\n\n/**\n * @deprecated Use AcsCredentialPoolsListRequest instead.\n */\nexport type AcsCredentialPoolsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credential_pools/list'>>\n>\n\nexport type AcsCredentialPoolsListRequest = SeamHttpRequest<\n AcsCredentialPoolsListResponse,\n 'acs_credential_pools'\n>\n\nexport type AcsCredentialPoolsListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsCredentialProvisioningAutomations {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsCredentialProvisioningAutomations> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsCredentialProvisioningAutomations.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsCredentialProvisioningAutomations.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n launch(\n parameters?: AcsCredentialProvisioningAutomationsLaunchParameters,\n options: AcsCredentialProvisioningAutomationsLaunchOptions = {},\n ): AcsCredentialProvisioningAutomationsLaunchRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credential_provisioning_automations/launch',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential_provisioning_automation',\n options,\n })\n }\n}\n\nexport type AcsCredentialProvisioningAutomationsLaunchParameters =\n RouteRequestBody<'/acs/credential_provisioning_automations/launch'>\n\n/**\n * @deprecated Use AcsCredentialProvisioningAutomationsLaunchParameters instead.\n */\nexport type AcsCredentialProvisioningAutomationsLaunchBody =\n AcsCredentialProvisioningAutomationsLaunchParameters\n\n/**\n * @deprecated Use AcsCredentialProvisioningAutomationsLaunchRequest instead.\n */\nexport type AcsCredentialProvisioningAutomationsLaunchResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credential_provisioning_automations/launch'>>\n>\n\nexport type AcsCredentialProvisioningAutomationsLaunchRequest = SeamHttpRequest<\n AcsCredentialProvisioningAutomationsLaunchResponse,\n 'acs_credential_provisioning_automation'\n>\n\nexport type AcsCredentialProvisioningAutomationsLaunchOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsCredentialsUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsCredentialsUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsCredentialsUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsCredentialsUnmanaged.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsCredentialsUnmanagedGetParameters,\n options: AcsCredentialsUnmanagedGetOptions = {},\n ): AcsCredentialsUnmanagedGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential',\n options,\n })\n }\n\n list(\n parameters?: AcsCredentialsUnmanagedListParameters,\n options: AcsCredentialsUnmanagedListOptions = {},\n ): AcsCredentialsUnmanagedListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/unmanaged/list',\n method: 'GET',\n params: parameters,\n responseKey: 'acs_credentials',\n options,\n })\n }\n}\n\nexport type AcsCredentialsUnmanagedGetParameters =\n RouteRequestBody<'/acs/credentials/unmanaged/get'>\n\n/**\n * @deprecated Use AcsCredentialsUnmanagedGetParameters instead.\n */\nexport type AcsCredentialsUnmanagedGetParams =\n AcsCredentialsUnmanagedGetParameters\n\n/**\n * @deprecated Use AcsCredentialsUnmanagedGetRequest instead.\n */\nexport type AcsCredentialsUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/unmanaged/get'>>\n>\n\nexport type AcsCredentialsUnmanagedGetRequest = SeamHttpRequest<\n AcsCredentialsUnmanagedGetResponse,\n 'acs_credential'\n>\n\nexport type AcsCredentialsUnmanagedGetOptions = Record<string, never>\n\nexport type AcsCredentialsUnmanagedListParameters =\n RouteRequestParams<'/acs/credentials/unmanaged/list'>\n\n/**\n * @deprecated Use AcsCredentialsUnmanagedListParameters instead.\n */\nexport type AcsCredentialsUnmanagedListParams =\n AcsCredentialsUnmanagedListParameters\n\n/**\n * @deprecated Use AcsCredentialsUnmanagedListRequest instead.\n */\nexport type AcsCredentialsUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/unmanaged/list'>>\n>\n\nexport type AcsCredentialsUnmanagedListRequest = SeamHttpRequest<\n AcsCredentialsUnmanagedListResponse,\n 'acs_credentials'\n>\n\nexport type AcsCredentialsUnmanagedListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAcsCredentialsUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpAcsCredentials {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsCredentials> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsCredentials.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsCredentials.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get unmanaged(): SeamHttpAcsCredentialsUnmanaged {\n return SeamHttpAcsCredentialsUnmanaged.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n assign(\n parameters?: AcsCredentialsAssignParameters,\n options: AcsCredentialsAssignOptions = {},\n ): AcsCredentialsAssignRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/assign',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: AcsCredentialsCreateParameters,\n options: AcsCredentialsCreateOptions = {},\n ): AcsCredentialsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/create',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential',\n options,\n })\n }\n\n createOfflineCode(\n parameters?: AcsCredentialsCreateOfflineCodeParameters,\n options: AcsCredentialsCreateOfflineCodeOptions = {},\n ): AcsCredentialsCreateOfflineCodeRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/create_offline_code',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential',\n options,\n })\n }\n\n delete(\n parameters?: AcsCredentialsDeleteParameters,\n options: AcsCredentialsDeleteOptions = {},\n ): AcsCredentialsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AcsCredentialsGetParameters,\n options: AcsCredentialsGetOptions = {},\n ): AcsCredentialsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential',\n options,\n })\n }\n\n list(\n parameters?: AcsCredentialsListParameters,\n options: AcsCredentialsListOptions = {},\n ): AcsCredentialsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/list',\n method: 'GET',\n params: parameters,\n responseKey: 'acs_credentials',\n options,\n })\n }\n\n listAccessibleEntrances(\n parameters?: AcsCredentialsListAccessibleEntrancesParameters,\n options: AcsCredentialsListAccessibleEntrancesOptions = {},\n ): AcsCredentialsListAccessibleEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/list_accessible_entrances',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrances',\n options,\n })\n }\n\n unassign(\n parameters?: AcsCredentialsUnassignParameters,\n options: AcsCredentialsUnassignOptions = {},\n ): AcsCredentialsUnassignRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/unassign',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: AcsCredentialsUpdateParameters,\n options: AcsCredentialsUpdateOptions = {},\n ): AcsCredentialsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AcsCredentialsAssignParameters =\n RouteRequestBody<'/acs/credentials/assign'>\n\n/**\n * @deprecated Use AcsCredentialsAssignParameters instead.\n */\nexport type AcsCredentialsAssignBody = AcsCredentialsAssignParameters\n\n/**\n * @deprecated Use AcsCredentialsAssignRequest instead.\n */\nexport type AcsCredentialsAssignResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/assign'>>\n>\n\nexport type AcsCredentialsAssignRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsCredentialsAssignOptions = Record<string, never>\n\nexport type AcsCredentialsCreateParameters =\n RouteRequestBody<'/acs/credentials/create'>\n\n/**\n * @deprecated Use AcsCredentialsCreateParameters instead.\n */\nexport type AcsCredentialsCreateBody = AcsCredentialsCreateParameters\n\n/**\n * @deprecated Use AcsCredentialsCreateRequest instead.\n */\nexport type AcsCredentialsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/create'>>\n>\n\nexport type AcsCredentialsCreateRequest = SeamHttpRequest<\n AcsCredentialsCreateResponse,\n 'acs_credential'\n>\n\nexport type AcsCredentialsCreateOptions = Record<string, never>\n\nexport type AcsCredentialsCreateOfflineCodeParameters =\n RouteRequestBody<'/acs/credentials/create_offline_code'>\n\n/**\n * @deprecated Use AcsCredentialsCreateOfflineCodeParameters instead.\n */\nexport type AcsCredentialsCreateOfflineCodeBody =\n AcsCredentialsCreateOfflineCodeParameters\n\n/**\n * @deprecated Use AcsCredentialsCreateOfflineCodeRequest instead.\n */\nexport type AcsCredentialsCreateOfflineCodeResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/create_offline_code'>>\n>\n\nexport type AcsCredentialsCreateOfflineCodeRequest = SeamHttpRequest<\n AcsCredentialsCreateOfflineCodeResponse,\n 'acs_credential'\n>\n\nexport type AcsCredentialsCreateOfflineCodeOptions = Record<string, never>\n\nexport type AcsCredentialsDeleteParameters =\n RouteRequestBody<'/acs/credentials/delete'>\n\n/**\n * @deprecated Use AcsCredentialsDeleteParameters instead.\n */\nexport type AcsCredentialsDeleteParams = AcsCredentialsDeleteParameters\n\n/**\n * @deprecated Use AcsCredentialsDeleteRequest instead.\n */\nexport type AcsCredentialsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/delete'>>\n>\n\nexport type AcsCredentialsDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsCredentialsDeleteOptions = Record<string, never>\n\nexport type AcsCredentialsGetParameters =\n RouteRequestBody<'/acs/credentials/get'>\n\n/**\n * @deprecated Use AcsCredentialsGetParameters instead.\n */\nexport type AcsCredentialsGetParams = AcsCredentialsGetParameters\n\n/**\n * @deprecated Use AcsCredentialsGetRequest instead.\n */\nexport type AcsCredentialsGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/get'>>\n>\n\nexport type AcsCredentialsGetRequest = SeamHttpRequest<\n AcsCredentialsGetResponse,\n 'acs_credential'\n>\n\nexport type AcsCredentialsGetOptions = Record<string, never>\n\nexport type AcsCredentialsListParameters =\n RouteRequestParams<'/acs/credentials/list'>\n\n/**\n * @deprecated Use AcsCredentialsListParameters instead.\n */\nexport type AcsCredentialsListParams = AcsCredentialsListParameters\n\n/**\n * @deprecated Use AcsCredentialsListRequest instead.\n */\nexport type AcsCredentialsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/list'>>\n>\n\nexport type AcsCredentialsListRequest = SeamHttpRequest<\n AcsCredentialsListResponse,\n 'acs_credentials'\n>\n\nexport type AcsCredentialsListOptions = Record<string, never>\n\nexport type AcsCredentialsListAccessibleEntrancesParameters =\n RouteRequestBody<'/acs/credentials/list_accessible_entrances'>\n\n/**\n * @deprecated Use AcsCredentialsListAccessibleEntrancesParameters instead.\n */\nexport type AcsCredentialsListAccessibleEntrancesParams =\n AcsCredentialsListAccessibleEntrancesParameters\n\n/**\n * @deprecated Use AcsCredentialsListAccessibleEntrancesRequest instead.\n */\nexport type AcsCredentialsListAccessibleEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/list_accessible_entrances'>>\n>\n\nexport type AcsCredentialsListAccessibleEntrancesRequest = SeamHttpRequest<\n AcsCredentialsListAccessibleEntrancesResponse,\n 'acs_entrances'\n>\n\nexport type AcsCredentialsListAccessibleEntrancesOptions = Record<string, never>\n\nexport type AcsCredentialsUnassignParameters =\n RouteRequestBody<'/acs/credentials/unassign'>\n\n/**\n * @deprecated Use AcsCredentialsUnassignParameters instead.\n */\nexport type AcsCredentialsUnassignBody = AcsCredentialsUnassignParameters\n\n/**\n * @deprecated Use AcsCredentialsUnassignRequest instead.\n */\nexport type AcsCredentialsUnassignResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/unassign'>>\n>\n\nexport type AcsCredentialsUnassignRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsCredentialsUnassignOptions = Record<string, never>\n\nexport type AcsCredentialsUpdateParameters =\n RouteRequestBody<'/acs/credentials/update'>\n\n/**\n * @deprecated Use AcsCredentialsUpdateParameters instead.\n */\nexport type AcsCredentialsUpdateBody = AcsCredentialsUpdateParameters\n\n/**\n * @deprecated Use AcsCredentialsUpdateRequest instead.\n */\nexport type AcsCredentialsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/update'>>\n>\n\nexport type AcsCredentialsUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsCredentialsUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsEncodersSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsEncodersSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsEncodersSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsEncodersSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n nextCredentialEncodeWillFail(\n parameters?: AcsEncodersSimulateNextCredentialEncodeWillFailParameters,\n options: AcsEncodersSimulateNextCredentialEncodeWillFailOptions = {},\n ): AcsEncodersSimulateNextCredentialEncodeWillFailRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_encode_will_fail',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n nextCredentialEncodeWillSucceed(\n parameters?: AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters,\n options: AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions = {},\n ): AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_encode_will_succeed',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n nextCredentialScanWillFail(\n parameters?: AcsEncodersSimulateNextCredentialScanWillFailParameters,\n options: AcsEncodersSimulateNextCredentialScanWillFailOptions = {},\n ): AcsEncodersSimulateNextCredentialScanWillFailRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_scan_will_fail',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n nextCredentialScanWillSucceed(\n parameters?: AcsEncodersSimulateNextCredentialScanWillSucceedParameters,\n options: AcsEncodersSimulateNextCredentialScanWillSucceedOptions = {},\n ): AcsEncodersSimulateNextCredentialScanWillSucceedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_scan_will_succeed',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailParameters =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_encode_will_fail'>\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialEncodeWillFailParameters instead.\n */\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailBody =\n AcsEncodersSimulateNextCredentialEncodeWillFailParameters\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialEncodeWillFailRequest instead.\n */\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_encode_will_fail'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailRequest =\n SeamHttpRequest<void, undefined>\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailOptions = Record<\n string,\n never\n>\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_encode_will_succeed'>\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters instead.\n */\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedBody =\n AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest instead.\n */\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_encode_will_succeed'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest =\n SeamHttpRequest<void, undefined>\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions = Record<\n string,\n never\n>\n\nexport type AcsEncodersSimulateNextCredentialScanWillFailParameters =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_scan_will_fail'>\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialScanWillFailParameters instead.\n */\nexport type AcsEncodersSimulateNextCredentialScanWillFailBody =\n AcsEncodersSimulateNextCredentialScanWillFailParameters\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialScanWillFailRequest instead.\n */\nexport type AcsEncodersSimulateNextCredentialScanWillFailResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_scan_will_fail'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialScanWillFailRequest =\n SeamHttpRequest<void, undefined>\n\nexport type AcsEncodersSimulateNextCredentialScanWillFailOptions = Record<\n string,\n never\n>\n\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedParameters =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_scan_will_succeed'>\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialScanWillSucceedParameters instead.\n */\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedBody =\n AcsEncodersSimulateNextCredentialScanWillSucceedParameters\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialScanWillSucceedRequest instead.\n */\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_scan_will_succeed'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedRequest =\n SeamHttpRequest<void, undefined>\n\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAcsEncodersSimulate } from './simulate/index.js'\n\nexport class SeamHttpAcsEncoders {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsEncoders> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsEncoders.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsEncoders.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpAcsEncodersSimulate {\n return SeamHttpAcsEncodersSimulate.fromClient(this.client, this.defaults)\n }\n\n encodeAccessMethod(\n parameters?: AcsEncodersEncodeAccessMethodParameters,\n options: AcsEncodersEncodeAccessMethodOptions = {},\n ): AcsEncodersEncodeAccessMethodRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/encode_access_method',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n encodeCredential(\n parameters?: AcsEncodersEncodeCredentialParameters,\n options: AcsEncodersEncodeCredentialOptions = {},\n ): AcsEncodersEncodeCredentialRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/encode_credential',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n get(\n parameters?: AcsEncodersGetParameters,\n options: AcsEncodersGetOptions = {},\n ): AcsEncodersGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_encoder',\n options,\n })\n }\n\n list(\n parameters?: AcsEncodersListParameters,\n options: AcsEncodersListOptions = {},\n ): AcsEncodersListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/list',\n method: 'GET',\n params: parameters,\n responseKey: 'acs_encoders',\n options,\n })\n }\n\n scanCredential(\n parameters?: AcsEncodersScanCredentialParameters,\n options: AcsEncodersScanCredentialOptions = {},\n ): AcsEncodersScanCredentialRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/scan_credential',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type AcsEncodersEncodeAccessMethodParameters =\n RouteRequestBody<'/acs/encoders/encode_access_method'>\n\n/**\n * @deprecated Use AcsEncodersEncodeAccessMethodParameters instead.\n */\nexport type AcsEncodersEncodeAccessMethodBody =\n AcsEncodersEncodeAccessMethodParameters\n\n/**\n * @deprecated Use AcsEncodersEncodeAccessMethodRequest instead.\n */\nexport type AcsEncodersEncodeAccessMethodResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/encode_access_method'>>\n>\n\nexport type AcsEncodersEncodeAccessMethodRequest = SeamHttpRequest<\n AcsEncodersEncodeAccessMethodResponse,\n 'action_attempt'\n>\n\nexport type AcsEncodersEncodeAccessMethodOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type AcsEncodersEncodeCredentialParameters =\n RouteRequestBody<'/acs/encoders/encode_credential'>\n\n/**\n * @deprecated Use AcsEncodersEncodeCredentialParameters instead.\n */\nexport type AcsEncodersEncodeCredentialBody =\n AcsEncodersEncodeCredentialParameters\n\n/**\n * @deprecated Use AcsEncodersEncodeCredentialRequest instead.\n */\nexport type AcsEncodersEncodeCredentialResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/encode_credential'>>\n>\n\nexport type AcsEncodersEncodeCredentialRequest = SeamHttpRequest<\n AcsEncodersEncodeCredentialResponse,\n 'action_attempt'\n>\n\nexport type AcsEncodersEncodeCredentialOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type AcsEncodersGetParameters = RouteRequestBody<'/acs/encoders/get'>\n\n/**\n * @deprecated Use AcsEncodersGetParameters instead.\n */\nexport type AcsEncodersGetParams = AcsEncodersGetParameters\n\n/**\n * @deprecated Use AcsEncodersGetRequest instead.\n */\nexport type AcsEncodersGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/get'>>\n>\n\nexport type AcsEncodersGetRequest = SeamHttpRequest<\n AcsEncodersGetResponse,\n 'acs_encoder'\n>\n\nexport type AcsEncodersGetOptions = Record<string, never>\n\nexport type AcsEncodersListParameters = RouteRequestParams<'/acs/encoders/list'>\n\n/**\n * @deprecated Use AcsEncodersListParameters instead.\n */\nexport type AcsEncodersListParams = AcsEncodersListParameters\n\n/**\n * @deprecated Use AcsEncodersListRequest instead.\n */\nexport type AcsEncodersListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/list'>>\n>\n\nexport type AcsEncodersListRequest = SeamHttpRequest<\n AcsEncodersListResponse,\n 'acs_encoders'\n>\n\nexport type AcsEncodersListOptions = Record<string, never>\n\nexport type AcsEncodersScanCredentialParameters =\n RouteRequestBody<'/acs/encoders/scan_credential'>\n\n/**\n * @deprecated Use AcsEncodersScanCredentialParameters instead.\n */\nexport type AcsEncodersScanCredentialBody = AcsEncodersScanCredentialParameters\n\n/**\n * @deprecated Use AcsEncodersScanCredentialRequest instead.\n */\nexport type AcsEncodersScanCredentialResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/scan_credential'>>\n>\n\nexport type AcsEncodersScanCredentialRequest = SeamHttpRequest<\n AcsEncodersScanCredentialResponse,\n 'action_attempt'\n>\n\nexport type AcsEncodersScanCredentialOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsEntrances {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsEntrances> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsEntrances.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsEntrances.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsEntrancesGetParameters,\n options: AcsEntrancesGetOptions = {},\n ): AcsEntrancesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrance',\n options,\n })\n }\n\n grantAccess(\n parameters?: AcsEntrancesGrantAccessParameters,\n options: AcsEntrancesGrantAccessOptions = {},\n ): AcsEntrancesGrantAccessRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/grant_access',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n list(\n parameters?: AcsEntrancesListParameters,\n options: AcsEntrancesListOptions = {},\n ): AcsEntrancesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrances',\n options,\n })\n }\n\n listCredentialsWithAccess(\n parameters?: AcsEntrancesListCredentialsWithAccessParameters,\n options: AcsEntrancesListCredentialsWithAccessOptions = {},\n ): AcsEntrancesListCredentialsWithAccessRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/list_credentials_with_access',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credentials',\n options,\n })\n }\n}\n\nexport type AcsEntrancesGetParameters = RouteRequestBody<'/acs/entrances/get'>\n\n/**\n * @deprecated Use AcsEntrancesGetParameters instead.\n */\nexport type AcsEntrancesGetParams = AcsEntrancesGetParameters\n\n/**\n * @deprecated Use AcsEntrancesGetRequest instead.\n */\nexport type AcsEntrancesGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/get'>>\n>\n\nexport type AcsEntrancesGetRequest = SeamHttpRequest<\n AcsEntrancesGetResponse,\n 'acs_entrance'\n>\n\nexport type AcsEntrancesGetOptions = Record<string, never>\n\nexport type AcsEntrancesGrantAccessParameters =\n RouteRequestBody<'/acs/entrances/grant_access'>\n\n/**\n * @deprecated Use AcsEntrancesGrantAccessParameters instead.\n */\nexport type AcsEntrancesGrantAccessBody = AcsEntrancesGrantAccessParameters\n\n/**\n * @deprecated Use AcsEntrancesGrantAccessRequest instead.\n */\nexport type AcsEntrancesGrantAccessResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/grant_access'>>\n>\n\nexport type AcsEntrancesGrantAccessRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsEntrancesGrantAccessOptions = Record<string, never>\n\nexport type AcsEntrancesListParameters = RouteRequestBody<'/acs/entrances/list'>\n\n/**\n * @deprecated Use AcsEntrancesListParameters instead.\n */\nexport type AcsEntrancesListParams = AcsEntrancesListParameters\n\n/**\n * @deprecated Use AcsEntrancesListRequest instead.\n */\nexport type AcsEntrancesListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/list'>>\n>\n\nexport type AcsEntrancesListRequest = SeamHttpRequest<\n AcsEntrancesListResponse,\n 'acs_entrances'\n>\n\nexport type AcsEntrancesListOptions = Record<string, never>\n\nexport type AcsEntrancesListCredentialsWithAccessParameters =\n RouteRequestBody<'/acs/entrances/list_credentials_with_access'>\n\n/**\n * @deprecated Use AcsEntrancesListCredentialsWithAccessParameters instead.\n */\nexport type AcsEntrancesListCredentialsWithAccessParams =\n AcsEntrancesListCredentialsWithAccessParameters\n\n/**\n * @deprecated Use AcsEntrancesListCredentialsWithAccessRequest instead.\n */\nexport type AcsEntrancesListCredentialsWithAccessResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/list_credentials_with_access'>>\n>\n\nexport type AcsEntrancesListCredentialsWithAccessRequest = SeamHttpRequest<\n AcsEntrancesListCredentialsWithAccessResponse,\n 'acs_credentials'\n>\n\nexport type AcsEntrancesListCredentialsWithAccessOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsSystems {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsSystems> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsSystems.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsSystems.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsSystemsGetParameters,\n options: AcsSystemsGetOptions = {},\n ): AcsSystemsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/systems/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_system',\n options,\n })\n }\n\n list(\n parameters?: AcsSystemsListParameters,\n options: AcsSystemsListOptions = {},\n ): AcsSystemsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/systems/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_systems',\n options,\n })\n }\n\n listCompatibleCredentialManagerAcsSystems(\n parameters?: AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters,\n options: AcsSystemsListCompatibleCredentialManagerAcsSystemsOptions = {},\n ): AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/systems/list_compatible_credential_manager_acs_systems',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_systems',\n options,\n })\n }\n}\n\nexport type AcsSystemsGetParameters = RouteRequestBody<'/acs/systems/get'>\n\n/**\n * @deprecated Use AcsSystemsGetParameters instead.\n */\nexport type AcsSystemsGetParams = AcsSystemsGetParameters\n\n/**\n * @deprecated Use AcsSystemsGetRequest instead.\n */\nexport type AcsSystemsGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/systems/get'>>\n>\n\nexport type AcsSystemsGetRequest = SeamHttpRequest<\n AcsSystemsGetResponse,\n 'acs_system'\n>\n\nexport type AcsSystemsGetOptions = Record<string, never>\n\nexport type AcsSystemsListParameters = RouteRequestBody<'/acs/systems/list'>\n\n/**\n * @deprecated Use AcsSystemsListParameters instead.\n */\nexport type AcsSystemsListParams = AcsSystemsListParameters\n\n/**\n * @deprecated Use AcsSystemsListRequest instead.\n */\nexport type AcsSystemsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/systems/list'>>\n>\n\nexport type AcsSystemsListRequest = SeamHttpRequest<\n AcsSystemsListResponse,\n 'acs_systems'\n>\n\nexport type AcsSystemsListOptions = Record<string, never>\n\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters =\n RouteRequestBody<'/acs/systems/list_compatible_credential_manager_acs_systems'>\n\n/**\n * @deprecated Use AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters instead.\n */\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsParams =\n AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters\n\n/**\n * @deprecated Use AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest instead.\n */\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/systems/list_compatible_credential_manager_acs_systems'>\n >\n >\n\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest =\n SeamHttpRequest<\n AcsSystemsListCompatibleCredentialManagerAcsSystemsResponse,\n 'acs_systems'\n >\n\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsUsersUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsUsersUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsUsersUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsUsersUnmanaged.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsUsersUnmanagedGetParameters,\n options: AcsUsersUnmanagedGetOptions = {},\n ): AcsUsersUnmanagedGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_user',\n options,\n })\n }\n\n list(\n parameters?: AcsUsersUnmanagedListParameters,\n options: AcsUsersUnmanagedListOptions = {},\n ): AcsUsersUnmanagedListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/unmanaged/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_users',\n options,\n })\n }\n}\n\nexport type AcsUsersUnmanagedGetParameters =\n RouteRequestBody<'/acs/users/unmanaged/get'>\n\n/**\n * @deprecated Use AcsUsersUnmanagedGetParameters instead.\n */\nexport type AcsUsersUnmanagedGetParams = AcsUsersUnmanagedGetParameters\n\n/**\n * @deprecated Use AcsUsersUnmanagedGetRequest instead.\n */\nexport type AcsUsersUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/unmanaged/get'>>\n>\n\nexport type AcsUsersUnmanagedGetRequest = SeamHttpRequest<\n AcsUsersUnmanagedGetResponse,\n 'acs_user'\n>\n\nexport type AcsUsersUnmanagedGetOptions = Record<string, never>\n\nexport type AcsUsersUnmanagedListParameters =\n RouteRequestBody<'/acs/users/unmanaged/list'>\n\n/**\n * @deprecated Use AcsUsersUnmanagedListParameters instead.\n */\nexport type AcsUsersUnmanagedListParams = AcsUsersUnmanagedListParameters\n\n/**\n * @deprecated Use AcsUsersUnmanagedListRequest instead.\n */\nexport type AcsUsersUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/unmanaged/list'>>\n>\n\nexport type AcsUsersUnmanagedListRequest = SeamHttpRequest<\n AcsUsersUnmanagedListResponse,\n 'acs_users'\n>\n\nexport type AcsUsersUnmanagedListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAcsUsersUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpAcsUsers {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsUsers> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsUsers.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsUsers.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get unmanaged(): SeamHttpAcsUsersUnmanaged {\n return SeamHttpAcsUsersUnmanaged.fromClient(this.client, this.defaults)\n }\n\n addToAccessGroup(\n parameters?: AcsUsersAddToAccessGroupParameters,\n options: AcsUsersAddToAccessGroupOptions = {},\n ): AcsUsersAddToAccessGroupRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/add_to_access_group',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: AcsUsersCreateParameters,\n options: AcsUsersCreateOptions = {},\n ): AcsUsersCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/create',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_user',\n options,\n })\n }\n\n delete(\n parameters?: AcsUsersDeleteParameters,\n options: AcsUsersDeleteOptions = {},\n ): AcsUsersDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AcsUsersGetParameters,\n options: AcsUsersGetOptions = {},\n ): AcsUsersGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_user',\n options,\n })\n }\n\n list(\n parameters?: AcsUsersListParameters,\n options: AcsUsersListOptions = {},\n ): AcsUsersListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_users',\n options,\n })\n }\n\n listAccessibleEntrances(\n parameters?: AcsUsersListAccessibleEntrancesParameters,\n options: AcsUsersListAccessibleEntrancesOptions = {},\n ): AcsUsersListAccessibleEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/list_accessible_entrances',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrances',\n options,\n })\n }\n\n removeFromAccessGroup(\n parameters?: AcsUsersRemoveFromAccessGroupParameters,\n options: AcsUsersRemoveFromAccessGroupOptions = {},\n ): AcsUsersRemoveFromAccessGroupRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/remove_from_access_group',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n revokeAccessToAllEntrances(\n parameters?: AcsUsersRevokeAccessToAllEntrancesParameters,\n options: AcsUsersRevokeAccessToAllEntrancesOptions = {},\n ): AcsUsersRevokeAccessToAllEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/revoke_access_to_all_entrances',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n suspend(\n parameters?: AcsUsersSuspendParameters,\n options: AcsUsersSuspendOptions = {},\n ): AcsUsersSuspendRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/suspend',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n unsuspend(\n parameters?: AcsUsersUnsuspendParameters,\n options: AcsUsersUnsuspendOptions = {},\n ): AcsUsersUnsuspendRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/unsuspend',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: AcsUsersUpdateParameters,\n options: AcsUsersUpdateOptions = {},\n ): AcsUsersUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AcsUsersAddToAccessGroupParameters =\n RouteRequestBody<'/acs/users/add_to_access_group'>\n\n/**\n * @deprecated Use AcsUsersAddToAccessGroupParameters instead.\n */\nexport type AcsUsersAddToAccessGroupBody = AcsUsersAddToAccessGroupParameters\n\n/**\n * @deprecated Use AcsUsersAddToAccessGroupRequest instead.\n */\nexport type AcsUsersAddToAccessGroupResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/add_to_access_group'>>\n>\n\nexport type AcsUsersAddToAccessGroupRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsUsersAddToAccessGroupOptions = Record<string, never>\n\nexport type AcsUsersCreateParameters = RouteRequestBody<'/acs/users/create'>\n\n/**\n * @deprecated Use AcsUsersCreateParameters instead.\n */\nexport type AcsUsersCreateBody = AcsUsersCreateParameters\n\n/**\n * @deprecated Use AcsUsersCreateRequest instead.\n */\nexport type AcsUsersCreateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/create'>>\n>\n\nexport type AcsUsersCreateRequest = SeamHttpRequest<\n AcsUsersCreateResponse,\n 'acs_user'\n>\n\nexport type AcsUsersCreateOptions = Record<string, never>\n\nexport type AcsUsersDeleteParameters = RouteRequestBody<'/acs/users/delete'>\n\n/**\n * @deprecated Use AcsUsersDeleteParameters instead.\n */\nexport type AcsUsersDeleteParams = AcsUsersDeleteParameters\n\n/**\n * @deprecated Use AcsUsersDeleteRequest instead.\n */\nexport type AcsUsersDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/delete'>>\n>\n\nexport type AcsUsersDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsUsersDeleteOptions = Record<string, never>\n\nexport type AcsUsersGetParameters = RouteRequestBody<'/acs/users/get'>\n\n/**\n * @deprecated Use AcsUsersGetParameters instead.\n */\nexport type AcsUsersGetParams = AcsUsersGetParameters\n\n/**\n * @deprecated Use AcsUsersGetRequest instead.\n */\nexport type AcsUsersGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/get'>>\n>\n\nexport type AcsUsersGetRequest = SeamHttpRequest<\n AcsUsersGetResponse,\n 'acs_user'\n>\n\nexport type AcsUsersGetOptions = Record<string, never>\n\nexport type AcsUsersListParameters = RouteRequestBody<'/acs/users/list'>\n\n/**\n * @deprecated Use AcsUsersListParameters instead.\n */\nexport type AcsUsersListParams = AcsUsersListParameters\n\n/**\n * @deprecated Use AcsUsersListRequest instead.\n */\nexport type AcsUsersListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/list'>>\n>\n\nexport type AcsUsersListRequest = SeamHttpRequest<\n AcsUsersListResponse,\n 'acs_users'\n>\n\nexport type AcsUsersListOptions = Record<string, never>\n\nexport type AcsUsersListAccessibleEntrancesParameters =\n RouteRequestBody<'/acs/users/list_accessible_entrances'>\n\n/**\n * @deprecated Use AcsUsersListAccessibleEntrancesParameters instead.\n */\nexport type AcsUsersListAccessibleEntrancesParams =\n AcsUsersListAccessibleEntrancesParameters\n\n/**\n * @deprecated Use AcsUsersListAccessibleEntrancesRequest instead.\n */\nexport type AcsUsersListAccessibleEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/list_accessible_entrances'>>\n>\n\nexport type AcsUsersListAccessibleEntrancesRequest = SeamHttpRequest<\n AcsUsersListAccessibleEntrancesResponse,\n 'acs_entrances'\n>\n\nexport type AcsUsersListAccessibleEntrancesOptions = Record<string, never>\n\nexport type AcsUsersRemoveFromAccessGroupParameters =\n RouteRequestBody<'/acs/users/remove_from_access_group'>\n\n/**\n * @deprecated Use AcsUsersRemoveFromAccessGroupParameters instead.\n */\nexport type AcsUsersRemoveFromAccessGroupParams =\n AcsUsersRemoveFromAccessGroupParameters\n\n/**\n * @deprecated Use AcsUsersRemoveFromAccessGroupRequest instead.\n */\nexport type AcsUsersRemoveFromAccessGroupResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/remove_from_access_group'>>\n>\n\nexport type AcsUsersRemoveFromAccessGroupRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type AcsUsersRemoveFromAccessGroupOptions = Record<string, never>\n\nexport type AcsUsersRevokeAccessToAllEntrancesParameters =\n RouteRequestBody<'/acs/users/revoke_access_to_all_entrances'>\n\n/**\n * @deprecated Use AcsUsersRevokeAccessToAllEntrancesParameters instead.\n */\nexport type AcsUsersRevokeAccessToAllEntrancesBody =\n AcsUsersRevokeAccessToAllEntrancesParameters\n\n/**\n * @deprecated Use AcsUsersRevokeAccessToAllEntrancesRequest instead.\n */\nexport type AcsUsersRevokeAccessToAllEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/revoke_access_to_all_entrances'>>\n>\n\nexport type AcsUsersRevokeAccessToAllEntrancesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type AcsUsersRevokeAccessToAllEntrancesOptions = Record<string, never>\n\nexport type AcsUsersSuspendParameters = RouteRequestBody<'/acs/users/suspend'>\n\n/**\n * @deprecated Use AcsUsersSuspendParameters instead.\n */\nexport type AcsUsersSuspendBody = AcsUsersSuspendParameters\n\n/**\n * @deprecated Use AcsUsersSuspendRequest instead.\n */\nexport type AcsUsersSuspendResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/suspend'>>\n>\n\nexport type AcsUsersSuspendRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsUsersSuspendOptions = Record<string, never>\n\nexport type AcsUsersUnsuspendParameters =\n RouteRequestBody<'/acs/users/unsuspend'>\n\n/**\n * @deprecated Use AcsUsersUnsuspendParameters instead.\n */\nexport type AcsUsersUnsuspendBody = AcsUsersUnsuspendParameters\n\n/**\n * @deprecated Use AcsUsersUnsuspendRequest instead.\n */\nexport type AcsUsersUnsuspendResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/unsuspend'>>\n>\n\nexport type AcsUsersUnsuspendRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsUsersUnsuspendOptions = Record<string, never>\n\nexport type AcsUsersUpdateParameters = RouteRequestBody<'/acs/users/update'>\n\n/**\n * @deprecated Use AcsUsersUpdateParameters instead.\n */\nexport type AcsUsersUpdateBody = AcsUsersUpdateParameters\n\n/**\n * @deprecated Use AcsUsersUpdateRequest instead.\n */\nexport type AcsUsersUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/update'>>\n>\n\nexport type AcsUsersUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type AcsUsersUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpAcsAccessGroups } from './access-groups/index.js'\nimport { SeamHttpAcsCredentialPools } from './credential-pools/index.js'\nimport { SeamHttpAcsCredentialProvisioningAutomations } from './credential-provisioning-automations/index.js'\nimport { SeamHttpAcsCredentials } from './credentials/index.js'\nimport { SeamHttpAcsEncoders } from './encoders/index.js'\nimport { SeamHttpAcsEntrances } from './entrances/index.js'\nimport { SeamHttpAcsSystems } from './systems/index.js'\nimport { SeamHttpAcsUsers } from './users/index.js'\n\nexport class SeamHttpAcs {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcs> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcs.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcs.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get accessGroups(): SeamHttpAcsAccessGroups {\n return SeamHttpAcsAccessGroups.fromClient(this.client, this.defaults)\n }\n\n get credentialPools(): SeamHttpAcsCredentialPools {\n return SeamHttpAcsCredentialPools.fromClient(this.client, this.defaults)\n }\n\n get credentialProvisioningAutomations(): SeamHttpAcsCredentialProvisioningAutomations {\n return SeamHttpAcsCredentialProvisioningAutomations.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get credentials(): SeamHttpAcsCredentials {\n return SeamHttpAcsCredentials.fromClient(this.client, this.defaults)\n }\n\n get encoders(): SeamHttpAcsEncoders {\n return SeamHttpAcsEncoders.fromClient(this.client, this.defaults)\n }\n\n get entrances(): SeamHttpAcsEntrances {\n return SeamHttpAcsEntrances.fromClient(this.client, this.defaults)\n }\n\n get systems(): SeamHttpAcsSystems {\n return SeamHttpAcsSystems.fromClient(this.client, this.defaults)\n }\n\n get users(): SeamHttpAcsUsers {\n return SeamHttpAcsUsers.fromClient(this.client, this.defaults)\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpActionAttempts {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpActionAttempts> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpActionAttempts.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpActionAttempts.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: ActionAttemptsGetParameters,\n options: ActionAttemptsGetOptions = {},\n ): ActionAttemptsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/action_attempts/get',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n list(\n parameters?: ActionAttemptsListParameters,\n options: ActionAttemptsListOptions = {},\n ): ActionAttemptsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/action_attempts/list',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempts',\n options,\n })\n }\n}\n\nexport type ActionAttemptsGetParameters =\n RouteRequestBody<'/action_attempts/get'>\n\n/**\n * @deprecated Use ActionAttemptsGetParameters instead.\n */\nexport type ActionAttemptsGetParams = ActionAttemptsGetParameters\n\n/**\n * @deprecated Use ActionAttemptsGetRequest instead.\n */\nexport type ActionAttemptsGetResponse = SetNonNullable<\n Required<RouteResponse<'/action_attempts/get'>>\n>\n\nexport type ActionAttemptsGetRequest = SeamHttpRequest<\n ActionAttemptsGetResponse,\n 'action_attempt'\n>\n\nexport type ActionAttemptsGetOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ActionAttemptsListParameters =\n RouteRequestBody<'/action_attempts/list'>\n\n/**\n * @deprecated Use ActionAttemptsListParameters instead.\n */\nexport type ActionAttemptsListParams = ActionAttemptsListParameters\n\n/**\n * @deprecated Use ActionAttemptsListRequest instead.\n */\nexport type ActionAttemptsListResponse = SetNonNullable<\n Required<RouteResponse<'/action_attempts/list'>>\n>\n\nexport type ActionAttemptsListRequest = SeamHttpRequest<\n ActionAttemptsListResponse,\n 'action_attempts'\n>\n\nexport type ActionAttemptsListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpBridges {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpBridges> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpBridges.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpBridges.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: BridgesGetParameters,\n options: BridgesGetOptions = {},\n ): BridgesGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/bridges/get',\n method: 'POST',\n body: parameters,\n responseKey: 'bridge',\n options,\n })\n }\n\n list(\n parameters?: BridgesListParameters,\n options: BridgesListOptions = {},\n ): BridgesListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/bridges/list',\n method: 'POST',\n body: parameters,\n responseKey: 'bridges',\n options,\n })\n }\n}\n\nexport type BridgesGetParameters = RouteRequestBody<'/bridges/get'>\n\n/**\n * @deprecated Use BridgesGetParameters instead.\n */\nexport type BridgesGetParams = BridgesGetParameters\n\n/**\n * @deprecated Use BridgesGetRequest instead.\n */\nexport type BridgesGetResponse = SetNonNullable<\n Required<RouteResponse<'/bridges/get'>>\n>\n\nexport type BridgesGetRequest = SeamHttpRequest<BridgesGetResponse, 'bridge'>\n\nexport type BridgesGetOptions = Record<string, never>\n\nexport type BridgesListParameters = RouteRequestBody<'/bridges/list'>\n\n/**\n * @deprecated Use BridgesListParameters instead.\n */\nexport type BridgesListParams = BridgesListParameters\n\n/**\n * @deprecated Use BridgesListRequest instead.\n */\nexport type BridgesListResponse = SetNonNullable<\n Required<RouteResponse<'/bridges/list'>>\n>\n\nexport type BridgesListRequest = SeamHttpRequest<BridgesListResponse, 'bridges'>\n\nexport type BridgesListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpConnectWebviews {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpConnectWebviews> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpConnectWebviews.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpConnectWebviews.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: ConnectWebviewsCreateParameters,\n options: ConnectWebviewsCreateOptions = {},\n ): ConnectWebviewsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/create',\n method: 'POST',\n body: parameters,\n responseKey: 'connect_webview',\n options,\n })\n }\n\n delete(\n parameters?: ConnectWebviewsDeleteParameters,\n options: ConnectWebviewsDeleteOptions = {},\n ): ConnectWebviewsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ConnectWebviewsGetParameters,\n options: ConnectWebviewsGetOptions = {},\n ): ConnectWebviewsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/get',\n method: 'POST',\n body: parameters,\n responseKey: 'connect_webview',\n options,\n })\n }\n\n list(\n parameters?: ConnectWebviewsListParameters,\n options: ConnectWebviewsListOptions = {},\n ): ConnectWebviewsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/list',\n method: 'POST',\n body: parameters,\n responseKey: 'connect_webviews',\n options,\n })\n }\n}\n\nexport type ConnectWebviewsCreateParameters =\n RouteRequestBody<'/connect_webviews/create'>\n\n/**\n * @deprecated Use ConnectWebviewsCreateParameters instead.\n */\nexport type ConnectWebviewsCreateBody = ConnectWebviewsCreateParameters\n\n/**\n * @deprecated Use ConnectWebviewsCreateRequest instead.\n */\nexport type ConnectWebviewsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/create'>>\n>\n\nexport type ConnectWebviewsCreateRequest = SeamHttpRequest<\n ConnectWebviewsCreateResponse,\n 'connect_webview'\n>\n\nexport type ConnectWebviewsCreateOptions = Record<string, never>\n\nexport type ConnectWebviewsDeleteParameters =\n RouteRequestBody<'/connect_webviews/delete'>\n\n/**\n * @deprecated Use ConnectWebviewsDeleteParameters instead.\n */\nexport type ConnectWebviewsDeleteParams = ConnectWebviewsDeleteParameters\n\n/**\n * @deprecated Use ConnectWebviewsDeleteRequest instead.\n */\nexport type ConnectWebviewsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/delete'>>\n>\n\nexport type ConnectWebviewsDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type ConnectWebviewsDeleteOptions = Record<string, never>\n\nexport type ConnectWebviewsGetParameters =\n RouteRequestBody<'/connect_webviews/get'>\n\n/**\n * @deprecated Use ConnectWebviewsGetParameters instead.\n */\nexport type ConnectWebviewsGetParams = ConnectWebviewsGetParameters\n\n/**\n * @deprecated Use ConnectWebviewsGetRequest instead.\n */\nexport type ConnectWebviewsGetResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/get'>>\n>\n\nexport type ConnectWebviewsGetRequest = SeamHttpRequest<\n ConnectWebviewsGetResponse,\n 'connect_webview'\n>\n\nexport type ConnectWebviewsGetOptions = Record<string, never>\n\nexport type ConnectWebviewsListParameters =\n RouteRequestBody<'/connect_webviews/list'>\n\n/**\n * @deprecated Use ConnectWebviewsListParameters instead.\n */\nexport type ConnectWebviewsListParams = ConnectWebviewsListParameters\n\n/**\n * @deprecated Use ConnectWebviewsListRequest instead.\n */\nexport type ConnectWebviewsListResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/list'>>\n>\n\nexport type ConnectWebviewsListRequest = SeamHttpRequest<\n ConnectWebviewsListResponse,\n 'connect_webviews'\n>\n\nexport type ConnectWebviewsListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpConnectedAccounts {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpConnectedAccounts> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpConnectedAccounts.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpConnectedAccounts.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n parameters?: ConnectedAccountsDeleteParameters,\n options: ConnectedAccountsDeleteOptions = {},\n ): ConnectedAccountsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ConnectedAccountsGetParameters,\n options: ConnectedAccountsGetOptions = {},\n ): ConnectedAccountsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/get',\n method: 'GET',\n params: parameters,\n responseKey: 'connected_account',\n options,\n })\n }\n\n list(\n parameters?: ConnectedAccountsListParameters,\n options: ConnectedAccountsListOptions = {},\n ): ConnectedAccountsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/list',\n method: 'POST',\n body: parameters,\n responseKey: 'connected_accounts',\n options,\n })\n }\n\n sync(\n parameters?: ConnectedAccountsSyncParameters,\n options: ConnectedAccountsSyncOptions = {},\n ): ConnectedAccountsSyncRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/sync',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: ConnectedAccountsUpdateParameters,\n options: ConnectedAccountsUpdateOptions = {},\n ): ConnectedAccountsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/update',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type ConnectedAccountsDeleteParameters =\n RouteRequestBody<'/connected_accounts/delete'>\n\n/**\n * @deprecated Use ConnectedAccountsDeleteParameters instead.\n */\nexport type ConnectedAccountsDeleteParams = ConnectedAccountsDeleteParameters\n\n/**\n * @deprecated Use ConnectedAccountsDeleteRequest instead.\n */\nexport type ConnectedAccountsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/delete'>>\n>\n\nexport type ConnectedAccountsDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type ConnectedAccountsDeleteOptions = Record<string, never>\n\nexport type ConnectedAccountsGetParameters =\n RouteRequestParams<'/connected_accounts/get'>\n\n/**\n * @deprecated Use ConnectedAccountsGetParameters instead.\n */\nexport type ConnectedAccountsGetParams = ConnectedAccountsGetParameters\n\n/**\n * @deprecated Use ConnectedAccountsGetRequest instead.\n */\nexport type ConnectedAccountsGetResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/get'>>\n>\n\nexport type ConnectedAccountsGetRequest = SeamHttpRequest<\n ConnectedAccountsGetResponse,\n 'connected_account'\n>\n\nexport type ConnectedAccountsGetOptions = Record<string, never>\n\nexport type ConnectedAccountsListParameters =\n RouteRequestBody<'/connected_accounts/list'>\n\n/**\n * @deprecated Use ConnectedAccountsListParameters instead.\n */\nexport type ConnectedAccountsListParams = ConnectedAccountsListParameters\n\n/**\n * @deprecated Use ConnectedAccountsListRequest instead.\n */\nexport type ConnectedAccountsListResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/list'>>\n>\n\nexport type ConnectedAccountsListRequest = SeamHttpRequest<\n ConnectedAccountsListResponse,\n 'connected_accounts'\n>\n\nexport type ConnectedAccountsListOptions = Record<string, never>\n\nexport type ConnectedAccountsSyncParameters =\n RouteRequestBody<'/connected_accounts/sync'>\n\n/**\n * @deprecated Use ConnectedAccountsSyncParameters instead.\n */\nexport type ConnectedAccountsSyncBody = ConnectedAccountsSyncParameters\n\n/**\n * @deprecated Use ConnectedAccountsSyncRequest instead.\n */\nexport type ConnectedAccountsSyncResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/sync'>>\n>\n\nexport type ConnectedAccountsSyncRequest = SeamHttpRequest<void, undefined>\n\nexport type ConnectedAccountsSyncOptions = Record<string, never>\n\nexport type ConnectedAccountsUpdateParameters =\n RouteRequestBody<'/connected_accounts/update'>\n\n/**\n * @deprecated Use ConnectedAccountsUpdateParameters instead.\n */\nexport type ConnectedAccountsUpdateBody = ConnectedAccountsUpdateParameters\n\n/**\n * @deprecated Use ConnectedAccountsUpdateRequest instead.\n */\nexport type ConnectedAccountsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/update'>>\n>\n\nexport type ConnectedAccountsUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type ConnectedAccountsUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpDevicesSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpDevicesSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpDevicesSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpDevicesSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n connect(\n parameters?: DevicesSimulateConnectParameters,\n options: DevicesSimulateConnectOptions = {},\n ): DevicesSimulateConnectRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/connect',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n disconnect(\n parameters?: DevicesSimulateDisconnectParameters,\n options: DevicesSimulateDisconnectOptions = {},\n ): DevicesSimulateDisconnectRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/disconnect',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n remove(\n parameters?: DevicesSimulateRemoveParameters,\n options: DevicesSimulateRemoveOptions = {},\n ): DevicesSimulateRemoveRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/remove',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type DevicesSimulateConnectParameters =\n RouteRequestBody<'/devices/simulate/connect'>\n\n/**\n * @deprecated Use DevicesSimulateConnectParameters instead.\n */\nexport type DevicesSimulateConnectBody = DevicesSimulateConnectParameters\n\n/**\n * @deprecated Use DevicesSimulateConnectRequest instead.\n */\nexport type DevicesSimulateConnectResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/connect'>>\n>\n\nexport type DevicesSimulateConnectRequest = SeamHttpRequest<void, undefined>\n\nexport type DevicesSimulateConnectOptions = Record<string, never>\n\nexport type DevicesSimulateDisconnectParameters =\n RouteRequestBody<'/devices/simulate/disconnect'>\n\n/**\n * @deprecated Use DevicesSimulateDisconnectParameters instead.\n */\nexport type DevicesSimulateDisconnectBody = DevicesSimulateDisconnectParameters\n\n/**\n * @deprecated Use DevicesSimulateDisconnectRequest instead.\n */\nexport type DevicesSimulateDisconnectResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/disconnect'>>\n>\n\nexport type DevicesSimulateDisconnectRequest = SeamHttpRequest<void, undefined>\n\nexport type DevicesSimulateDisconnectOptions = Record<string, never>\n\nexport type DevicesSimulateRemoveParameters =\n RouteRequestBody<'/devices/simulate/remove'>\n\n/**\n * @deprecated Use DevicesSimulateRemoveParameters instead.\n */\nexport type DevicesSimulateRemoveParams = DevicesSimulateRemoveParameters\n\n/**\n * @deprecated Use DevicesSimulateRemoveRequest instead.\n */\nexport type DevicesSimulateRemoveResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/remove'>>\n>\n\nexport type DevicesSimulateRemoveRequest = SeamHttpRequest<void, undefined>\n\nexport type DevicesSimulateRemoveOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpDevicesUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpDevicesUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpDevicesUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpDevicesUnmanaged.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: DevicesUnmanagedGetParameters,\n options: DevicesUnmanagedGetOptions = {},\n ): DevicesUnmanagedGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'device',\n options,\n })\n }\n\n list(\n parameters?: DevicesUnmanagedListParameters,\n options: DevicesUnmanagedListOptions = {},\n ): DevicesUnmanagedListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/unmanaged/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n update(\n parameters?: DevicesUnmanagedUpdateParameters,\n options: DevicesUnmanagedUpdateOptions = {},\n ): DevicesUnmanagedUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/unmanaged/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type DevicesUnmanagedGetParameters =\n RouteRequestBody<'/devices/unmanaged/get'>\n\n/**\n * @deprecated Use DevicesUnmanagedGetParameters instead.\n */\nexport type DevicesUnmanagedGetParams = DevicesUnmanagedGetParameters\n\n/**\n * @deprecated Use DevicesUnmanagedGetRequest instead.\n */\nexport type DevicesUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/devices/unmanaged/get'>>\n>\n\nexport type DevicesUnmanagedGetRequest = SeamHttpRequest<\n DevicesUnmanagedGetResponse,\n 'device'\n>\n\nexport type DevicesUnmanagedGetOptions = Record<string, never>\n\nexport type DevicesUnmanagedListParameters =\n RouteRequestBody<'/devices/unmanaged/list'>\n\n/**\n * @deprecated Use DevicesUnmanagedListParameters instead.\n */\nexport type DevicesUnmanagedListParams = DevicesUnmanagedListParameters\n\n/**\n * @deprecated Use DevicesUnmanagedListRequest instead.\n */\nexport type DevicesUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/devices/unmanaged/list'>>\n>\n\nexport type DevicesUnmanagedListRequest = SeamHttpRequest<\n DevicesUnmanagedListResponse,\n 'devices'\n>\n\nexport type DevicesUnmanagedListOptions = Record<string, never>\n\nexport type DevicesUnmanagedUpdateParameters =\n RouteRequestBody<'/devices/unmanaged/update'>\n\n/**\n * @deprecated Use DevicesUnmanagedUpdateParameters instead.\n */\nexport type DevicesUnmanagedUpdateBody = DevicesUnmanagedUpdateParameters\n\n/**\n * @deprecated Use DevicesUnmanagedUpdateRequest instead.\n */\nexport type DevicesUnmanagedUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/devices/unmanaged/update'>>\n>\n\nexport type DevicesUnmanagedUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type DevicesUnmanagedUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpDevicesSimulate } from './simulate/index.js'\nimport { SeamHttpDevicesUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpDevices {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpDevices> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpDevices.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpDevices.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpDevicesSimulate {\n return SeamHttpDevicesSimulate.fromClient(this.client, this.defaults)\n }\n\n get unmanaged(): SeamHttpDevicesUnmanaged {\n return SeamHttpDevicesUnmanaged.fromClient(this.client, this.defaults)\n }\n\n delete(\n parameters?: DevicesDeleteParameters,\n options: DevicesDeleteOptions = {},\n ): DevicesDeleteRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/devices/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: DevicesGetParameters,\n options: DevicesGetOptions = {},\n ): DevicesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/get',\n method: 'POST',\n body: parameters,\n responseKey: 'device',\n options,\n })\n }\n\n list(\n parameters?: DevicesListParameters,\n options: DevicesListOptions = {},\n ): DevicesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n listDeviceProviders(\n parameters?: DevicesListDeviceProvidersParameters,\n options: DevicesListDeviceProvidersOptions = {},\n ): DevicesListDeviceProvidersRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/list_device_providers',\n method: 'POST',\n body: parameters,\n responseKey: 'device_providers',\n options,\n })\n }\n\n update(\n parameters?: DevicesUpdateParameters,\n options: DevicesUpdateOptions = {},\n ): DevicesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type DevicesDeleteParameters = RouteRequestBody<'/devices/delete'>\n\n/**\n * @deprecated Use DevicesDeleteParameters instead.\n */\nexport type DevicesDeleteParams = DevicesDeleteParameters\n\n/**\n * @deprecated Use DevicesDeleteRequest instead.\n */\nexport type DevicesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/devices/delete'>>\n>\n\nexport type DevicesDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type DevicesDeleteOptions = Record<string, never>\n\nexport type DevicesGetParameters = RouteRequestBody<'/devices/get'>\n\n/**\n * @deprecated Use DevicesGetParameters instead.\n */\nexport type DevicesGetParams = DevicesGetParameters\n\n/**\n * @deprecated Use DevicesGetRequest instead.\n */\nexport type DevicesGetResponse = SetNonNullable<\n Required<RouteResponse<'/devices/get'>>\n>\n\nexport type DevicesGetRequest = SeamHttpRequest<DevicesGetResponse, 'device'>\n\nexport type DevicesGetOptions = Record<string, never>\n\nexport type DevicesListParameters = RouteRequestBody<'/devices/list'>\n\n/**\n * @deprecated Use DevicesListParameters instead.\n */\nexport type DevicesListParams = DevicesListParameters\n\n/**\n * @deprecated Use DevicesListRequest instead.\n */\nexport type DevicesListResponse = SetNonNullable<\n Required<RouteResponse<'/devices/list'>>\n>\n\nexport type DevicesListRequest = SeamHttpRequest<DevicesListResponse, 'devices'>\n\nexport type DevicesListOptions = Record<string, never>\n\nexport type DevicesListDeviceProvidersParameters =\n RouteRequestBody<'/devices/list_device_providers'>\n\n/**\n * @deprecated Use DevicesListDeviceProvidersParameters instead.\n */\nexport type DevicesListDeviceProvidersParams =\n DevicesListDeviceProvidersParameters\n\n/**\n * @deprecated Use DevicesListDeviceProvidersRequest instead.\n */\nexport type DevicesListDeviceProvidersResponse = SetNonNullable<\n Required<RouteResponse<'/devices/list_device_providers'>>\n>\n\nexport type DevicesListDeviceProvidersRequest = SeamHttpRequest<\n DevicesListDeviceProvidersResponse,\n 'device_providers'\n>\n\nexport type DevicesListDeviceProvidersOptions = Record<string, never>\n\nexport type DevicesUpdateParameters = RouteRequestBody<'/devices/update'>\n\n/**\n * @deprecated Use DevicesUpdateParameters instead.\n */\nexport type DevicesUpdateBody = DevicesUpdateParameters\n\n/**\n * @deprecated Use DevicesUpdateRequest instead.\n */\nexport type DevicesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/devices/update'>>\n>\n\nexport type DevicesUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type DevicesUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpEvents {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpEvents> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpEvents.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpEvents.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: EventsGetParameters,\n options: EventsGetOptions = {},\n ): EventsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/events/get',\n method: 'POST',\n body: parameters,\n responseKey: 'event',\n options,\n })\n }\n\n list(\n parameters?: EventsListParameters,\n options: EventsListOptions = {},\n ): EventsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/events/list',\n method: 'POST',\n body: parameters,\n responseKey: 'events',\n options,\n })\n }\n}\n\nexport type EventsGetParameters = RouteRequestBody<'/events/get'>\n\n/**\n * @deprecated Use EventsGetParameters instead.\n */\nexport type EventsGetParams = EventsGetParameters\n\n/**\n * @deprecated Use EventsGetRequest instead.\n */\nexport type EventsGetResponse = SetNonNullable<\n Required<RouteResponse<'/events/get'>>\n>\n\nexport type EventsGetRequest = SeamHttpRequest<EventsGetResponse, 'event'>\n\nexport type EventsGetOptions = Record<string, never>\n\nexport type EventsListParameters = RouteRequestBody<'/events/list'>\n\n/**\n * @deprecated Use EventsListParameters instead.\n */\nexport type EventsListParams = EventsListParameters\n\n/**\n * @deprecated Use EventsListRequest instead.\n */\nexport type EventsListResponse = SetNonNullable<\n Required<RouteResponse<'/events/list'>>\n>\n\nexport type EventsListRequest = SeamHttpRequest<EventsListResponse, 'events'>\n\nexport type EventsListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpLocksSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpLocksSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpLocksSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpLocksSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n keypadCodeEntry(\n parameters?: LocksSimulateKeypadCodeEntryParameters,\n options: LocksSimulateKeypadCodeEntryOptions = {},\n ): LocksSimulateKeypadCodeEntryRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/locks/simulate/keypad_code_entry',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n manualLockViaKeypad(\n parameters?: LocksSimulateManualLockViaKeypadParameters,\n options: LocksSimulateManualLockViaKeypadOptions = {},\n ): LocksSimulateManualLockViaKeypadRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/locks/simulate/manual_lock_via_keypad',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type LocksSimulateKeypadCodeEntryParameters =\n RouteRequestBody<'/locks/simulate/keypad_code_entry'>\n\n/**\n * @deprecated Use LocksSimulateKeypadCodeEntryParameters instead.\n */\nexport type LocksSimulateKeypadCodeEntryBody =\n LocksSimulateKeypadCodeEntryParameters\n\n/**\n * @deprecated Use LocksSimulateKeypadCodeEntryRequest instead.\n */\nexport type LocksSimulateKeypadCodeEntryResponse = SetNonNullable<\n Required<RouteResponse<'/locks/simulate/keypad_code_entry'>>\n>\n\nexport type LocksSimulateKeypadCodeEntryRequest = SeamHttpRequest<\n LocksSimulateKeypadCodeEntryResponse,\n 'action_attempt'\n>\n\nexport type LocksSimulateKeypadCodeEntryOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type LocksSimulateManualLockViaKeypadParameters =\n RouteRequestBody<'/locks/simulate/manual_lock_via_keypad'>\n\n/**\n * @deprecated Use LocksSimulateManualLockViaKeypadParameters instead.\n */\nexport type LocksSimulateManualLockViaKeypadBody =\n LocksSimulateManualLockViaKeypadParameters\n\n/**\n * @deprecated Use LocksSimulateManualLockViaKeypadRequest instead.\n */\nexport type LocksSimulateManualLockViaKeypadResponse = SetNonNullable<\n Required<RouteResponse<'/locks/simulate/manual_lock_via_keypad'>>\n>\n\nexport type LocksSimulateManualLockViaKeypadRequest = SeamHttpRequest<\n LocksSimulateManualLockViaKeypadResponse,\n 'action_attempt'\n>\n\nexport type LocksSimulateManualLockViaKeypadOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpLocksSimulate } from './simulate/index.js'\n\nexport class SeamHttpLocks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpLocks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpLocks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpLocks.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpLocksSimulate {\n return SeamHttpLocksSimulate.fromClient(this.client, this.defaults)\n }\n\n get(\n parameters?: LocksGetParameters,\n options: LocksGetOptions = {},\n ): LocksGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/get',\n method: 'POST',\n body: parameters,\n responseKey: 'device',\n options,\n })\n }\n\n list(\n parameters?: LocksListParameters,\n options: LocksListOptions = {},\n ): LocksListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n lockDoor(\n parameters?: LocksLockDoorParameters,\n options: LocksLockDoorOptions = {},\n ): LocksLockDoorRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/lock_door',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n unlockDoor(\n parameters?: LocksUnlockDoorParameters,\n options: LocksUnlockDoorOptions = {},\n ): LocksUnlockDoorRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/unlock_door',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type LocksGetParameters = RouteRequestBody<'/locks/get'>\n\n/**\n * @deprecated Use LocksGetParameters instead.\n */\nexport type LocksGetParams = LocksGetParameters\n\n/**\n * @deprecated Use LocksGetRequest instead.\n */\nexport type LocksGetResponse = SetNonNullable<\n Required<RouteResponse<'/locks/get'>>\n>\n\nexport type LocksGetRequest = SeamHttpRequest<LocksGetResponse, 'device'>\n\nexport type LocksGetOptions = Record<string, never>\n\nexport type LocksListParameters = RouteRequestBody<'/locks/list'>\n\n/**\n * @deprecated Use LocksListParameters instead.\n */\nexport type LocksListParams = LocksListParameters\n\n/**\n * @deprecated Use LocksListRequest instead.\n */\nexport type LocksListResponse = SetNonNullable<\n Required<RouteResponse<'/locks/list'>>\n>\n\nexport type LocksListRequest = SeamHttpRequest<LocksListResponse, 'devices'>\n\nexport type LocksListOptions = Record<string, never>\n\nexport type LocksLockDoorParameters = RouteRequestBody<'/locks/lock_door'>\n\n/**\n * @deprecated Use LocksLockDoorParameters instead.\n */\nexport type LocksLockDoorBody = LocksLockDoorParameters\n\n/**\n * @deprecated Use LocksLockDoorRequest instead.\n */\nexport type LocksLockDoorResponse = SetNonNullable<\n Required<RouteResponse<'/locks/lock_door'>>\n>\n\nexport type LocksLockDoorRequest = SeamHttpRequest<\n LocksLockDoorResponse,\n 'action_attempt'\n>\n\nexport type LocksLockDoorOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type LocksUnlockDoorParameters = RouteRequestBody<'/locks/unlock_door'>\n\n/**\n * @deprecated Use LocksUnlockDoorParameters instead.\n */\nexport type LocksUnlockDoorBody = LocksUnlockDoorParameters\n\n/**\n * @deprecated Use LocksUnlockDoorRequest instead.\n */\nexport type LocksUnlockDoorResponse = SetNonNullable<\n Required<RouteResponse<'/locks/unlock_door'>>\n>\n\nexport type LocksUnlockDoorRequest = SeamHttpRequest<\n LocksUnlockDoorResponse,\n 'action_attempt'\n>\n\nexport type LocksUnlockDoorOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpNetworks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNetworks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNetworks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNetworks.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: NetworksGetParameters,\n options: NetworksGetOptions = {},\n ): NetworksGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/networks/get',\n method: 'POST',\n body: parameters,\n responseKey: 'network',\n options,\n })\n }\n\n list(\n parameters?: NetworksListParameters,\n options: NetworksListOptions = {},\n ): NetworksListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/networks/list',\n method: 'POST',\n body: parameters,\n responseKey: 'networks',\n options,\n })\n }\n}\n\nexport type NetworksGetParameters = RouteRequestBody<'/networks/get'>\n\n/**\n * @deprecated Use NetworksGetParameters instead.\n */\nexport type NetworksGetParams = NetworksGetParameters\n\n/**\n * @deprecated Use NetworksGetRequest instead.\n */\nexport type NetworksGetResponse = SetNonNullable<\n Required<RouteResponse<'/networks/get'>>\n>\n\nexport type NetworksGetRequest = SeamHttpRequest<NetworksGetResponse, 'network'>\n\nexport type NetworksGetOptions = Record<string, never>\n\nexport type NetworksListParameters = RouteRequestBody<'/networks/list'>\n\n/**\n * @deprecated Use NetworksListParameters instead.\n */\nexport type NetworksListParams = NetworksListParameters\n\n/**\n * @deprecated Use NetworksListRequest instead.\n */\nexport type NetworksListResponse = SetNonNullable<\n Required<RouteResponse<'/networks/list'>>\n>\n\nexport type NetworksListRequest = SeamHttpRequest<\n NetworksListResponse,\n 'networks'\n>\n\nexport type NetworksListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpNoiseSensorsNoiseThresholds {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNoiseSensorsNoiseThresholds> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNoiseSensorsNoiseThresholds.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNoiseSensorsNoiseThresholds.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: NoiseSensorsNoiseThresholdsCreateParameters,\n options: NoiseSensorsNoiseThresholdsCreateOptions = {},\n ): NoiseSensorsNoiseThresholdsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/create',\n method: 'POST',\n body: parameters,\n responseKey: 'noise_threshold',\n options,\n })\n }\n\n delete(\n parameters?: NoiseSensorsNoiseThresholdsDeleteParameters,\n options: NoiseSensorsNoiseThresholdsDeleteOptions = {},\n ): NoiseSensorsNoiseThresholdsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: NoiseSensorsNoiseThresholdsGetParameters,\n options: NoiseSensorsNoiseThresholdsGetOptions = {},\n ): NoiseSensorsNoiseThresholdsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/get',\n method: 'POST',\n body: parameters,\n responseKey: 'noise_threshold',\n options,\n })\n }\n\n list(\n parameters?: NoiseSensorsNoiseThresholdsListParameters,\n options: NoiseSensorsNoiseThresholdsListOptions = {},\n ): NoiseSensorsNoiseThresholdsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/list',\n method: 'POST',\n body: parameters,\n responseKey: 'noise_thresholds',\n options,\n })\n }\n\n update(\n parameters?: NoiseSensorsNoiseThresholdsUpdateParameters,\n options: NoiseSensorsNoiseThresholdsUpdateOptions = {},\n ): NoiseSensorsNoiseThresholdsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/update',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type NoiseSensorsNoiseThresholdsCreateParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/create'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsCreateParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsCreateBody =\n NoiseSensorsNoiseThresholdsCreateParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsCreateRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/create'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsCreateRequest = SeamHttpRequest<\n NoiseSensorsNoiseThresholdsCreateResponse,\n 'noise_threshold'\n>\n\nexport type NoiseSensorsNoiseThresholdsCreateOptions = Record<string, never>\n\nexport type NoiseSensorsNoiseThresholdsDeleteParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/delete'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsDeleteParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsDeleteParams =\n NoiseSensorsNoiseThresholdsDeleteParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsDeleteRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/delete'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsDeleteRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type NoiseSensorsNoiseThresholdsDeleteOptions = Record<string, never>\n\nexport type NoiseSensorsNoiseThresholdsGetParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/get'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsGetParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsGetParams =\n NoiseSensorsNoiseThresholdsGetParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsGetRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsGetResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/get'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsGetRequest = SeamHttpRequest<\n NoiseSensorsNoiseThresholdsGetResponse,\n 'noise_threshold'\n>\n\nexport type NoiseSensorsNoiseThresholdsGetOptions = Record<string, never>\n\nexport type NoiseSensorsNoiseThresholdsListParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/list'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsListParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsListParams =\n NoiseSensorsNoiseThresholdsListParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsListRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsListResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/list'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsListRequest = SeamHttpRequest<\n NoiseSensorsNoiseThresholdsListResponse,\n 'noise_thresholds'\n>\n\nexport type NoiseSensorsNoiseThresholdsListOptions = Record<string, never>\n\nexport type NoiseSensorsNoiseThresholdsUpdateParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/update'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsUpdateParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsUpdateBody =\n NoiseSensorsNoiseThresholdsUpdateParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsUpdateRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/update'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsUpdateRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type NoiseSensorsNoiseThresholdsUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpNoiseSensorsSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNoiseSensorsSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNoiseSensorsSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNoiseSensorsSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n triggerNoiseThreshold(\n parameters?: NoiseSensorsSimulateTriggerNoiseThresholdParameters,\n options: NoiseSensorsSimulateTriggerNoiseThresholdOptions = {},\n ): NoiseSensorsSimulateTriggerNoiseThresholdRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/simulate/trigger_noise_threshold',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type NoiseSensorsSimulateTriggerNoiseThresholdParameters =\n RouteRequestBody<'/noise_sensors/simulate/trigger_noise_threshold'>\n\n/**\n * @deprecated Use NoiseSensorsSimulateTriggerNoiseThresholdParameters instead.\n */\nexport type NoiseSensorsSimulateTriggerNoiseThresholdBody =\n NoiseSensorsSimulateTriggerNoiseThresholdParameters\n\n/**\n * @deprecated Use NoiseSensorsSimulateTriggerNoiseThresholdRequest instead.\n */\nexport type NoiseSensorsSimulateTriggerNoiseThresholdResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/simulate/trigger_noise_threshold'>>\n>\n\nexport type NoiseSensorsSimulateTriggerNoiseThresholdRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type NoiseSensorsSimulateTriggerNoiseThresholdOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpNoiseSensorsNoiseThresholds } from './noise-thresholds/index.js'\nimport { SeamHttpNoiseSensorsSimulate } from './simulate/index.js'\n\nexport class SeamHttpNoiseSensors {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNoiseSensors> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNoiseSensors.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNoiseSensors.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get noiseThresholds(): SeamHttpNoiseSensorsNoiseThresholds {\n return SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get simulate(): SeamHttpNoiseSensorsSimulate {\n return SeamHttpNoiseSensorsSimulate.fromClient(this.client, this.defaults)\n }\n\n list(\n parameters?: NoiseSensorsListParameters,\n options: NoiseSensorsListOptions = {},\n ): NoiseSensorsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n}\n\nexport type NoiseSensorsListParameters = RouteRequestBody<'/noise_sensors/list'>\n\n/**\n * @deprecated Use NoiseSensorsListParameters instead.\n */\nexport type NoiseSensorsListParams = NoiseSensorsListParameters\n\n/**\n * @deprecated Use NoiseSensorsListRequest instead.\n */\nexport type NoiseSensorsListResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/list'>>\n>\n\nexport type NoiseSensorsListRequest = SeamHttpRequest<\n NoiseSensorsListResponse,\n 'devices'\n>\n\nexport type NoiseSensorsListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpPhonesSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpPhonesSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpPhonesSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpPhonesSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n createSandboxPhone(\n parameters?: PhonesSimulateCreateSandboxPhoneParameters,\n options: PhonesSimulateCreateSandboxPhoneOptions = {},\n ): PhonesSimulateCreateSandboxPhoneRequest {\n return new SeamHttpRequest(this, {\n pathname: '/phones/simulate/create_sandbox_phone',\n method: 'POST',\n body: parameters,\n responseKey: 'phone',\n options,\n })\n }\n}\n\nexport type PhonesSimulateCreateSandboxPhoneParameters =\n RouteRequestBody<'/phones/simulate/create_sandbox_phone'>\n\n/**\n * @deprecated Use PhonesSimulateCreateSandboxPhoneParameters instead.\n */\nexport type PhonesSimulateCreateSandboxPhoneParams =\n PhonesSimulateCreateSandboxPhoneParameters\n\n/**\n * @deprecated Use PhonesSimulateCreateSandboxPhoneRequest instead.\n */\nexport type PhonesSimulateCreateSandboxPhoneResponse = SetNonNullable<\n Required<RouteResponse<'/phones/simulate/create_sandbox_phone'>>\n>\n\nexport type PhonesSimulateCreateSandboxPhoneRequest = SeamHttpRequest<\n PhonesSimulateCreateSandboxPhoneResponse,\n 'phone'\n>\n\nexport type PhonesSimulateCreateSandboxPhoneOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpPhonesSimulate } from './simulate/index.js'\n\nexport class SeamHttpPhones {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpPhones> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpPhones.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpPhones.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpPhonesSimulate {\n return SeamHttpPhonesSimulate.fromClient(this.client, this.defaults)\n }\n\n deactivate(\n parameters?: PhonesDeactivateParameters,\n options: PhonesDeactivateOptions = {},\n ): PhonesDeactivateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/phones/deactivate',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: PhonesGetParameters,\n options: PhonesGetOptions = {},\n ): PhonesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/phones/get',\n method: 'POST',\n body: parameters,\n responseKey: 'phone',\n options,\n })\n }\n\n list(\n parameters?: PhonesListParameters,\n options: PhonesListOptions = {},\n ): PhonesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/phones/list',\n method: 'POST',\n body: parameters,\n responseKey: 'phones',\n options,\n })\n }\n}\n\nexport type PhonesDeactivateParameters = RouteRequestBody<'/phones/deactivate'>\n\n/**\n * @deprecated Use PhonesDeactivateParameters instead.\n */\nexport type PhonesDeactivateParams = PhonesDeactivateParameters\n\n/**\n * @deprecated Use PhonesDeactivateRequest instead.\n */\nexport type PhonesDeactivateResponse = SetNonNullable<\n Required<RouteResponse<'/phones/deactivate'>>\n>\n\nexport type PhonesDeactivateRequest = SeamHttpRequest<void, undefined>\n\nexport type PhonesDeactivateOptions = Record<string, never>\n\nexport type PhonesGetParameters = RouteRequestBody<'/phones/get'>\n\n/**\n * @deprecated Use PhonesGetParameters instead.\n */\nexport type PhonesGetParams = PhonesGetParameters\n\n/**\n * @deprecated Use PhonesGetRequest instead.\n */\nexport type PhonesGetResponse = SetNonNullable<\n Required<RouteResponse<'/phones/get'>>\n>\n\nexport type PhonesGetRequest = SeamHttpRequest<PhonesGetResponse, 'phone'>\n\nexport type PhonesGetOptions = Record<string, never>\n\nexport type PhonesListParameters = RouteRequestBody<'/phones/list'>\n\n/**\n * @deprecated Use PhonesListParameters instead.\n */\nexport type PhonesListParams = PhonesListParameters\n\n/**\n * @deprecated Use PhonesListRequest instead.\n */\nexport type PhonesListResponse = SetNonNullable<\n Required<RouteResponse<'/phones/list'>>\n>\n\nexport type PhonesListRequest = SeamHttpRequest<PhonesListResponse, 'phones'>\n\nexport type PhonesListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamBridgeV1BridgeClientSessions {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamBridgeV1BridgeClientSessions {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamBridgeV1BridgeClientSessions(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamBridgeV1BridgeClientSessions {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamBridgeV1BridgeClientSessions(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamBridgeV1BridgeClientSessions {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamBridgeV1BridgeClientSessions(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamBridgeV1BridgeClientSessions> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamBridgeV1BridgeClientSessions.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamBridgeV1BridgeClientSessions.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamBridgeV1BridgeClientSessions {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamBridgeV1BridgeClientSessions(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamBridgeV1BridgeClientSessions {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamBridgeV1BridgeClientSessions(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: SeamBridgeV1BridgeClientSessionsCreateParameters,\n options: SeamBridgeV1BridgeClientSessionsCreateOptions = {},\n ): SeamBridgeV1BridgeClientSessionsCreateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/bridge/v1/bridge_client_sessions/create',\n method: 'POST',\n body: parameters,\n responseKey: 'bridge_client_session',\n options,\n })\n }\n\n get(\n parameters?: SeamBridgeV1BridgeClientSessionsGetParameters,\n options: SeamBridgeV1BridgeClientSessionsGetOptions = {},\n ): SeamBridgeV1BridgeClientSessionsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/bridge/v1/bridge_client_sessions/get',\n method: 'GET',\n params: parameters,\n responseKey: 'bridge_client_session',\n options,\n })\n }\n\n refreshTelemetryToken(\n parameters?: SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenParameters,\n options: SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenOptions = {},\n ): SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname:\n '/seam/bridge/v1/bridge_client_sessions/refresh_telemetry_token',\n method: 'POST',\n body: parameters,\n responseKey: 'bridge_client_session',\n options,\n })\n }\n\n regeneratePairingCode(\n parameters?: SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeParameters,\n options: SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeOptions = {},\n ): SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname:\n '/seam/bridge/v1/bridge_client_sessions/regenerate_pairing_code',\n method: 'POST',\n body: parameters,\n responseKey: 'bridge_client_session',\n options,\n })\n }\n\n reportStatus(\n parameters?: SeamBridgeV1BridgeClientSessionsReportStatusParameters,\n options: SeamBridgeV1BridgeClientSessionsReportStatusOptions = {},\n ): SeamBridgeV1BridgeClientSessionsReportStatusRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/bridge/v1/bridge_client_sessions/report_status',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type SeamBridgeV1BridgeClientSessionsCreateParameters =\n RouteRequestBody<'/seam/bridge/v1/bridge_client_sessions/create'>\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsCreateParameters instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsCreateBody =\n SeamBridgeV1BridgeClientSessionsCreateParameters\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsCreateRequest instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/seam/bridge/v1/bridge_client_sessions/create'>>\n>\n\nexport type SeamBridgeV1BridgeClientSessionsCreateRequest = SeamHttpRequest<\n SeamBridgeV1BridgeClientSessionsCreateResponse,\n 'bridge_client_session'\n>\n\nexport type SeamBridgeV1BridgeClientSessionsCreateOptions = Record<\n string,\n never\n>\n\nexport type SeamBridgeV1BridgeClientSessionsGetParameters =\n RouteRequestParams<'/seam/bridge/v1/bridge_client_sessions/get'>\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsGetParameters instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsGetParams =\n SeamBridgeV1BridgeClientSessionsGetParameters\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsGetRequest instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsGetResponse = SetNonNullable<\n Required<RouteResponse<'/seam/bridge/v1/bridge_client_sessions/get'>>\n>\n\nexport type SeamBridgeV1BridgeClientSessionsGetRequest = SeamHttpRequest<\n SeamBridgeV1BridgeClientSessionsGetResponse,\n 'bridge_client_session'\n>\n\nexport type SeamBridgeV1BridgeClientSessionsGetOptions = Record<string, never>\n\nexport type SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenParameters =\n RouteRequestBody<'/seam/bridge/v1/bridge_client_sessions/refresh_telemetry_token'>\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenParameters instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenBody =\n SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenParameters\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenRequest instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/seam/bridge/v1/bridge_client_sessions/refresh_telemetry_token'>\n >\n >\n\nexport type SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenRequest =\n SeamHttpRequest<\n SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenResponse,\n 'bridge_client_session'\n >\n\nexport type SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenOptions =\n Record<string, never>\n\nexport type SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeParameters =\n RouteRequestBody<'/seam/bridge/v1/bridge_client_sessions/regenerate_pairing_code'>\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeParameters instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeBody =\n SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeParameters\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeRequest instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/seam/bridge/v1/bridge_client_sessions/regenerate_pairing_code'>\n >\n >\n\nexport type SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeRequest =\n SeamHttpRequest<\n SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeResponse,\n 'bridge_client_session'\n >\n\nexport type SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeOptions =\n Record<string, never>\n\nexport type SeamBridgeV1BridgeClientSessionsReportStatusParameters =\n RouteRequestBody<'/seam/bridge/v1/bridge_client_sessions/report_status'>\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsReportStatusParameters instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsReportStatusBody =\n SeamBridgeV1BridgeClientSessionsReportStatusParameters\n\n/**\n * @deprecated Use SeamBridgeV1BridgeClientSessionsReportStatusRequest instead.\n */\nexport type SeamBridgeV1BridgeClientSessionsReportStatusResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/seam/bridge/v1/bridge_client_sessions/report_status'>\n >\n >\n\nexport type SeamBridgeV1BridgeClientSessionsReportStatusRequest =\n SeamHttpRequest<void, undefined>\n\nexport type SeamBridgeV1BridgeClientSessionsReportStatusOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestParams, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamBridgeV1BridgeConnectedSystems {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamBridgeV1BridgeConnectedSystems {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamBridgeV1BridgeConnectedSystems(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamBridgeV1BridgeConnectedSystems {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamBridgeV1BridgeConnectedSystems(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamBridgeV1BridgeConnectedSystems {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamBridgeV1BridgeConnectedSystems(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamBridgeV1BridgeConnectedSystems> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamBridgeV1BridgeConnectedSystems.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamBridgeV1BridgeConnectedSystems.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamBridgeV1BridgeConnectedSystems {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamBridgeV1BridgeConnectedSystems(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamBridgeV1BridgeConnectedSystems {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamBridgeV1BridgeConnectedSystems(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n list(\n parameters?: SeamBridgeV1BridgeConnectedSystemsListParameters,\n options: SeamBridgeV1BridgeConnectedSystemsListOptions = {},\n ): SeamBridgeV1BridgeConnectedSystemsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/bridge/v1/bridge_connected_systems/list',\n method: 'GET',\n params: parameters,\n responseKey: 'bridge_connected_systems',\n options,\n })\n }\n}\n\nexport type SeamBridgeV1BridgeConnectedSystemsListParameters =\n RouteRequestParams<'/seam/bridge/v1/bridge_connected_systems/list'>\n\n/**\n * @deprecated Use SeamBridgeV1BridgeConnectedSystemsListParameters instead.\n */\nexport type SeamBridgeV1BridgeConnectedSystemsListParams =\n SeamBridgeV1BridgeConnectedSystemsListParameters\n\n/**\n * @deprecated Use SeamBridgeV1BridgeConnectedSystemsListRequest instead.\n */\nexport type SeamBridgeV1BridgeConnectedSystemsListResponse = SetNonNullable<\n Required<RouteResponse<'/seam/bridge/v1/bridge_connected_systems/list'>>\n>\n\nexport type SeamBridgeV1BridgeConnectedSystemsListRequest = SeamHttpRequest<\n SeamBridgeV1BridgeConnectedSystemsListResponse,\n 'bridge_connected_systems'\n>\n\nexport type SeamBridgeV1BridgeConnectedSystemsListOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpSeamBridgeV1BridgeClientSessions } from './bridge-client-sessions/index.js'\nimport { SeamHttpSeamBridgeV1BridgeConnectedSystems } from './bridge-connected-systems/index.js'\n\nexport class SeamHttpSeamBridgeV1 {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamBridgeV1 {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamBridgeV1(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamBridgeV1 {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamBridgeV1(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamBridgeV1 {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamBridgeV1(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamBridgeV1> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamBridgeV1.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamBridgeV1.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamBridgeV1 {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamBridgeV1(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamBridgeV1 {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamBridgeV1(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get bridgeClientSessions(): SeamHttpSeamBridgeV1BridgeClientSessions {\n return SeamHttpSeamBridgeV1BridgeClientSessions.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get bridgeConnectedSystems(): SeamHttpSeamBridgeV1BridgeConnectedSystems {\n return SeamHttpSeamBridgeV1BridgeConnectedSystems.fromClient(\n this.client,\n this.defaults,\n )\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamInstantKeyV1ClientSessions {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamInstantKeyV1ClientSessions {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamInstantKeyV1ClientSessions(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamInstantKeyV1ClientSessions {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamInstantKeyV1ClientSessions(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamInstantKeyV1ClientSessions {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamInstantKeyV1ClientSessions(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamInstantKeyV1ClientSessions> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamInstantKeyV1ClientSessions.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamInstantKeyV1ClientSessions.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamInstantKeyV1ClientSessions {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamInstantKeyV1ClientSessions(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamInstantKeyV1ClientSessions {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamInstantKeyV1ClientSessions(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n exchangeShortCode(\n parameters?: SeamInstantKeyV1ClientSessionsExchangeShortCodeParameters,\n options: SeamInstantKeyV1ClientSessionsExchangeShortCodeOptions = {},\n ): SeamInstantKeyV1ClientSessionsExchangeShortCodeRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/instant_key/v1/client_sessions/exchange_short_code',\n method: 'POST',\n body: parameters,\n responseKey: 'client_session',\n options,\n })\n }\n}\n\nexport type SeamInstantKeyV1ClientSessionsExchangeShortCodeParameters =\n RouteRequestBody<'/seam/instant_key/v1/client_sessions/exchange_short_code'>\n\n/**\n * @deprecated Use SeamInstantKeyV1ClientSessionsExchangeShortCodeParameters instead.\n */\nexport type SeamInstantKeyV1ClientSessionsExchangeShortCodeBody =\n SeamInstantKeyV1ClientSessionsExchangeShortCodeParameters\n\n/**\n * @deprecated Use SeamInstantKeyV1ClientSessionsExchangeShortCodeRequest instead.\n */\nexport type SeamInstantKeyV1ClientSessionsExchangeShortCodeResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/seam/instant_key/v1/client_sessions/exchange_short_code'>\n >\n >\n\nexport type SeamInstantKeyV1ClientSessionsExchangeShortCodeRequest =\n SeamHttpRequest<\n SeamInstantKeyV1ClientSessionsExchangeShortCodeResponse,\n 'client_session'\n >\n\nexport type SeamInstantKeyV1ClientSessionsExchangeShortCodeOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpSeamInstantKeyV1ClientSessions } from './client-sessions/index.js'\n\nexport class SeamHttpSeamInstantKeyV1 {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamInstantKeyV1 {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamInstantKeyV1(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamInstantKeyV1 {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamInstantKeyV1(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamInstantKeyV1 {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamInstantKeyV1(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamInstantKeyV1> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamInstantKeyV1.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamInstantKeyV1.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamInstantKeyV1 {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamInstantKeyV1(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamInstantKeyV1 {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamInstantKeyV1(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get clientSessions(): SeamHttpSeamInstantKeyV1ClientSessions {\n return SeamHttpSeamInstantKeyV1ClientSessions.fromClient(\n this.client,\n this.defaults,\n )\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamMobileSdkV1AcsCredentials {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamMobileSdkV1AcsCredentials {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamMobileSdkV1AcsCredentials(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamMobileSdkV1AcsCredentials {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamMobileSdkV1AcsCredentials(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamMobileSdkV1AcsCredentials {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamMobileSdkV1AcsCredentials(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamMobileSdkV1AcsCredentials> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamMobileSdkV1AcsCredentials.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamMobileSdkV1AcsCredentials.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamMobileSdkV1AcsCredentials {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamMobileSdkV1AcsCredentials(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamMobileSdkV1AcsCredentials {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamMobileSdkV1AcsCredentials(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n list(\n parameters?: SeamMobileSdkV1AcsCredentialsListParameters,\n options: SeamMobileSdkV1AcsCredentialsListOptions = {},\n ): SeamMobileSdkV1AcsCredentialsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/mobile_sdk/v1/acs/credentials/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credentials',\n options,\n })\n }\n}\n\nexport type SeamMobileSdkV1AcsCredentialsListParameters =\n RouteRequestBody<'/seam/mobile_sdk/v1/acs/credentials/list'>\n\n/**\n * @deprecated Use SeamMobileSdkV1AcsCredentialsListParameters instead.\n */\nexport type SeamMobileSdkV1AcsCredentialsListParams =\n SeamMobileSdkV1AcsCredentialsListParameters\n\n/**\n * @deprecated Use SeamMobileSdkV1AcsCredentialsListRequest instead.\n */\nexport type SeamMobileSdkV1AcsCredentialsListResponse = SetNonNullable<\n Required<RouteResponse<'/seam/mobile_sdk/v1/acs/credentials/list'>>\n>\n\nexport type SeamMobileSdkV1AcsCredentialsListRequest = SeamHttpRequest<\n SeamMobileSdkV1AcsCredentialsListResponse,\n 'acs_credentials'\n>\n\nexport type SeamMobileSdkV1AcsCredentialsListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpSeamMobileSdkV1AcsCredentials } from './credentials/index.js'\n\nexport class SeamHttpSeamMobileSdkV1Acs {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamMobileSdkV1Acs {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamMobileSdkV1Acs(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamMobileSdkV1Acs {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamMobileSdkV1Acs(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamMobileSdkV1Acs {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamMobileSdkV1Acs(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamMobileSdkV1Acs> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamMobileSdkV1Acs.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamMobileSdkV1Acs.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamMobileSdkV1Acs {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamMobileSdkV1Acs(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamMobileSdkV1Acs {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamMobileSdkV1Acs(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get credentials(): SeamHttpSeamMobileSdkV1AcsCredentials {\n return SeamHttpSeamMobileSdkV1AcsCredentials.fromClient(\n this.client,\n this.defaults,\n )\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamMobileSdkV1PhoneSessions {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamMobileSdkV1PhoneSessions {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamMobileSdkV1PhoneSessions(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamMobileSdkV1PhoneSessions {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamMobileSdkV1PhoneSessions(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamMobileSdkV1PhoneSessions {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamMobileSdkV1PhoneSessions(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamMobileSdkV1PhoneSessions> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamMobileSdkV1PhoneSessions.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamMobileSdkV1PhoneSessions.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamMobileSdkV1PhoneSessions {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamMobileSdkV1PhoneSessions(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamMobileSdkV1PhoneSessions {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamMobileSdkV1PhoneSessions(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n getOrCreate(\n parameters?: SeamMobileSdkV1PhoneSessionsGetOrCreateParameters,\n options: SeamMobileSdkV1PhoneSessionsGetOrCreateOptions = {},\n ): SeamMobileSdkV1PhoneSessionsGetOrCreateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/mobile_sdk/v1/phone_sessions/get_or_create',\n method: 'POST',\n body: parameters,\n responseKey: 'phone_session',\n options,\n })\n }\n}\n\nexport type SeamMobileSdkV1PhoneSessionsGetOrCreateParameters =\n RouteRequestBody<'/seam/mobile_sdk/v1/phone_sessions/get_or_create'>\n\n/**\n * @deprecated Use SeamMobileSdkV1PhoneSessionsGetOrCreateParameters instead.\n */\nexport type SeamMobileSdkV1PhoneSessionsGetOrCreateBody =\n SeamMobileSdkV1PhoneSessionsGetOrCreateParameters\n\n/**\n * @deprecated Use SeamMobileSdkV1PhoneSessionsGetOrCreateRequest instead.\n */\nexport type SeamMobileSdkV1PhoneSessionsGetOrCreateResponse = SetNonNullable<\n Required<RouteResponse<'/seam/mobile_sdk/v1/phone_sessions/get_or_create'>>\n>\n\nexport type SeamMobileSdkV1PhoneSessionsGetOrCreateRequest = SeamHttpRequest<\n SeamMobileSdkV1PhoneSessionsGetOrCreateResponse,\n 'phone_session'\n>\n\nexport type SeamMobileSdkV1PhoneSessionsGetOrCreateOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpSeamMobileSdkV1Acs } from './acs/index.js'\nimport { SeamHttpSeamMobileSdkV1PhoneSessions } from './phone-sessions/index.js'\n\nexport class SeamHttpSeamMobileSdkV1 {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamMobileSdkV1 {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamMobileSdkV1(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamMobileSdkV1 {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamMobileSdkV1(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamMobileSdkV1 {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamMobileSdkV1(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamMobileSdkV1> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamMobileSdkV1.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamMobileSdkV1.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamMobileSdkV1 {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamMobileSdkV1(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamMobileSdkV1 {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamMobileSdkV1(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get acs(): SeamHttpSeamMobileSdkV1Acs {\n return SeamHttpSeamMobileSdkV1Acs.fromClient(this.client, this.defaults)\n }\n\n get phoneSessions(): SeamHttpSeamMobileSdkV1PhoneSessions {\n return SeamHttpSeamMobileSdkV1PhoneSessions.fromClient(\n this.client,\n this.defaults,\n )\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamPartnerV1BuildingBlocksSpaces> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamPartnerV1BuildingBlocksSpaces.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamPartnerV1BuildingBlocksSpaces.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n autoMap(\n parameters?: SeamPartnerV1BuildingBlocksSpacesAutoMapParameters,\n options: SeamPartnerV1BuildingBlocksSpacesAutoMapOptions = {},\n ): SeamPartnerV1BuildingBlocksSpacesAutoMapRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/partner/v1/building_blocks/spaces/auto_map',\n method: 'POST',\n body: parameters,\n responseKey: 'spaces',\n options,\n })\n }\n}\n\nexport type SeamPartnerV1BuildingBlocksSpacesAutoMapParameters =\n RouteRequestBody<'/seam/partner/v1/building_blocks/spaces/auto_map'>\n\n/**\n * @deprecated Use SeamPartnerV1BuildingBlocksSpacesAutoMapParameters instead.\n */\nexport type SeamPartnerV1BuildingBlocksSpacesAutoMapParams =\n SeamPartnerV1BuildingBlocksSpacesAutoMapParameters\n\n/**\n * @deprecated Use SeamPartnerV1BuildingBlocksSpacesAutoMapRequest instead.\n */\nexport type SeamPartnerV1BuildingBlocksSpacesAutoMapResponse = SetNonNullable<\n Required<RouteResponse<'/seam/partner/v1/building_blocks/spaces/auto_map'>>\n>\n\nexport type SeamPartnerV1BuildingBlocksSpacesAutoMapRequest = SeamHttpRequest<\n SeamPartnerV1BuildingBlocksSpacesAutoMapResponse,\n 'spaces'\n>\n\nexport type SeamPartnerV1BuildingBlocksSpacesAutoMapOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpSeamPartnerV1BuildingBlocksSpaces } from './spaces/index.js'\n\nexport class SeamHttpSeamPartnerV1BuildingBlocks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamPartnerV1BuildingBlocks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamPartnerV1BuildingBlocks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamPartnerV1BuildingBlocks.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get spaces(): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n return SeamHttpSeamPartnerV1BuildingBlocksSpaces.fromClient(\n this.client,\n this.defaults,\n )\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamPartnerV1Resources {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamPartnerV1Resources {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamPartnerV1Resources(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamPartnerV1Resources {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamPartnerV1Resources(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamPartnerV1Resources {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamPartnerV1Resources(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamPartnerV1Resources> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamPartnerV1Resources.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamPartnerV1Resources.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1Resources {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1Resources(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1Resources {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1Resources(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n list(\n parameters?: SeamPartnerV1ResourcesListParameters,\n options: SeamPartnerV1ResourcesListOptions = {},\n ): SeamPartnerV1ResourcesListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/partner/v1/resources/list',\n method: 'POST',\n body: parameters,\n responseKey: 'partner_resources',\n options,\n })\n }\n}\n\nexport type SeamPartnerV1ResourcesListParameters =\n RouteRequestBody<'/seam/partner/v1/resources/list'>\n\n/**\n * @deprecated Use SeamPartnerV1ResourcesListParameters instead.\n */\nexport type SeamPartnerV1ResourcesListParams =\n SeamPartnerV1ResourcesListParameters\n\n/**\n * @deprecated Use SeamPartnerV1ResourcesListRequest instead.\n */\nexport type SeamPartnerV1ResourcesListResponse = SetNonNullable<\n Required<RouteResponse<'/seam/partner/v1/resources/list'>>\n>\n\nexport type SeamPartnerV1ResourcesListRequest = SeamHttpRequest<\n SeamPartnerV1ResourcesListResponse,\n 'partner_resources'\n>\n\nexport type SeamPartnerV1ResourcesListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpSeamPartnerV1BuildingBlocks } from './building-blocks/index.js'\nimport { SeamHttpSeamPartnerV1Resources } from './resources/index.js'\n\nexport class SeamHttpSeamPartnerV1 {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamPartnerV1 {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamPartnerV1(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamPartnerV1 {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamPartnerV1(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamPartnerV1 {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamPartnerV1(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamPartnerV1> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamPartnerV1.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamPartnerV1.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1 {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1 {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get buildingBlocks(): SeamHttpSeamPartnerV1BuildingBlocks {\n return SeamHttpSeamPartnerV1BuildingBlocks.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get resources(): SeamHttpSeamPartnerV1Resources {\n return SeamHttpSeamPartnerV1Resources.fromClient(this.client, this.defaults)\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSpaces {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSpaces> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSpaces.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSpaces.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n addAcsEntrances(\n parameters?: SpacesAddAcsEntrancesParameters,\n options: SpacesAddAcsEntrancesOptions = {},\n ): SpacesAddAcsEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/add_acs_entrances',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n addDevices(\n parameters?: SpacesAddDevicesParameters,\n options: SpacesAddDevicesOptions = {},\n ): SpacesAddDevicesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/add_devices',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: SpacesCreateParameters,\n options: SpacesCreateOptions = {},\n ): SpacesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/create',\n method: 'POST',\n body: parameters,\n responseKey: 'space',\n options,\n })\n }\n\n delete(\n parameters?: SpacesDeleteParameters,\n options: SpacesDeleteOptions = {},\n ): SpacesDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: SpacesGetParameters,\n options: SpacesGetOptions = {},\n ): SpacesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/get',\n method: 'POST',\n body: parameters,\n responseKey: 'space',\n options,\n })\n }\n\n list(\n parameters?: SpacesListParameters,\n options: SpacesListOptions = {},\n ): SpacesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/list',\n method: 'GET',\n params: parameters,\n responseKey: 'spaces',\n options,\n })\n }\n\n removeAcsEntrances(\n parameters?: SpacesRemoveAcsEntrancesParameters,\n options: SpacesRemoveAcsEntrancesOptions = {},\n ): SpacesRemoveAcsEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/remove_acs_entrances',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n removeDevices(\n parameters?: SpacesRemoveDevicesParameters,\n options: SpacesRemoveDevicesOptions = {},\n ): SpacesRemoveDevicesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/remove_devices',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: SpacesUpdateParameters,\n options: SpacesUpdateOptions = {},\n ): SpacesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/update',\n method: 'PATCH',\n body: parameters,\n responseKey: 'space',\n options,\n })\n }\n}\n\nexport type SpacesAddAcsEntrancesParameters =\n RouteRequestBody<'/spaces/add_acs_entrances'>\n\n/**\n * @deprecated Use SpacesAddAcsEntrancesParameters instead.\n */\nexport type SpacesAddAcsEntrancesBody = SpacesAddAcsEntrancesParameters\n\n/**\n * @deprecated Use SpacesAddAcsEntrancesRequest instead.\n */\nexport type SpacesAddAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/add_acs_entrances'>>\n>\n\nexport type SpacesAddAcsEntrancesRequest = SeamHttpRequest<void, undefined>\n\nexport type SpacesAddAcsEntrancesOptions = Record<string, never>\n\nexport type SpacesAddDevicesParameters = RouteRequestBody<'/spaces/add_devices'>\n\n/**\n * @deprecated Use SpacesAddDevicesParameters instead.\n */\nexport type SpacesAddDevicesBody = SpacesAddDevicesParameters\n\n/**\n * @deprecated Use SpacesAddDevicesRequest instead.\n */\nexport type SpacesAddDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/add_devices'>>\n>\n\nexport type SpacesAddDevicesRequest = SeamHttpRequest<void, undefined>\n\nexport type SpacesAddDevicesOptions = Record<string, never>\n\nexport type SpacesCreateParameters = RouteRequestBody<'/spaces/create'>\n\n/**\n * @deprecated Use SpacesCreateParameters instead.\n */\nexport type SpacesCreateBody = SpacesCreateParameters\n\n/**\n * @deprecated Use SpacesCreateRequest instead.\n */\nexport type SpacesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/create'>>\n>\n\nexport type SpacesCreateRequest = SeamHttpRequest<SpacesCreateResponse, 'space'>\n\nexport type SpacesCreateOptions = Record<string, never>\n\nexport type SpacesDeleteParameters = RouteRequestBody<'/spaces/delete'>\n\n/**\n * @deprecated Use SpacesDeleteParameters instead.\n */\nexport type SpacesDeleteParams = SpacesDeleteParameters\n\n/**\n * @deprecated Use SpacesDeleteRequest instead.\n */\nexport type SpacesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/delete'>>\n>\n\nexport type SpacesDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type SpacesDeleteOptions = Record<string, never>\n\nexport type SpacesGetParameters = RouteRequestBody<'/spaces/get'>\n\n/**\n * @deprecated Use SpacesGetParameters instead.\n */\nexport type SpacesGetParams = SpacesGetParameters\n\n/**\n * @deprecated Use SpacesGetRequest instead.\n */\nexport type SpacesGetResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/get'>>\n>\n\nexport type SpacesGetRequest = SeamHttpRequest<SpacesGetResponse, 'space'>\n\nexport type SpacesGetOptions = Record<string, never>\n\nexport type SpacesListParameters = RouteRequestParams<'/spaces/list'>\n\n/**\n * @deprecated Use SpacesListParameters instead.\n */\nexport type SpacesListParams = SpacesListParameters\n\n/**\n * @deprecated Use SpacesListRequest instead.\n */\nexport type SpacesListResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/list'>>\n>\n\nexport type SpacesListRequest = SeamHttpRequest<SpacesListResponse, 'spaces'>\n\nexport type SpacesListOptions = Record<string, never>\n\nexport type SpacesRemoveAcsEntrancesParameters =\n RouteRequestBody<'/spaces/remove_acs_entrances'>\n\n/**\n * @deprecated Use SpacesRemoveAcsEntrancesParameters instead.\n */\nexport type SpacesRemoveAcsEntrancesParams = SpacesRemoveAcsEntrancesParameters\n\n/**\n * @deprecated Use SpacesRemoveAcsEntrancesRequest instead.\n */\nexport type SpacesRemoveAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/remove_acs_entrances'>>\n>\n\nexport type SpacesRemoveAcsEntrancesRequest = SeamHttpRequest<void, undefined>\n\nexport type SpacesRemoveAcsEntrancesOptions = Record<string, never>\n\nexport type SpacesRemoveDevicesParameters =\n RouteRequestBody<'/spaces/remove_devices'>\n\n/**\n * @deprecated Use SpacesRemoveDevicesParameters instead.\n */\nexport type SpacesRemoveDevicesParams = SpacesRemoveDevicesParameters\n\n/**\n * @deprecated Use SpacesRemoveDevicesRequest instead.\n */\nexport type SpacesRemoveDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/remove_devices'>>\n>\n\nexport type SpacesRemoveDevicesRequest = SeamHttpRequest<void, undefined>\n\nexport type SpacesRemoveDevicesOptions = Record<string, never>\n\nexport type SpacesUpdateParameters = RouteRequestBody<'/spaces/update'>\n\n/**\n * @deprecated Use SpacesUpdateParameters instead.\n */\nexport type SpacesUpdateBody = SpacesUpdateParameters\n\n/**\n * @deprecated Use SpacesUpdateRequest instead.\n */\nexport type SpacesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/update'>>\n>\n\nexport type SpacesUpdateRequest = SeamHttpRequest<SpacesUpdateResponse, 'space'>\n\nexport type SpacesUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpThermostatsDailyPrograms {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostatsDailyPrograms> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostatsDailyPrograms.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostatsDailyPrograms.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: ThermostatsDailyProgramsCreateParameters,\n options: ThermostatsDailyProgramsCreateOptions = {},\n ): ThermostatsDailyProgramsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/daily_programs/create',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat_daily_program',\n options,\n })\n }\n\n delete(\n parameters?: ThermostatsDailyProgramsDeleteParameters,\n options: ThermostatsDailyProgramsDeleteOptions = {},\n ): ThermostatsDailyProgramsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/daily_programs/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: ThermostatsDailyProgramsUpdateParameters,\n options: ThermostatsDailyProgramsUpdateOptions = {},\n ): ThermostatsDailyProgramsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/daily_programs/update',\n method: 'PATCH',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type ThermostatsDailyProgramsCreateParameters =\n RouteRequestBody<'/thermostats/daily_programs/create'>\n\n/**\n * @deprecated Use ThermostatsDailyProgramsCreateParameters instead.\n */\nexport type ThermostatsDailyProgramsCreateBody =\n ThermostatsDailyProgramsCreateParameters\n\n/**\n * @deprecated Use ThermostatsDailyProgramsCreateRequest instead.\n */\nexport type ThermostatsDailyProgramsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/daily_programs/create'>>\n>\n\nexport type ThermostatsDailyProgramsCreateRequest = SeamHttpRequest<\n ThermostatsDailyProgramsCreateResponse,\n 'thermostat_daily_program'\n>\n\nexport type ThermostatsDailyProgramsCreateOptions = Record<string, never>\n\nexport type ThermostatsDailyProgramsDeleteParameters =\n RouteRequestBody<'/thermostats/daily_programs/delete'>\n\n/**\n * @deprecated Use ThermostatsDailyProgramsDeleteParameters instead.\n */\nexport type ThermostatsDailyProgramsDeleteParams =\n ThermostatsDailyProgramsDeleteParameters\n\n/**\n * @deprecated Use ThermostatsDailyProgramsDeleteRequest instead.\n */\nexport type ThermostatsDailyProgramsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/daily_programs/delete'>>\n>\n\nexport type ThermostatsDailyProgramsDeleteRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type ThermostatsDailyProgramsDeleteOptions = Record<string, never>\n\nexport type ThermostatsDailyProgramsUpdateParameters =\n RouteRequestBody<'/thermostats/daily_programs/update'>\n\n/**\n * @deprecated Use ThermostatsDailyProgramsUpdateParameters instead.\n */\nexport type ThermostatsDailyProgramsUpdateBody =\n ThermostatsDailyProgramsUpdateParameters\n\n/**\n * @deprecated Use ThermostatsDailyProgramsUpdateRequest instead.\n */\nexport type ThermostatsDailyProgramsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/daily_programs/update'>>\n>\n\nexport type ThermostatsDailyProgramsUpdateRequest = SeamHttpRequest<\n ThermostatsDailyProgramsUpdateResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsDailyProgramsUpdateOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpThermostatsSchedules {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostatsSchedules> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostatsSchedules.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostatsSchedules.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: ThermostatsSchedulesCreateParameters,\n options: ThermostatsSchedulesCreateOptions = {},\n ): ThermostatsSchedulesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/create',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat_schedule',\n options,\n })\n }\n\n delete(\n parameters?: ThermostatsSchedulesDeleteParameters,\n options: ThermostatsSchedulesDeleteOptions = {},\n ): ThermostatsSchedulesDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ThermostatsSchedulesGetParameters,\n options: ThermostatsSchedulesGetOptions = {},\n ): ThermostatsSchedulesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/get',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat_schedule',\n options,\n })\n }\n\n list(\n parameters?: ThermostatsSchedulesListParameters,\n options: ThermostatsSchedulesListOptions = {},\n ): ThermostatsSchedulesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/list',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat_schedules',\n options,\n })\n }\n\n update(\n parameters?: ThermostatsSchedulesUpdateParameters,\n options: ThermostatsSchedulesUpdateOptions = {},\n ): ThermostatsSchedulesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type ThermostatsSchedulesCreateParameters =\n RouteRequestBody<'/thermostats/schedules/create'>\n\n/**\n * @deprecated Use ThermostatsSchedulesCreateParameters instead.\n */\nexport type ThermostatsSchedulesCreateBody =\n ThermostatsSchedulesCreateParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesCreateRequest instead.\n */\nexport type ThermostatsSchedulesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/create'>>\n>\n\nexport type ThermostatsSchedulesCreateRequest = SeamHttpRequest<\n ThermostatsSchedulesCreateResponse,\n 'thermostat_schedule'\n>\n\nexport type ThermostatsSchedulesCreateOptions = Record<string, never>\n\nexport type ThermostatsSchedulesDeleteParameters =\n RouteRequestBody<'/thermostats/schedules/delete'>\n\n/**\n * @deprecated Use ThermostatsSchedulesDeleteParameters instead.\n */\nexport type ThermostatsSchedulesDeleteParams =\n ThermostatsSchedulesDeleteParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesDeleteRequest instead.\n */\nexport type ThermostatsSchedulesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/delete'>>\n>\n\nexport type ThermostatsSchedulesDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type ThermostatsSchedulesDeleteOptions = Record<string, never>\n\nexport type ThermostatsSchedulesGetParameters =\n RouteRequestBody<'/thermostats/schedules/get'>\n\n/**\n * @deprecated Use ThermostatsSchedulesGetParameters instead.\n */\nexport type ThermostatsSchedulesGetParams = ThermostatsSchedulesGetParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesGetRequest instead.\n */\nexport type ThermostatsSchedulesGetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/get'>>\n>\n\nexport type ThermostatsSchedulesGetRequest = SeamHttpRequest<\n ThermostatsSchedulesGetResponse,\n 'thermostat_schedule'\n>\n\nexport type ThermostatsSchedulesGetOptions = Record<string, never>\n\nexport type ThermostatsSchedulesListParameters =\n RouteRequestBody<'/thermostats/schedules/list'>\n\n/**\n * @deprecated Use ThermostatsSchedulesListParameters instead.\n */\nexport type ThermostatsSchedulesListParams = ThermostatsSchedulesListParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesListRequest instead.\n */\nexport type ThermostatsSchedulesListResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/list'>>\n>\n\nexport type ThermostatsSchedulesListRequest = SeamHttpRequest<\n ThermostatsSchedulesListResponse,\n 'thermostat_schedules'\n>\n\nexport type ThermostatsSchedulesListOptions = Record<string, never>\n\nexport type ThermostatsSchedulesUpdateParameters =\n RouteRequestBody<'/thermostats/schedules/update'>\n\n/**\n * @deprecated Use ThermostatsSchedulesUpdateParameters instead.\n */\nexport type ThermostatsSchedulesUpdateBody =\n ThermostatsSchedulesUpdateParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesUpdateRequest instead.\n */\nexport type ThermostatsSchedulesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/update'>>\n>\n\nexport type ThermostatsSchedulesUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type ThermostatsSchedulesUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpThermostatsSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostatsSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostatsSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostatsSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n hvacModeAdjusted(\n parameters?: ThermostatsSimulateHvacModeAdjustedParameters,\n options: ThermostatsSimulateHvacModeAdjustedOptions = {},\n ): ThermostatsSimulateHvacModeAdjustedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/simulate/hvac_mode_adjusted',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n temperatureReached(\n parameters?: ThermostatsSimulateTemperatureReachedParameters,\n options: ThermostatsSimulateTemperatureReachedOptions = {},\n ): ThermostatsSimulateTemperatureReachedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/simulate/temperature_reached',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type ThermostatsSimulateHvacModeAdjustedParameters =\n RouteRequestBody<'/thermostats/simulate/hvac_mode_adjusted'>\n\n/**\n * @deprecated Use ThermostatsSimulateHvacModeAdjustedParameters instead.\n */\nexport type ThermostatsSimulateHvacModeAdjustedBody =\n ThermostatsSimulateHvacModeAdjustedParameters\n\n/**\n * @deprecated Use ThermostatsSimulateHvacModeAdjustedRequest instead.\n */\nexport type ThermostatsSimulateHvacModeAdjustedResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/simulate/hvac_mode_adjusted'>>\n>\n\nexport type ThermostatsSimulateHvacModeAdjustedRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type ThermostatsSimulateHvacModeAdjustedOptions = Record<string, never>\n\nexport type ThermostatsSimulateTemperatureReachedParameters =\n RouteRequestBody<'/thermostats/simulate/temperature_reached'>\n\n/**\n * @deprecated Use ThermostatsSimulateTemperatureReachedParameters instead.\n */\nexport type ThermostatsSimulateTemperatureReachedBody =\n ThermostatsSimulateTemperatureReachedParameters\n\n/**\n * @deprecated Use ThermostatsSimulateTemperatureReachedRequest instead.\n */\nexport type ThermostatsSimulateTemperatureReachedResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/simulate/temperature_reached'>>\n>\n\nexport type ThermostatsSimulateTemperatureReachedRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type ThermostatsSimulateTemperatureReachedOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpThermostatsDailyPrograms } from './daily-programs/index.js'\nimport { SeamHttpThermostatsSchedules } from './schedules/index.js'\nimport { SeamHttpThermostatsSimulate } from './simulate/index.js'\n\nexport class SeamHttpThermostats {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostats> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostats.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostats.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get dailyPrograms(): SeamHttpThermostatsDailyPrograms {\n return SeamHttpThermostatsDailyPrograms.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get schedules(): SeamHttpThermostatsSchedules {\n return SeamHttpThermostatsSchedules.fromClient(this.client, this.defaults)\n }\n\n get simulate(): SeamHttpThermostatsSimulate {\n return SeamHttpThermostatsSimulate.fromClient(this.client, this.defaults)\n }\n\n activateClimatePreset(\n parameters?: ThermostatsActivateClimatePresetParameters,\n options: ThermostatsActivateClimatePresetOptions = {},\n ): ThermostatsActivateClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/activate_climate_preset',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n cool(\n parameters?: ThermostatsCoolParameters,\n options: ThermostatsCoolOptions = {},\n ): ThermostatsCoolRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/cool',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n createClimatePreset(\n parameters?: ThermostatsCreateClimatePresetParameters,\n options: ThermostatsCreateClimatePresetOptions = {},\n ): ThermostatsCreateClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/create_climate_preset',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n deleteClimatePreset(\n parameters?: ThermostatsDeleteClimatePresetParameters,\n options: ThermostatsDeleteClimatePresetOptions = {},\n ): ThermostatsDeleteClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/delete_climate_preset',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ThermostatsGetParameters,\n options: ThermostatsGetOptions = {},\n ): ThermostatsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/get',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat',\n options,\n })\n }\n\n heat(\n parameters?: ThermostatsHeatParameters,\n options: ThermostatsHeatOptions = {},\n ): ThermostatsHeatRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/heat',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n heatCool(\n parameters?: ThermostatsHeatCoolParameters,\n options: ThermostatsHeatCoolOptions = {},\n ): ThermostatsHeatCoolRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/heat_cool',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n list(\n parameters?: ThermostatsListParameters,\n options: ThermostatsListOptions = {},\n ): ThermostatsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n off(\n parameters?: ThermostatsOffParameters,\n options: ThermostatsOffOptions = {},\n ): ThermostatsOffRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/off',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n setFallbackClimatePreset(\n parameters?: ThermostatsSetFallbackClimatePresetParameters,\n options: ThermostatsSetFallbackClimatePresetOptions = {},\n ): ThermostatsSetFallbackClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_fallback_climate_preset',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n setFanMode(\n parameters?: ThermostatsSetFanModeParameters,\n options: ThermostatsSetFanModeOptions = {},\n ): ThermostatsSetFanModeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_fan_mode',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n setHvacMode(\n parameters?: ThermostatsSetHvacModeParameters,\n options: ThermostatsSetHvacModeOptions = {},\n ): ThermostatsSetHvacModeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_hvac_mode',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n setTemperatureThreshold(\n parameters?: ThermostatsSetTemperatureThresholdParameters,\n options: ThermostatsSetTemperatureThresholdOptions = {},\n ): ThermostatsSetTemperatureThresholdRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_temperature_threshold',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n updateClimatePreset(\n parameters?: ThermostatsUpdateClimatePresetParameters,\n options: ThermostatsUpdateClimatePresetOptions = {},\n ): ThermostatsUpdateClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/update_climate_preset',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n updateWeeklyProgram(\n parameters?: ThermostatsUpdateWeeklyProgramParameters,\n options: ThermostatsUpdateWeeklyProgramOptions = {},\n ): ThermostatsUpdateWeeklyProgramRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/update_weekly_program',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type ThermostatsActivateClimatePresetParameters =\n RouteRequestBody<'/thermostats/activate_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsActivateClimatePresetParameters instead.\n */\nexport type ThermostatsActivateClimatePresetBody =\n ThermostatsActivateClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsActivateClimatePresetRequest instead.\n */\nexport type ThermostatsActivateClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/activate_climate_preset'>>\n>\n\nexport type ThermostatsActivateClimatePresetRequest = SeamHttpRequest<\n ThermostatsActivateClimatePresetResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsActivateClimatePresetOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsCoolParameters = RouteRequestBody<'/thermostats/cool'>\n\n/**\n * @deprecated Use ThermostatsCoolParameters instead.\n */\nexport type ThermostatsCoolBody = ThermostatsCoolParameters\n\n/**\n * @deprecated Use ThermostatsCoolRequest instead.\n */\nexport type ThermostatsCoolResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/cool'>>\n>\n\nexport type ThermostatsCoolRequest = SeamHttpRequest<\n ThermostatsCoolResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsCoolOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsCreateClimatePresetParameters =\n RouteRequestBody<'/thermostats/create_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsCreateClimatePresetParameters instead.\n */\nexport type ThermostatsCreateClimatePresetBody =\n ThermostatsCreateClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsCreateClimatePresetRequest instead.\n */\nexport type ThermostatsCreateClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/create_climate_preset'>>\n>\n\nexport type ThermostatsCreateClimatePresetRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type ThermostatsCreateClimatePresetOptions = Record<string, never>\n\nexport type ThermostatsDeleteClimatePresetParameters =\n RouteRequestBody<'/thermostats/delete_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsDeleteClimatePresetParameters instead.\n */\nexport type ThermostatsDeleteClimatePresetParams =\n ThermostatsDeleteClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsDeleteClimatePresetRequest instead.\n */\nexport type ThermostatsDeleteClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/delete_climate_preset'>>\n>\n\nexport type ThermostatsDeleteClimatePresetRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type ThermostatsDeleteClimatePresetOptions = Record<string, never>\n\nexport type ThermostatsGetParameters = RouteRequestBody<'/thermostats/get'>\n\n/**\n * @deprecated Use ThermostatsGetParameters instead.\n */\nexport type ThermostatsGetParams = ThermostatsGetParameters\n\n/**\n * @deprecated Use ThermostatsGetRequest instead.\n */\nexport type ThermostatsGetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/get'>>\n>\n\nexport type ThermostatsGetRequest = SeamHttpRequest<\n ThermostatsGetResponse,\n 'thermostat'\n>\n\nexport type ThermostatsGetOptions = Record<string, never>\n\nexport type ThermostatsHeatParameters = RouteRequestBody<'/thermostats/heat'>\n\n/**\n * @deprecated Use ThermostatsHeatParameters instead.\n */\nexport type ThermostatsHeatBody = ThermostatsHeatParameters\n\n/**\n * @deprecated Use ThermostatsHeatRequest instead.\n */\nexport type ThermostatsHeatResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/heat'>>\n>\n\nexport type ThermostatsHeatRequest = SeamHttpRequest<\n ThermostatsHeatResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsHeatOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsHeatCoolParameters =\n RouteRequestBody<'/thermostats/heat_cool'>\n\n/**\n * @deprecated Use ThermostatsHeatCoolParameters instead.\n */\nexport type ThermostatsHeatCoolBody = ThermostatsHeatCoolParameters\n\n/**\n * @deprecated Use ThermostatsHeatCoolRequest instead.\n */\nexport type ThermostatsHeatCoolResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/heat_cool'>>\n>\n\nexport type ThermostatsHeatCoolRequest = SeamHttpRequest<\n ThermostatsHeatCoolResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsHeatCoolOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsListParameters = RouteRequestBody<'/thermostats/list'>\n\n/**\n * @deprecated Use ThermostatsListParameters instead.\n */\nexport type ThermostatsListParams = ThermostatsListParameters\n\n/**\n * @deprecated Use ThermostatsListRequest instead.\n */\nexport type ThermostatsListResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/list'>>\n>\n\nexport type ThermostatsListRequest = SeamHttpRequest<\n ThermostatsListResponse,\n 'devices'\n>\n\nexport type ThermostatsListOptions = Record<string, never>\n\nexport type ThermostatsOffParameters = RouteRequestBody<'/thermostats/off'>\n\n/**\n * @deprecated Use ThermostatsOffParameters instead.\n */\nexport type ThermostatsOffBody = ThermostatsOffParameters\n\n/**\n * @deprecated Use ThermostatsOffRequest instead.\n */\nexport type ThermostatsOffResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/off'>>\n>\n\nexport type ThermostatsOffRequest = SeamHttpRequest<\n ThermostatsOffResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsOffOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsSetFallbackClimatePresetParameters =\n RouteRequestBody<'/thermostats/set_fallback_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsSetFallbackClimatePresetParameters instead.\n */\nexport type ThermostatsSetFallbackClimatePresetBody =\n ThermostatsSetFallbackClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsSetFallbackClimatePresetRequest instead.\n */\nexport type ThermostatsSetFallbackClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_fallback_climate_preset'>>\n>\n\nexport type ThermostatsSetFallbackClimatePresetRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type ThermostatsSetFallbackClimatePresetOptions = Record<string, never>\n\nexport type ThermostatsSetFanModeParameters =\n RouteRequestBody<'/thermostats/set_fan_mode'>\n\n/**\n * @deprecated Use ThermostatsSetFanModeParameters instead.\n */\nexport type ThermostatsSetFanModeBody = ThermostatsSetFanModeParameters\n\n/**\n * @deprecated Use ThermostatsSetFanModeRequest instead.\n */\nexport type ThermostatsSetFanModeResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_fan_mode'>>\n>\n\nexport type ThermostatsSetFanModeRequest = SeamHttpRequest<\n ThermostatsSetFanModeResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsSetFanModeOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsSetHvacModeParameters =\n RouteRequestBody<'/thermostats/set_hvac_mode'>\n\n/**\n * @deprecated Use ThermostatsSetHvacModeParameters instead.\n */\nexport type ThermostatsSetHvacModeBody = ThermostatsSetHvacModeParameters\n\n/**\n * @deprecated Use ThermostatsSetHvacModeRequest instead.\n */\nexport type ThermostatsSetHvacModeResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_hvac_mode'>>\n>\n\nexport type ThermostatsSetHvacModeRequest = SeamHttpRequest<\n ThermostatsSetHvacModeResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsSetHvacModeOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsSetTemperatureThresholdParameters =\n RouteRequestBody<'/thermostats/set_temperature_threshold'>\n\n/**\n * @deprecated Use ThermostatsSetTemperatureThresholdParameters instead.\n */\nexport type ThermostatsSetTemperatureThresholdBody =\n ThermostatsSetTemperatureThresholdParameters\n\n/**\n * @deprecated Use ThermostatsSetTemperatureThresholdRequest instead.\n */\nexport type ThermostatsSetTemperatureThresholdResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_temperature_threshold'>>\n>\n\nexport type ThermostatsSetTemperatureThresholdRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type ThermostatsSetTemperatureThresholdOptions = Record<string, never>\n\nexport type ThermostatsUpdateClimatePresetParameters =\n RouteRequestBody<'/thermostats/update_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsUpdateClimatePresetParameters instead.\n */\nexport type ThermostatsUpdateClimatePresetBody =\n ThermostatsUpdateClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsUpdateClimatePresetRequest instead.\n */\nexport type ThermostatsUpdateClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/update_climate_preset'>>\n>\n\nexport type ThermostatsUpdateClimatePresetRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type ThermostatsUpdateClimatePresetOptions = Record<string, never>\n\nexport type ThermostatsUpdateWeeklyProgramParameters =\n RouteRequestBody<'/thermostats/update_weekly_program'>\n\n/**\n * @deprecated Use ThermostatsUpdateWeeklyProgramParameters instead.\n */\nexport type ThermostatsUpdateWeeklyProgramBody =\n ThermostatsUpdateWeeklyProgramParameters\n\n/**\n * @deprecated Use ThermostatsUpdateWeeklyProgramRequest instead.\n */\nexport type ThermostatsUpdateWeeklyProgramResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/update_weekly_program'>>\n>\n\nexport type ThermostatsUpdateWeeklyProgramRequest = SeamHttpRequest<\n ThermostatsUpdateWeeklyProgramResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsUpdateWeeklyProgramOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUnstableAccessGrants {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstableAccessGrants> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstableAccessGrants.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstableAccessGrants.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: UnstableAccessGrantsCreateParameters,\n options: UnstableAccessGrantsCreateOptions = {},\n ): UnstableAccessGrantsCreateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_grants/create',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grant',\n options,\n })\n }\n\n delete(\n parameters?: UnstableAccessGrantsDeleteParameters,\n options: UnstableAccessGrantsDeleteOptions = {},\n ): UnstableAccessGrantsDeleteRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_grants/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: UnstableAccessGrantsGetParameters,\n options: UnstableAccessGrantsGetOptions = {},\n ): UnstableAccessGrantsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_grants/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grant',\n options,\n })\n }\n\n list(\n parameters?: UnstableAccessGrantsListParameters,\n options: UnstableAccessGrantsListOptions = {},\n ): UnstableAccessGrantsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_grants/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grants',\n options,\n })\n }\n}\n\nexport type UnstableAccessGrantsCreateParameters =\n RouteRequestBody<'/unstable_access_grants/create'>\n\n/**\n * @deprecated Use UnstableAccessGrantsCreateParameters instead.\n */\nexport type UnstableAccessGrantsCreateBody =\n UnstableAccessGrantsCreateParameters\n\n/**\n * @deprecated Use UnstableAccessGrantsCreateRequest instead.\n */\nexport type UnstableAccessGrantsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_grants/create'>>\n>\n\nexport type UnstableAccessGrantsCreateRequest = SeamHttpRequest<\n UnstableAccessGrantsCreateResponse,\n 'access_grant'\n>\n\nexport type UnstableAccessGrantsCreateOptions = Record<string, never>\n\nexport type UnstableAccessGrantsDeleteParameters =\n RouteRequestBody<'/unstable_access_grants/delete'>\n\n/**\n * @deprecated Use UnstableAccessGrantsDeleteParameters instead.\n */\nexport type UnstableAccessGrantsDeleteParams =\n UnstableAccessGrantsDeleteParameters\n\n/**\n * @deprecated Use UnstableAccessGrantsDeleteRequest instead.\n */\nexport type UnstableAccessGrantsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_grants/delete'>>\n>\n\nexport type UnstableAccessGrantsDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type UnstableAccessGrantsDeleteOptions = Record<string, never>\n\nexport type UnstableAccessGrantsGetParameters =\n RouteRequestBody<'/unstable_access_grants/get'>\n\n/**\n * @deprecated Use UnstableAccessGrantsGetParameters instead.\n */\nexport type UnstableAccessGrantsGetParams = UnstableAccessGrantsGetParameters\n\n/**\n * @deprecated Use UnstableAccessGrantsGetRequest instead.\n */\nexport type UnstableAccessGrantsGetResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_grants/get'>>\n>\n\nexport type UnstableAccessGrantsGetRequest = SeamHttpRequest<\n UnstableAccessGrantsGetResponse,\n 'access_grant'\n>\n\nexport type UnstableAccessGrantsGetOptions = Record<string, never>\n\nexport type UnstableAccessGrantsListParameters =\n RouteRequestBody<'/unstable_access_grants/list'>\n\n/**\n * @deprecated Use UnstableAccessGrantsListParameters instead.\n */\nexport type UnstableAccessGrantsListParams = UnstableAccessGrantsListParameters\n\n/**\n * @deprecated Use UnstableAccessGrantsListRequest instead.\n */\nexport type UnstableAccessGrantsListResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_grants/list'>>\n>\n\nexport type UnstableAccessGrantsListRequest = SeamHttpRequest<\n UnstableAccessGrantsListResponse,\n 'access_grants'\n>\n\nexport type UnstableAccessGrantsListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUnstableAccessMethods {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstableAccessMethods> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstableAccessMethods.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstableAccessMethods.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n parameters?: UnstableAccessMethodsDeleteParameters,\n options: UnstableAccessMethodsDeleteOptions = {},\n ): UnstableAccessMethodsDeleteRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_methods/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: UnstableAccessMethodsGetParameters,\n options: UnstableAccessMethodsGetOptions = {},\n ): UnstableAccessMethodsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_methods/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_method',\n options,\n })\n }\n\n list(\n parameters?: UnstableAccessMethodsListParameters,\n options: UnstableAccessMethodsListOptions = {},\n ): UnstableAccessMethodsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_methods/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_methods',\n options,\n })\n }\n}\n\nexport type UnstableAccessMethodsDeleteParameters =\n RouteRequestBody<'/unstable_access_methods/delete'>\n\n/**\n * @deprecated Use UnstableAccessMethodsDeleteParameters instead.\n */\nexport type UnstableAccessMethodsDeleteParams =\n UnstableAccessMethodsDeleteParameters\n\n/**\n * @deprecated Use UnstableAccessMethodsDeleteRequest instead.\n */\nexport type UnstableAccessMethodsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_methods/delete'>>\n>\n\nexport type UnstableAccessMethodsDeleteRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UnstableAccessMethodsDeleteOptions = Record<string, never>\n\nexport type UnstableAccessMethodsGetParameters =\n RouteRequestBody<'/unstable_access_methods/get'>\n\n/**\n * @deprecated Use UnstableAccessMethodsGetParameters instead.\n */\nexport type UnstableAccessMethodsGetParams = UnstableAccessMethodsGetParameters\n\n/**\n * @deprecated Use UnstableAccessMethodsGetRequest instead.\n */\nexport type UnstableAccessMethodsGetResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_methods/get'>>\n>\n\nexport type UnstableAccessMethodsGetRequest = SeamHttpRequest<\n UnstableAccessMethodsGetResponse,\n 'access_method'\n>\n\nexport type UnstableAccessMethodsGetOptions = Record<string, never>\n\nexport type UnstableAccessMethodsListParameters =\n RouteRequestBody<'/unstable_access_methods/list'>\n\n/**\n * @deprecated Use UnstableAccessMethodsListParameters instead.\n */\nexport type UnstableAccessMethodsListParams =\n UnstableAccessMethodsListParameters\n\n/**\n * @deprecated Use UnstableAccessMethodsListRequest instead.\n */\nexport type UnstableAccessMethodsListResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_methods/list'>>\n>\n\nexport type UnstableAccessMethodsListRequest = SeamHttpRequest<\n UnstableAccessMethodsListResponse,\n 'access_methods'\n>\n\nexport type UnstableAccessMethodsListOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUnstableLocations {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstableLocations> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstableLocations.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstableLocations.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n addAcsEntrances(\n parameters?: UnstableLocationsAddAcsEntrancesParameters,\n options: UnstableLocationsAddAcsEntrancesOptions = {},\n ): UnstableLocationsAddAcsEntrancesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/add_acs_entrances',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n addDevices(\n parameters?: UnstableLocationsAddDevicesParameters,\n options: UnstableLocationsAddDevicesOptions = {},\n ): UnstableLocationsAddDevicesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/add_devices',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: UnstableLocationsCreateParameters,\n options: UnstableLocationsCreateOptions = {},\n ): UnstableLocationsCreateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/create',\n method: 'POST',\n body: parameters,\n responseKey: 'location',\n options,\n })\n }\n\n delete(\n parameters?: UnstableLocationsDeleteParameters,\n options: UnstableLocationsDeleteOptions = {},\n ): UnstableLocationsDeleteRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: UnstableLocationsGetParameters,\n options: UnstableLocationsGetOptions = {},\n ): UnstableLocationsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/get',\n method: 'POST',\n body: parameters,\n responseKey: 'location',\n options,\n })\n }\n\n list(\n parameters?: UnstableLocationsListParameters,\n options: UnstableLocationsListOptions = {},\n ): UnstableLocationsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/list',\n method: 'GET',\n params: parameters,\n responseKey: 'locations',\n options,\n })\n }\n\n removeAcsEntrances(\n parameters?: UnstableLocationsRemoveAcsEntrancesParameters,\n options: UnstableLocationsRemoveAcsEntrancesOptions = {},\n ): UnstableLocationsRemoveAcsEntrancesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/remove_acs_entrances',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n removeDevices(\n parameters?: UnstableLocationsRemoveDevicesParameters,\n options: UnstableLocationsRemoveDevicesOptions = {},\n ): UnstableLocationsRemoveDevicesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/remove_devices',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: UnstableLocationsUpdateParameters,\n options: UnstableLocationsUpdateOptions = {},\n ): UnstableLocationsUpdateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/update',\n method: 'PATCH',\n body: parameters,\n responseKey: 'location',\n options,\n })\n }\n}\n\nexport type UnstableLocationsAddAcsEntrancesParameters =\n RouteRequestBody<'/unstable_locations/add_acs_entrances'>\n\n/**\n * @deprecated Use UnstableLocationsAddAcsEntrancesParameters instead.\n */\nexport type UnstableLocationsAddAcsEntrancesBody =\n UnstableLocationsAddAcsEntrancesParameters\n\n/**\n * @deprecated Use UnstableLocationsAddAcsEntrancesRequest instead.\n */\nexport type UnstableLocationsAddAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/add_acs_entrances'>>\n>\n\nexport type UnstableLocationsAddAcsEntrancesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UnstableLocationsAddAcsEntrancesOptions = Record<string, never>\n\nexport type UnstableLocationsAddDevicesParameters =\n RouteRequestBody<'/unstable_locations/add_devices'>\n\n/**\n * @deprecated Use UnstableLocationsAddDevicesParameters instead.\n */\nexport type UnstableLocationsAddDevicesBody =\n UnstableLocationsAddDevicesParameters\n\n/**\n * @deprecated Use UnstableLocationsAddDevicesRequest instead.\n */\nexport type UnstableLocationsAddDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/add_devices'>>\n>\n\nexport type UnstableLocationsAddDevicesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UnstableLocationsAddDevicesOptions = Record<string, never>\n\nexport type UnstableLocationsCreateParameters =\n RouteRequestBody<'/unstable_locations/create'>\n\n/**\n * @deprecated Use UnstableLocationsCreateParameters instead.\n */\nexport type UnstableLocationsCreateBody = UnstableLocationsCreateParameters\n\n/**\n * @deprecated Use UnstableLocationsCreateRequest instead.\n */\nexport type UnstableLocationsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/create'>>\n>\n\nexport type UnstableLocationsCreateRequest = SeamHttpRequest<\n UnstableLocationsCreateResponse,\n 'location'\n>\n\nexport type UnstableLocationsCreateOptions = Record<string, never>\n\nexport type UnstableLocationsDeleteParameters =\n RouteRequestBody<'/unstable_locations/delete'>\n\n/**\n * @deprecated Use UnstableLocationsDeleteParameters instead.\n */\nexport type UnstableLocationsDeleteParams = UnstableLocationsDeleteParameters\n\n/**\n * @deprecated Use UnstableLocationsDeleteRequest instead.\n */\nexport type UnstableLocationsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/delete'>>\n>\n\nexport type UnstableLocationsDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type UnstableLocationsDeleteOptions = Record<string, never>\n\nexport type UnstableLocationsGetParameters =\n RouteRequestBody<'/unstable_locations/get'>\n\n/**\n * @deprecated Use UnstableLocationsGetParameters instead.\n */\nexport type UnstableLocationsGetParams = UnstableLocationsGetParameters\n\n/**\n * @deprecated Use UnstableLocationsGetRequest instead.\n */\nexport type UnstableLocationsGetResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/get'>>\n>\n\nexport type UnstableLocationsGetRequest = SeamHttpRequest<\n UnstableLocationsGetResponse,\n 'location'\n>\n\nexport type UnstableLocationsGetOptions = Record<string, never>\n\nexport type UnstableLocationsListParameters =\n RouteRequestParams<'/unstable_locations/list'>\n\n/**\n * @deprecated Use UnstableLocationsListParameters instead.\n */\nexport type UnstableLocationsListParams = UnstableLocationsListParameters\n\n/**\n * @deprecated Use UnstableLocationsListRequest instead.\n */\nexport type UnstableLocationsListResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/list'>>\n>\n\nexport type UnstableLocationsListRequest = SeamHttpRequest<\n UnstableLocationsListResponse,\n 'locations'\n>\n\nexport type UnstableLocationsListOptions = Record<string, never>\n\nexport type UnstableLocationsRemoveAcsEntrancesParameters =\n RouteRequestBody<'/unstable_locations/remove_acs_entrances'>\n\n/**\n * @deprecated Use UnstableLocationsRemoveAcsEntrancesParameters instead.\n */\nexport type UnstableLocationsRemoveAcsEntrancesParams =\n UnstableLocationsRemoveAcsEntrancesParameters\n\n/**\n * @deprecated Use UnstableLocationsRemoveAcsEntrancesRequest instead.\n */\nexport type UnstableLocationsRemoveAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/remove_acs_entrances'>>\n>\n\nexport type UnstableLocationsRemoveAcsEntrancesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UnstableLocationsRemoveAcsEntrancesOptions = Record<string, never>\n\nexport type UnstableLocationsRemoveDevicesParameters =\n RouteRequestBody<'/unstable_locations/remove_devices'>\n\n/**\n * @deprecated Use UnstableLocationsRemoveDevicesParameters instead.\n */\nexport type UnstableLocationsRemoveDevicesParams =\n UnstableLocationsRemoveDevicesParameters\n\n/**\n * @deprecated Use UnstableLocationsRemoveDevicesRequest instead.\n */\nexport type UnstableLocationsRemoveDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/remove_devices'>>\n>\n\nexport type UnstableLocationsRemoveDevicesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UnstableLocationsRemoveDevicesOptions = Record<string, never>\n\nexport type UnstableLocationsUpdateParameters =\n RouteRequestBody<'/unstable_locations/update'>\n\n/**\n * @deprecated Use UnstableLocationsUpdateParameters instead.\n */\nexport type UnstableLocationsUpdateBody = UnstableLocationsUpdateParameters\n\n/**\n * @deprecated Use UnstableLocationsUpdateRequest instead.\n */\nexport type UnstableLocationsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/update'>>\n>\n\nexport type UnstableLocationsUpdateRequest = SeamHttpRequest<\n UnstableLocationsUpdateResponse,\n 'location'\n>\n\nexport type UnstableLocationsUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUnstablePartnerBuildingBlocks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstablePartnerBuildingBlocks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstablePartnerBuildingBlocks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstablePartnerBuildingBlocks.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n connectAccounts(\n parameters?: UnstablePartnerBuildingBlocksConnectAccountsParameters,\n options: UnstablePartnerBuildingBlocksConnectAccountsOptions = {},\n ): UnstablePartnerBuildingBlocksConnectAccountsRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_partner/building_blocks/connect_accounts',\n method: 'POST',\n body: parameters,\n responseKey: 'magic_link',\n options,\n })\n }\n\n generateMagicLink(\n parameters?: UnstablePartnerBuildingBlocksGenerateMagicLinkParameters,\n options: UnstablePartnerBuildingBlocksGenerateMagicLinkOptions = {},\n ): UnstablePartnerBuildingBlocksGenerateMagicLinkRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_partner/building_blocks/generate_magic_link',\n method: 'POST',\n body: parameters,\n responseKey: 'magic_link',\n options,\n })\n }\n\n manageDevices(\n parameters?: UnstablePartnerBuildingBlocksManageDevicesParameters,\n options: UnstablePartnerBuildingBlocksManageDevicesOptions = {},\n ): UnstablePartnerBuildingBlocksManageDevicesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_partner/building_blocks/manage_devices',\n method: 'POST',\n body: parameters,\n responseKey: 'magic_link',\n options,\n })\n }\n\n organizeSpaces(\n parameters?: UnstablePartnerBuildingBlocksOrganizeSpacesParameters,\n options: UnstablePartnerBuildingBlocksOrganizeSpacesOptions = {},\n ): UnstablePartnerBuildingBlocksOrganizeSpacesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_partner/building_blocks/organize_spaces',\n method: 'POST',\n body: parameters,\n responseKey: 'magic_link',\n options,\n })\n }\n}\n\nexport type UnstablePartnerBuildingBlocksConnectAccountsParameters =\n RouteRequestBody<'/unstable_partner/building_blocks/connect_accounts'>\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksConnectAccountsParameters instead.\n */\nexport type UnstablePartnerBuildingBlocksConnectAccountsBody =\n UnstablePartnerBuildingBlocksConnectAccountsParameters\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksConnectAccountsRequest instead.\n */\nexport type UnstablePartnerBuildingBlocksConnectAccountsResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/unstable_partner/building_blocks/connect_accounts'>\n >\n >\n\nexport type UnstablePartnerBuildingBlocksConnectAccountsRequest =\n SeamHttpRequest<\n UnstablePartnerBuildingBlocksConnectAccountsResponse,\n 'magic_link'\n >\n\nexport type UnstablePartnerBuildingBlocksConnectAccountsOptions = Record<\n string,\n never\n>\n\nexport type UnstablePartnerBuildingBlocksGenerateMagicLinkParameters =\n RouteRequestBody<'/unstable_partner/building_blocks/generate_magic_link'>\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksGenerateMagicLinkParameters instead.\n */\nexport type UnstablePartnerBuildingBlocksGenerateMagicLinkParams =\n UnstablePartnerBuildingBlocksGenerateMagicLinkParameters\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksGenerateMagicLinkRequest instead.\n */\nexport type UnstablePartnerBuildingBlocksGenerateMagicLinkResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/unstable_partner/building_blocks/generate_magic_link'>\n >\n >\n\nexport type UnstablePartnerBuildingBlocksGenerateMagicLinkRequest =\n SeamHttpRequest<\n UnstablePartnerBuildingBlocksGenerateMagicLinkResponse,\n 'magic_link'\n >\n\nexport type UnstablePartnerBuildingBlocksGenerateMagicLinkOptions = Record<\n string,\n never\n>\n\nexport type UnstablePartnerBuildingBlocksManageDevicesParameters =\n RouteRequestBody<'/unstable_partner/building_blocks/manage_devices'>\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksManageDevicesParameters instead.\n */\nexport type UnstablePartnerBuildingBlocksManageDevicesBody =\n UnstablePartnerBuildingBlocksManageDevicesParameters\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksManageDevicesRequest instead.\n */\nexport type UnstablePartnerBuildingBlocksManageDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_partner/building_blocks/manage_devices'>>\n>\n\nexport type UnstablePartnerBuildingBlocksManageDevicesRequest = SeamHttpRequest<\n UnstablePartnerBuildingBlocksManageDevicesResponse,\n 'magic_link'\n>\n\nexport type UnstablePartnerBuildingBlocksManageDevicesOptions = Record<\n string,\n never\n>\n\nexport type UnstablePartnerBuildingBlocksOrganizeSpacesParameters =\n RouteRequestBody<'/unstable_partner/building_blocks/organize_spaces'>\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksOrganizeSpacesParameters instead.\n */\nexport type UnstablePartnerBuildingBlocksOrganizeSpacesBody =\n UnstablePartnerBuildingBlocksOrganizeSpacesParameters\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksOrganizeSpacesRequest instead.\n */\nexport type UnstablePartnerBuildingBlocksOrganizeSpacesResponse =\n SetNonNullable<\n Required<RouteResponse<'/unstable_partner/building_blocks/organize_spaces'>>\n >\n\nexport type UnstablePartnerBuildingBlocksOrganizeSpacesRequest =\n SeamHttpRequest<\n UnstablePartnerBuildingBlocksOrganizeSpacesResponse,\n 'magic_link'\n >\n\nexport type UnstablePartnerBuildingBlocksOrganizeSpacesOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUnstablePartnerResources {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstablePartnerResources {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstablePartnerResources(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstablePartnerResources {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstablePartnerResources(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstablePartnerResources {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstablePartnerResources(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstablePartnerResources> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstablePartnerResources.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstablePartnerResources.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartnerResources {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartnerResources(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartnerResources {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartnerResources(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n push(\n parameters?: UnstablePartnerResourcesPushParameters,\n options: UnstablePartnerResourcesPushOptions = {},\n ): UnstablePartnerResourcesPushRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_partner/resources/push',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type UnstablePartnerResourcesPushParameters =\n RouteRequestBody<'/unstable_partner/resources/push'>\n\n/**\n * @deprecated Use UnstablePartnerResourcesPushParameters instead.\n */\nexport type UnstablePartnerResourcesPushBody =\n UnstablePartnerResourcesPushParameters\n\n/**\n * @deprecated Use UnstablePartnerResourcesPushRequest instead.\n */\nexport type UnstablePartnerResourcesPushResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_partner/resources/push'>>\n>\n\nexport type UnstablePartnerResourcesPushRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UnstablePartnerResourcesPushOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpUnstablePartnerBuildingBlocks } from './building-blocks/index.js'\nimport { SeamHttpUnstablePartnerResources } from './resources/index.js'\n\nexport class SeamHttpUnstablePartner {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstablePartner> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstablePartner.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstablePartner.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get buildingBlocks(): SeamHttpUnstablePartnerBuildingBlocks {\n return SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get resources(): SeamHttpUnstablePartnerResources {\n return SeamHttpUnstablePartnerResources.fromClient(\n this.client,\n this.defaults,\n )\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUserIdentitiesEnrollmentAutomations {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUserIdentitiesEnrollmentAutomations> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUserIdentitiesEnrollmentAutomations.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUserIdentitiesEnrollmentAutomations.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n parameters?: UserIdentitiesEnrollmentAutomationsDeleteParameters,\n options: UserIdentitiesEnrollmentAutomationsDeleteOptions = {},\n ): UserIdentitiesEnrollmentAutomationsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: UserIdentitiesEnrollmentAutomationsGetParameters,\n options: UserIdentitiesEnrollmentAutomationsGetOptions = {},\n ): UserIdentitiesEnrollmentAutomationsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/get',\n method: 'POST',\n body: parameters,\n responseKey: 'enrollment_automation',\n options,\n })\n }\n\n launch(\n parameters?: UserIdentitiesEnrollmentAutomationsLaunchParameters,\n options: UserIdentitiesEnrollmentAutomationsLaunchOptions = {},\n ): UserIdentitiesEnrollmentAutomationsLaunchRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/launch',\n method: 'POST',\n body: parameters,\n responseKey: 'enrollment_automation',\n options,\n })\n }\n\n list(\n parameters?: UserIdentitiesEnrollmentAutomationsListParameters,\n options: UserIdentitiesEnrollmentAutomationsListOptions = {},\n ): UserIdentitiesEnrollmentAutomationsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/list',\n method: 'POST',\n body: parameters,\n responseKey: 'enrollment_automations',\n options,\n })\n }\n}\n\nexport type UserIdentitiesEnrollmentAutomationsDeleteParameters =\n RouteRequestBody<'/user_identities/enrollment_automations/delete'>\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsDeleteParameters instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsDeleteParams =\n UserIdentitiesEnrollmentAutomationsDeleteParameters\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsDeleteRequest instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/delete'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsDeleteRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UserIdentitiesEnrollmentAutomationsDeleteOptions = Record<\n string,\n never\n>\n\nexport type UserIdentitiesEnrollmentAutomationsGetParameters =\n RouteRequestBody<'/user_identities/enrollment_automations/get'>\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsGetParameters instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsGetParams =\n UserIdentitiesEnrollmentAutomationsGetParameters\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsGetRequest instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsGetResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/get'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsGetRequest = SeamHttpRequest<\n UserIdentitiesEnrollmentAutomationsGetResponse,\n 'enrollment_automation'\n>\n\nexport type UserIdentitiesEnrollmentAutomationsGetOptions = Record<\n string,\n never\n>\n\nexport type UserIdentitiesEnrollmentAutomationsLaunchParameters =\n RouteRequestBody<'/user_identities/enrollment_automations/launch'>\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsLaunchParameters instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsLaunchBody =\n UserIdentitiesEnrollmentAutomationsLaunchParameters\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsLaunchRequest instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsLaunchResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/launch'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsLaunchRequest = SeamHttpRequest<\n UserIdentitiesEnrollmentAutomationsLaunchResponse,\n 'enrollment_automation'\n>\n\nexport type UserIdentitiesEnrollmentAutomationsLaunchOptions = Record<\n string,\n never\n>\n\nexport type UserIdentitiesEnrollmentAutomationsListParameters =\n RouteRequestBody<'/user_identities/enrollment_automations/list'>\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsListParameters instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsListParams =\n UserIdentitiesEnrollmentAutomationsListParameters\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsListRequest instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsListResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/list'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsListRequest = SeamHttpRequest<\n UserIdentitiesEnrollmentAutomationsListResponse,\n 'enrollment_automations'\n>\n\nexport type UserIdentitiesEnrollmentAutomationsListOptions = Record<\n string,\n never\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpUserIdentitiesEnrollmentAutomations } from './enrollment-automations/index.js'\n\nexport class SeamHttpUserIdentities {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUserIdentities> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUserIdentities.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUserIdentities.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get enrollmentAutomations(): SeamHttpUserIdentitiesEnrollmentAutomations {\n return SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n addAcsUser(\n parameters?: UserIdentitiesAddAcsUserParameters,\n options: UserIdentitiesAddAcsUserOptions = {},\n ): UserIdentitiesAddAcsUserRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/add_acs_user',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: UserIdentitiesCreateParameters,\n options: UserIdentitiesCreateOptions = {},\n ): UserIdentitiesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/create',\n method: 'POST',\n body: parameters,\n responseKey: 'user_identity',\n options,\n })\n }\n\n delete(\n parameters?: UserIdentitiesDeleteParameters,\n options: UserIdentitiesDeleteOptions = {},\n ): UserIdentitiesDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n generateInstantKey(\n parameters?: UserIdentitiesGenerateInstantKeyParameters,\n options: UserIdentitiesGenerateInstantKeyOptions = {},\n ): UserIdentitiesGenerateInstantKeyRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/generate_instant_key',\n method: 'POST',\n body: parameters,\n responseKey: 'instant_key',\n options,\n })\n }\n\n get(\n parameters?: UserIdentitiesGetParameters,\n options: UserIdentitiesGetOptions = {},\n ): UserIdentitiesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/get',\n method: 'GET',\n params: parameters,\n responseKey: 'user_identity',\n options,\n })\n }\n\n grantAccessToDevice(\n parameters?: UserIdentitiesGrantAccessToDeviceParameters,\n options: UserIdentitiesGrantAccessToDeviceOptions = {},\n ): UserIdentitiesGrantAccessToDeviceRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/grant_access_to_device',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n list(\n parameters?: UserIdentitiesListParameters,\n options: UserIdentitiesListOptions = {},\n ): UserIdentitiesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list',\n method: 'POST',\n body: parameters,\n responseKey: 'user_identities',\n options,\n })\n }\n\n listAccessibleDevices(\n parameters?: UserIdentitiesListAccessibleDevicesParameters,\n options: UserIdentitiesListAccessibleDevicesOptions = {},\n ): UserIdentitiesListAccessibleDevicesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list_accessible_devices',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n listAcsSystems(\n parameters?: UserIdentitiesListAcsSystemsParameters,\n options: UserIdentitiesListAcsSystemsOptions = {},\n ): UserIdentitiesListAcsSystemsRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list_acs_systems',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_systems',\n options,\n })\n }\n\n listAcsUsers(\n parameters?: UserIdentitiesListAcsUsersParameters,\n options: UserIdentitiesListAcsUsersOptions = {},\n ): UserIdentitiesListAcsUsersRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list_acs_users',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_users',\n options,\n })\n }\n\n removeAcsUser(\n parameters?: UserIdentitiesRemoveAcsUserParameters,\n options: UserIdentitiesRemoveAcsUserOptions = {},\n ): UserIdentitiesRemoveAcsUserRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/remove_acs_user',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n revokeAccessToDevice(\n parameters?: UserIdentitiesRevokeAccessToDeviceParameters,\n options: UserIdentitiesRevokeAccessToDeviceOptions = {},\n ): UserIdentitiesRevokeAccessToDeviceRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/revoke_access_to_device',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: UserIdentitiesUpdateParameters,\n options: UserIdentitiesUpdateOptions = {},\n ): UserIdentitiesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type UserIdentitiesAddAcsUserParameters =\n RouteRequestBody<'/user_identities/add_acs_user'>\n\n/**\n * @deprecated Use UserIdentitiesAddAcsUserParameters instead.\n */\nexport type UserIdentitiesAddAcsUserBody = UserIdentitiesAddAcsUserParameters\n\n/**\n * @deprecated Use UserIdentitiesAddAcsUserRequest instead.\n */\nexport type UserIdentitiesAddAcsUserResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/add_acs_user'>>\n>\n\nexport type UserIdentitiesAddAcsUserRequest = SeamHttpRequest<void, undefined>\n\nexport type UserIdentitiesAddAcsUserOptions = Record<string, never>\n\nexport type UserIdentitiesCreateParameters =\n RouteRequestBody<'/user_identities/create'>\n\n/**\n * @deprecated Use UserIdentitiesCreateParameters instead.\n */\nexport type UserIdentitiesCreateBody = UserIdentitiesCreateParameters\n\n/**\n * @deprecated Use UserIdentitiesCreateRequest instead.\n */\nexport type UserIdentitiesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/create'>>\n>\n\nexport type UserIdentitiesCreateRequest = SeamHttpRequest<\n UserIdentitiesCreateResponse,\n 'user_identity'\n>\n\nexport type UserIdentitiesCreateOptions = Record<string, never>\n\nexport type UserIdentitiesDeleteParameters =\n RouteRequestBody<'/user_identities/delete'>\n\n/**\n * @deprecated Use UserIdentitiesDeleteParameters instead.\n */\nexport type UserIdentitiesDeleteParams = UserIdentitiesDeleteParameters\n\n/**\n * @deprecated Use UserIdentitiesDeleteRequest instead.\n */\nexport type UserIdentitiesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/delete'>>\n>\n\nexport type UserIdentitiesDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type UserIdentitiesDeleteOptions = Record<string, never>\n\nexport type UserIdentitiesGenerateInstantKeyParameters =\n RouteRequestBody<'/user_identities/generate_instant_key'>\n\n/**\n * @deprecated Use UserIdentitiesGenerateInstantKeyParameters instead.\n */\nexport type UserIdentitiesGenerateInstantKeyBody =\n UserIdentitiesGenerateInstantKeyParameters\n\n/**\n * @deprecated Use UserIdentitiesGenerateInstantKeyRequest instead.\n */\nexport type UserIdentitiesGenerateInstantKeyResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/generate_instant_key'>>\n>\n\nexport type UserIdentitiesGenerateInstantKeyRequest = SeamHttpRequest<\n UserIdentitiesGenerateInstantKeyResponse,\n 'instant_key'\n>\n\nexport type UserIdentitiesGenerateInstantKeyOptions = Record<string, never>\n\nexport type UserIdentitiesGetParameters =\n RouteRequestParams<'/user_identities/get'>\n\n/**\n * @deprecated Use UserIdentitiesGetParameters instead.\n */\nexport type UserIdentitiesGetParams = UserIdentitiesGetParameters\n\n/**\n * @deprecated Use UserIdentitiesGetRequest instead.\n */\nexport type UserIdentitiesGetResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/get'>>\n>\n\nexport type UserIdentitiesGetRequest = SeamHttpRequest<\n UserIdentitiesGetResponse,\n 'user_identity'\n>\n\nexport type UserIdentitiesGetOptions = Record<string, never>\n\nexport type UserIdentitiesGrantAccessToDeviceParameters =\n RouteRequestBody<'/user_identities/grant_access_to_device'>\n\n/**\n * @deprecated Use UserIdentitiesGrantAccessToDeviceParameters instead.\n */\nexport type UserIdentitiesGrantAccessToDeviceBody =\n UserIdentitiesGrantAccessToDeviceParameters\n\n/**\n * @deprecated Use UserIdentitiesGrantAccessToDeviceRequest instead.\n */\nexport type UserIdentitiesGrantAccessToDeviceResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/grant_access_to_device'>>\n>\n\nexport type UserIdentitiesGrantAccessToDeviceRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UserIdentitiesGrantAccessToDeviceOptions = Record<string, never>\n\nexport type UserIdentitiesListParameters =\n RouteRequestBody<'/user_identities/list'>\n\n/**\n * @deprecated Use UserIdentitiesListParameters instead.\n */\nexport type UserIdentitiesListParams = UserIdentitiesListParameters\n\n/**\n * @deprecated Use UserIdentitiesListRequest instead.\n */\nexport type UserIdentitiesListResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list'>>\n>\n\nexport type UserIdentitiesListRequest = SeamHttpRequest<\n UserIdentitiesListResponse,\n 'user_identities'\n>\n\nexport type UserIdentitiesListOptions = Record<string, never>\n\nexport type UserIdentitiesListAccessibleDevicesParameters =\n RouteRequestBody<'/user_identities/list_accessible_devices'>\n\n/**\n * @deprecated Use UserIdentitiesListAccessibleDevicesParameters instead.\n */\nexport type UserIdentitiesListAccessibleDevicesParams =\n UserIdentitiesListAccessibleDevicesParameters\n\n/**\n * @deprecated Use UserIdentitiesListAccessibleDevicesRequest instead.\n */\nexport type UserIdentitiesListAccessibleDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list_accessible_devices'>>\n>\n\nexport type UserIdentitiesListAccessibleDevicesRequest = SeamHttpRequest<\n UserIdentitiesListAccessibleDevicesResponse,\n 'devices'\n>\n\nexport type UserIdentitiesListAccessibleDevicesOptions = Record<string, never>\n\nexport type UserIdentitiesListAcsSystemsParameters =\n RouteRequestBody<'/user_identities/list_acs_systems'>\n\n/**\n * @deprecated Use UserIdentitiesListAcsSystemsParameters instead.\n */\nexport type UserIdentitiesListAcsSystemsParams =\n UserIdentitiesListAcsSystemsParameters\n\n/**\n * @deprecated Use UserIdentitiesListAcsSystemsRequest instead.\n */\nexport type UserIdentitiesListAcsSystemsResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list_acs_systems'>>\n>\n\nexport type UserIdentitiesListAcsSystemsRequest = SeamHttpRequest<\n UserIdentitiesListAcsSystemsResponse,\n 'acs_systems'\n>\n\nexport type UserIdentitiesListAcsSystemsOptions = Record<string, never>\n\nexport type UserIdentitiesListAcsUsersParameters =\n RouteRequestBody<'/user_identities/list_acs_users'>\n\n/**\n * @deprecated Use UserIdentitiesListAcsUsersParameters instead.\n */\nexport type UserIdentitiesListAcsUsersParams =\n UserIdentitiesListAcsUsersParameters\n\n/**\n * @deprecated Use UserIdentitiesListAcsUsersRequest instead.\n */\nexport type UserIdentitiesListAcsUsersResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list_acs_users'>>\n>\n\nexport type UserIdentitiesListAcsUsersRequest = SeamHttpRequest<\n UserIdentitiesListAcsUsersResponse,\n 'acs_users'\n>\n\nexport type UserIdentitiesListAcsUsersOptions = Record<string, never>\n\nexport type UserIdentitiesRemoveAcsUserParameters =\n RouteRequestBody<'/user_identities/remove_acs_user'>\n\n/**\n * @deprecated Use UserIdentitiesRemoveAcsUserParameters instead.\n */\nexport type UserIdentitiesRemoveAcsUserParams =\n UserIdentitiesRemoveAcsUserParameters\n\n/**\n * @deprecated Use UserIdentitiesRemoveAcsUserRequest instead.\n */\nexport type UserIdentitiesRemoveAcsUserResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/remove_acs_user'>>\n>\n\nexport type UserIdentitiesRemoveAcsUserRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UserIdentitiesRemoveAcsUserOptions = Record<string, never>\n\nexport type UserIdentitiesRevokeAccessToDeviceParameters =\n RouteRequestBody<'/user_identities/revoke_access_to_device'>\n\n/**\n * @deprecated Use UserIdentitiesRevokeAccessToDeviceParameters instead.\n */\nexport type UserIdentitiesRevokeAccessToDeviceParams =\n UserIdentitiesRevokeAccessToDeviceParameters\n\n/**\n * @deprecated Use UserIdentitiesRevokeAccessToDeviceRequest instead.\n */\nexport type UserIdentitiesRevokeAccessToDeviceResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/revoke_access_to_device'>>\n>\n\nexport type UserIdentitiesRevokeAccessToDeviceRequest = SeamHttpRequest<\n void,\n undefined\n>\n\nexport type UserIdentitiesRevokeAccessToDeviceOptions = Record<string, never>\n\nexport type UserIdentitiesUpdateParameters =\n RouteRequestBody<'/user_identities/update'>\n\n/**\n * @deprecated Use UserIdentitiesUpdateParameters instead.\n */\nexport type UserIdentitiesUpdateBody = UserIdentitiesUpdateParameters\n\n/**\n * @deprecated Use UserIdentitiesUpdateRequest instead.\n */\nexport type UserIdentitiesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/update'>>\n>\n\nexport type UserIdentitiesUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type UserIdentitiesUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpWebhooks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpWebhooks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpWebhooks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpWebhooks.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: WebhooksCreateParameters,\n options: WebhooksCreateOptions = {},\n ): WebhooksCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/create',\n method: 'POST',\n body: parameters,\n responseKey: 'webhook',\n options,\n })\n }\n\n delete(\n parameters?: WebhooksDeleteParameters,\n options: WebhooksDeleteOptions = {},\n ): WebhooksDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: WebhooksGetParameters,\n options: WebhooksGetOptions = {},\n ): WebhooksGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/get',\n method: 'POST',\n body: parameters,\n responseKey: 'webhook',\n options,\n })\n }\n\n list(\n parameters?: WebhooksListParameters,\n options: WebhooksListOptions = {},\n ): WebhooksListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/list',\n method: 'GET',\n params: parameters,\n responseKey: 'webhooks',\n options,\n })\n }\n\n update(\n parameters?: WebhooksUpdateParameters,\n options: WebhooksUpdateOptions = {},\n ): WebhooksUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/update',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type WebhooksCreateParameters = RouteRequestBody<'/webhooks/create'>\n\n/**\n * @deprecated Use WebhooksCreateParameters instead.\n */\nexport type WebhooksCreateBody = WebhooksCreateParameters\n\n/**\n * @deprecated Use WebhooksCreateRequest instead.\n */\nexport type WebhooksCreateResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/create'>>\n>\n\nexport type WebhooksCreateRequest = SeamHttpRequest<\n WebhooksCreateResponse,\n 'webhook'\n>\n\nexport type WebhooksCreateOptions = Record<string, never>\n\nexport type WebhooksDeleteParameters = RouteRequestBody<'/webhooks/delete'>\n\n/**\n * @deprecated Use WebhooksDeleteParameters instead.\n */\nexport type WebhooksDeleteParams = WebhooksDeleteParameters\n\n/**\n * @deprecated Use WebhooksDeleteRequest instead.\n */\nexport type WebhooksDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/delete'>>\n>\n\nexport type WebhooksDeleteRequest = SeamHttpRequest<void, undefined>\n\nexport type WebhooksDeleteOptions = Record<string, never>\n\nexport type WebhooksGetParameters = RouteRequestBody<'/webhooks/get'>\n\n/**\n * @deprecated Use WebhooksGetParameters instead.\n */\nexport type WebhooksGetParams = WebhooksGetParameters\n\n/**\n * @deprecated Use WebhooksGetRequest instead.\n */\nexport type WebhooksGetResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/get'>>\n>\n\nexport type WebhooksGetRequest = SeamHttpRequest<WebhooksGetResponse, 'webhook'>\n\nexport type WebhooksGetOptions = Record<string, never>\n\nexport type WebhooksListParameters = RouteRequestParams<'/webhooks/list'>\n\n/**\n * @deprecated Use WebhooksListParameters instead.\n */\nexport type WebhooksListParams = WebhooksListParameters\n\n/**\n * @deprecated Use WebhooksListRequest instead.\n */\nexport type WebhooksListResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/list'>>\n>\n\nexport type WebhooksListRequest = SeamHttpRequest<\n WebhooksListResponse,\n 'webhooks'\n>\n\nexport type WebhooksListOptions = Record<string, never>\n\nexport type WebhooksUpdateParameters = RouteRequestBody<'/webhooks/update'>\n\n/**\n * @deprecated Use WebhooksUpdateParameters instead.\n */\nexport type WebhooksUpdateBody = WebhooksUpdateParameters\n\n/**\n * @deprecated Use WebhooksUpdateRequest instead.\n */\nexport type WebhooksUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/update'>>\n>\n\nexport type WebhooksUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type WebhooksUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpWorkspaces {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpWorkspaces> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpWorkspaces.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpWorkspaces.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: WorkspacesCreateParameters,\n options: WorkspacesCreateOptions = {},\n ): WorkspacesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/create',\n method: 'POST',\n body: parameters,\n responseKey: 'workspace',\n options,\n })\n }\n\n get(\n parameters?: WorkspacesGetParameters,\n options: WorkspacesGetOptions = {},\n ): WorkspacesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/get',\n method: 'GET',\n params: parameters,\n responseKey: 'workspace',\n options,\n })\n }\n\n list(\n parameters?: WorkspacesListParameters,\n options: WorkspacesListOptions = {},\n ): WorkspacesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/list',\n method: 'GET',\n params: parameters,\n responseKey: 'workspaces',\n options,\n })\n }\n\n resetSandbox(\n parameters?: WorkspacesResetSandboxParameters,\n options: WorkspacesResetSandboxOptions = {},\n ): WorkspacesResetSandboxRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/reset_sandbox',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n update(\n parameters?: WorkspacesUpdateParameters,\n options: WorkspacesUpdateOptions = {},\n ): WorkspacesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type WorkspacesCreateParameters = RouteRequestBody<'/workspaces/create'>\n\n/**\n * @deprecated Use WorkspacesCreateParameters instead.\n */\nexport type WorkspacesCreateBody = WorkspacesCreateParameters\n\n/**\n * @deprecated Use WorkspacesCreateRequest instead.\n */\nexport type WorkspacesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/create'>>\n>\n\nexport type WorkspacesCreateRequest = SeamHttpRequest<\n WorkspacesCreateResponse,\n 'workspace'\n>\n\nexport type WorkspacesCreateOptions = Record<string, never>\n\nexport type WorkspacesGetParameters = RouteRequestParams<'/workspaces/get'>\n\n/**\n * @deprecated Use WorkspacesGetParameters instead.\n */\nexport type WorkspacesGetParams = WorkspacesGetParameters\n\n/**\n * @deprecated Use WorkspacesGetRequest instead.\n */\nexport type WorkspacesGetResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/get'>>\n>\n\nexport type WorkspacesGetRequest = SeamHttpRequest<\n WorkspacesGetResponse,\n 'workspace'\n>\n\nexport type WorkspacesGetOptions = Record<string, never>\n\nexport type WorkspacesListParameters = RouteRequestParams<'/workspaces/list'>\n\n/**\n * @deprecated Use WorkspacesListParameters instead.\n */\nexport type WorkspacesListParams = WorkspacesListParameters\n\n/**\n * @deprecated Use WorkspacesListRequest instead.\n */\nexport type WorkspacesListResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/list'>>\n>\n\nexport type WorkspacesListRequest = SeamHttpRequest<\n WorkspacesListResponse,\n 'workspaces'\n>\n\nexport type WorkspacesListOptions = Record<string, never>\n\nexport type WorkspacesResetSandboxParameters =\n RouteRequestBody<'/workspaces/reset_sandbox'>\n\n/**\n * @deprecated Use WorkspacesResetSandboxParameters instead.\n */\nexport type WorkspacesResetSandboxBody = WorkspacesResetSandboxParameters\n\n/**\n * @deprecated Use WorkspacesResetSandboxRequest instead.\n */\nexport type WorkspacesResetSandboxResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/reset_sandbox'>>\n>\n\nexport type WorkspacesResetSandboxRequest = SeamHttpRequest<\n WorkspacesResetSandboxResponse,\n 'action_attempt'\n>\n\nexport type WorkspacesResetSandboxOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type WorkspacesUpdateParameters = RouteRequestBody<'/workspaces/update'>\n\n/**\n * @deprecated Use WorkspacesUpdateParameters instead.\n */\nexport type WorkspacesUpdateBody = WorkspacesUpdateParameters\n\n/**\n * @deprecated Use WorkspacesUpdateRequest instead.\n */\nexport type WorkspacesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/update'>>\n>\n\nexport type WorkspacesUpdateRequest = SeamHttpRequest<void, undefined>\n\nexport type WorkspacesUpdateOptions = Record<string, never>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpAccessCodes } from './access-codes/index.js'\nimport { SeamHttpAccessGrants } from './access-grants/index.js'\nimport { SeamHttpAccessMethods } from './access-methods/index.js'\nimport { SeamHttpAcs } from './acs/index.js'\nimport { SeamHttpActionAttempts } from './action-attempts/index.js'\nimport { SeamHttpBridges } from './bridges/index.js'\nimport { SeamHttpClientSessions } from './client-sessions/index.js'\nimport { SeamHttpConnectWebviews } from './connect-webviews/index.js'\nimport { SeamHttpConnectedAccounts } from './connected-accounts/index.js'\nimport { SeamHttpDevices } from './devices/index.js'\nimport { SeamHttpEvents } from './events/index.js'\nimport { SeamHttpLocks } from './locks/index.js'\nimport { SeamHttpNetworks } from './networks/index.js'\nimport { SeamHttpNoiseSensors } from './noise-sensors/index.js'\nimport { SeamHttpPhones } from './phones/index.js'\nimport { SeamHttpSpaces } from './spaces/index.js'\nimport { SeamHttpThermostats } from './thermostats/index.js'\nimport { SeamHttpUnstableAccessGrants } from './unstable-access-grants/index.js'\nimport { SeamHttpUnstableAccessMethods } from './unstable-access-methods/index.js'\nimport { SeamHttpUnstableLocations } from './unstable-locations/index.js'\nimport { SeamHttpUnstablePartner } from './unstable-partner/index.js'\nimport { SeamHttpUserIdentities } from './user-identities/index.js'\nimport { SeamHttpWebhooks } from './webhooks/index.js'\nimport { SeamHttpWorkspaces } from './workspaces/index.js'\n\nexport class SeamHttp {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttp {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttp(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttp {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttp(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttp {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttp(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttp> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttp.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttp.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttp {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttp(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttp {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttp(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get accessCodes(): SeamHttpAccessCodes {\n return SeamHttpAccessCodes.fromClient(this.client, this.defaults)\n }\n\n get accessGrants(): SeamHttpAccessGrants {\n return SeamHttpAccessGrants.fromClient(this.client, this.defaults)\n }\n\n get accessMethods(): SeamHttpAccessMethods {\n return SeamHttpAccessMethods.fromClient(this.client, this.defaults)\n }\n\n get acs(): SeamHttpAcs {\n return SeamHttpAcs.fromClient(this.client, this.defaults)\n }\n\n get actionAttempts(): SeamHttpActionAttempts {\n return SeamHttpActionAttempts.fromClient(this.client, this.defaults)\n }\n\n get bridges(): SeamHttpBridges {\n return SeamHttpBridges.fromClient(this.client, this.defaults)\n }\n\n get clientSessions(): SeamHttpClientSessions {\n return SeamHttpClientSessions.fromClient(this.client, this.defaults)\n }\n\n get connectWebviews(): SeamHttpConnectWebviews {\n return SeamHttpConnectWebviews.fromClient(this.client, this.defaults)\n }\n\n get connectedAccounts(): SeamHttpConnectedAccounts {\n return SeamHttpConnectedAccounts.fromClient(this.client, this.defaults)\n }\n\n get devices(): SeamHttpDevices {\n return SeamHttpDevices.fromClient(this.client, this.defaults)\n }\n\n get events(): SeamHttpEvents {\n return SeamHttpEvents.fromClient(this.client, this.defaults)\n }\n\n get locks(): SeamHttpLocks {\n return SeamHttpLocks.fromClient(this.client, this.defaults)\n }\n\n get networks(): SeamHttpNetworks {\n return SeamHttpNetworks.fromClient(this.client, this.defaults)\n }\n\n get noiseSensors(): SeamHttpNoiseSensors {\n return SeamHttpNoiseSensors.fromClient(this.client, this.defaults)\n }\n\n get phones(): SeamHttpPhones {\n return SeamHttpPhones.fromClient(this.client, this.defaults)\n }\n\n get spaces(): SeamHttpSpaces {\n return SeamHttpSpaces.fromClient(this.client, this.defaults)\n }\n\n get thermostats(): SeamHttpThermostats {\n return SeamHttpThermostats.fromClient(this.client, this.defaults)\n }\n\n get unstableAccessGrants(): SeamHttpUnstableAccessGrants {\n return SeamHttpUnstableAccessGrants.fromClient(this.client, this.defaults)\n }\n\n get unstableAccessMethods(): SeamHttpUnstableAccessMethods {\n return SeamHttpUnstableAccessMethods.fromClient(this.client, this.defaults)\n }\n\n get unstableLocations(): SeamHttpUnstableLocations {\n return SeamHttpUnstableLocations.fromClient(this.client, this.defaults)\n }\n\n get unstablePartner(): SeamHttpUnstablePartner {\n return SeamHttpUnstablePartner.fromClient(this.client, this.defaults)\n }\n\n get userIdentities(): SeamHttpUserIdentities {\n return SeamHttpUserIdentities.fromClient(this.client, this.defaults)\n }\n\n get webhooks(): SeamHttpWebhooks {\n return SeamHttpWebhooks.fromClient(this.client, this.defaults)\n }\n\n get workspaces(): SeamHttpWorkspaces {\n return SeamHttpWorkspaces.fromClient(this.client, this.defaults)\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport {\n type AccessCodesCreateMultipleOptions,\n type AccessCodesCreateMultipleParameters,\n type AccessCodesCreateMultipleRequest,\n type AccessCodesCreateOptions,\n type AccessCodesCreateParameters,\n type AccessCodesCreateRequest,\n type AccessCodesDeleteOptions,\n type AccessCodesDeleteParameters,\n type AccessCodesDeleteRequest,\n type AccessCodesGenerateCodeOptions,\n type AccessCodesGenerateCodeParameters,\n type AccessCodesGenerateCodeRequest,\n type AccessCodesGetOptions,\n type AccessCodesGetParameters,\n type AccessCodesGetRequest,\n type AccessCodesListOptions,\n type AccessCodesListParameters,\n type AccessCodesListRequest,\n type AccessCodesPullBackupAccessCodeOptions,\n type AccessCodesPullBackupAccessCodeParameters,\n type AccessCodesPullBackupAccessCodeRequest,\n type AccessCodesReportDeviceConstraintsOptions,\n type AccessCodesReportDeviceConstraintsParameters,\n type AccessCodesReportDeviceConstraintsRequest,\n type AccessCodesUpdateMultipleOptions,\n type AccessCodesUpdateMultipleParameters,\n type AccessCodesUpdateMultipleRequest,\n type AccessCodesUpdateOptions,\n type AccessCodesUpdateParameters,\n type AccessCodesUpdateRequest,\n SeamHttpAccessCodes,\n} from './access-codes/index.js'\nimport {\n type AccessCodesSimulateCreateUnmanagedAccessCodeOptions,\n type AccessCodesSimulateCreateUnmanagedAccessCodeParameters,\n type AccessCodesSimulateCreateUnmanagedAccessCodeRequest,\n SeamHttpAccessCodesSimulate,\n} from './access-codes/simulate/index.js'\nimport {\n type AccessCodesUnmanagedConvertToManagedOptions,\n type AccessCodesUnmanagedConvertToManagedParameters,\n type AccessCodesUnmanagedConvertToManagedRequest,\n type AccessCodesUnmanagedDeleteOptions,\n type AccessCodesUnmanagedDeleteParameters,\n type AccessCodesUnmanagedDeleteRequest,\n type AccessCodesUnmanagedGetOptions,\n type AccessCodesUnmanagedGetParameters,\n type AccessCodesUnmanagedGetRequest,\n type AccessCodesUnmanagedListOptions,\n type AccessCodesUnmanagedListParameters,\n type AccessCodesUnmanagedListRequest,\n type AccessCodesUnmanagedUpdateOptions,\n type AccessCodesUnmanagedUpdateParameters,\n type AccessCodesUnmanagedUpdateRequest,\n SeamHttpAccessCodesUnmanaged,\n} from './access-codes/unmanaged/index.js'\nimport {\n type AccessGrantsCreateOptions,\n type AccessGrantsCreateParameters,\n type AccessGrantsCreateRequest,\n type AccessGrantsDeleteOptions,\n type AccessGrantsDeleteParameters,\n type AccessGrantsDeleteRequest,\n type AccessGrantsGetOptions,\n type AccessGrantsGetParameters,\n type AccessGrantsGetRequest,\n type AccessGrantsListOptions,\n type AccessGrantsListParameters,\n type AccessGrantsListRequest,\n type AccessGrantsUpdateOptions,\n type AccessGrantsUpdateParameters,\n type AccessGrantsUpdateRequest,\n SeamHttpAccessGrants,\n} from './access-grants/index.js'\nimport {\n type AccessMethodsDeleteOptions,\n type AccessMethodsDeleteParameters,\n type AccessMethodsDeleteRequest,\n type AccessMethodsGetOptions,\n type AccessMethodsGetParameters,\n type AccessMethodsGetRequest,\n type AccessMethodsListOptions,\n type AccessMethodsListParameters,\n type AccessMethodsListRequest,\n SeamHttpAccessMethods,\n} from './access-methods/index.js'\nimport {\n type AcsAccessGroupsAddUserOptions,\n type AcsAccessGroupsAddUserParameters,\n type AcsAccessGroupsAddUserRequest,\n type AcsAccessGroupsGetOptions,\n type AcsAccessGroupsGetParameters,\n type AcsAccessGroupsGetRequest,\n type AcsAccessGroupsListAccessibleEntrancesOptions,\n type AcsAccessGroupsListAccessibleEntrancesParameters,\n type AcsAccessGroupsListAccessibleEntrancesRequest,\n type AcsAccessGroupsListOptions,\n type AcsAccessGroupsListParameters,\n type AcsAccessGroupsListRequest,\n type AcsAccessGroupsListUsersOptions,\n type AcsAccessGroupsListUsersParameters,\n type AcsAccessGroupsListUsersRequest,\n type AcsAccessGroupsRemoveUserOptions,\n type AcsAccessGroupsRemoveUserParameters,\n type AcsAccessGroupsRemoveUserRequest,\n SeamHttpAcsAccessGroups,\n} from './acs/access-groups/index.js'\nimport {\n type AcsAccessGroupsUnmanagedGetOptions,\n type AcsAccessGroupsUnmanagedGetParameters,\n type AcsAccessGroupsUnmanagedGetRequest,\n type AcsAccessGroupsUnmanagedListOptions,\n type AcsAccessGroupsUnmanagedListParameters,\n type AcsAccessGroupsUnmanagedListRequest,\n SeamHttpAcsAccessGroupsUnmanaged,\n} from './acs/access-groups/unmanaged/index.js'\nimport {\n type AcsCredentialPoolsListOptions,\n type AcsCredentialPoolsListParameters,\n type AcsCredentialPoolsListRequest,\n SeamHttpAcsCredentialPools,\n} from './acs/credential-pools/index.js'\nimport {\n type AcsCredentialProvisioningAutomationsLaunchOptions,\n type AcsCredentialProvisioningAutomationsLaunchParameters,\n type AcsCredentialProvisioningAutomationsLaunchRequest,\n SeamHttpAcsCredentialProvisioningAutomations,\n} from './acs/credential-provisioning-automations/index.js'\nimport {\n type AcsCredentialsAssignOptions,\n type AcsCredentialsAssignParameters,\n type AcsCredentialsAssignRequest,\n type AcsCredentialsCreateOfflineCodeOptions,\n type AcsCredentialsCreateOfflineCodeParameters,\n type AcsCredentialsCreateOfflineCodeRequest,\n type AcsCredentialsCreateOptions,\n type AcsCredentialsCreateParameters,\n type AcsCredentialsCreateRequest,\n type AcsCredentialsDeleteOptions,\n type AcsCredentialsDeleteParameters,\n type AcsCredentialsDeleteRequest,\n type AcsCredentialsGetOptions,\n type AcsCredentialsGetParameters,\n type AcsCredentialsGetRequest,\n type AcsCredentialsListAccessibleEntrancesOptions,\n type AcsCredentialsListAccessibleEntrancesParameters,\n type AcsCredentialsListAccessibleEntrancesRequest,\n type AcsCredentialsListOptions,\n type AcsCredentialsListParameters,\n type AcsCredentialsListRequest,\n type AcsCredentialsUnassignOptions,\n type AcsCredentialsUnassignParameters,\n type AcsCredentialsUnassignRequest,\n type AcsCredentialsUpdateOptions,\n type AcsCredentialsUpdateParameters,\n type AcsCredentialsUpdateRequest,\n SeamHttpAcsCredentials,\n} from './acs/credentials/index.js'\nimport {\n type AcsCredentialsUnmanagedGetOptions,\n type AcsCredentialsUnmanagedGetParameters,\n type AcsCredentialsUnmanagedGetRequest,\n type AcsCredentialsUnmanagedListOptions,\n type AcsCredentialsUnmanagedListParameters,\n type AcsCredentialsUnmanagedListRequest,\n SeamHttpAcsCredentialsUnmanaged,\n} from './acs/credentials/unmanaged/index.js'\nimport {\n type AcsEncodersEncodeAccessMethodOptions,\n type AcsEncodersEncodeAccessMethodParameters,\n type AcsEncodersEncodeAccessMethodRequest,\n type AcsEncodersEncodeCredentialOptions,\n type AcsEncodersEncodeCredentialParameters,\n type AcsEncodersEncodeCredentialRequest,\n type AcsEncodersGetOptions,\n type AcsEncodersGetParameters,\n type AcsEncodersGetRequest,\n type AcsEncodersListOptions,\n type AcsEncodersListParameters,\n type AcsEncodersListRequest,\n type AcsEncodersScanCredentialOptions,\n type AcsEncodersScanCredentialParameters,\n type AcsEncodersScanCredentialRequest,\n SeamHttpAcsEncoders,\n} from './acs/encoders/index.js'\nimport {\n type AcsEncodersSimulateNextCredentialEncodeWillFailOptions,\n type AcsEncodersSimulateNextCredentialEncodeWillFailParameters,\n type AcsEncodersSimulateNextCredentialEncodeWillFailRequest,\n type AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions,\n type AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters,\n type AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest,\n type AcsEncodersSimulateNextCredentialScanWillFailOptions,\n type AcsEncodersSimulateNextCredentialScanWillFailParameters,\n type AcsEncodersSimulateNextCredentialScanWillFailRequest,\n type AcsEncodersSimulateNextCredentialScanWillSucceedOptions,\n type AcsEncodersSimulateNextCredentialScanWillSucceedParameters,\n type AcsEncodersSimulateNextCredentialScanWillSucceedRequest,\n SeamHttpAcsEncodersSimulate,\n} from './acs/encoders/simulate/index.js'\nimport {\n type AcsEntrancesGetOptions,\n type AcsEntrancesGetParameters,\n type AcsEntrancesGetRequest,\n type AcsEntrancesGrantAccessOptions,\n type AcsEntrancesGrantAccessParameters,\n type AcsEntrancesGrantAccessRequest,\n type AcsEntrancesListCredentialsWithAccessOptions,\n type AcsEntrancesListCredentialsWithAccessParameters,\n type AcsEntrancesListCredentialsWithAccessRequest,\n type AcsEntrancesListOptions,\n type AcsEntrancesListParameters,\n type AcsEntrancesListRequest,\n SeamHttpAcsEntrances,\n} from './acs/entrances/index.js'\nimport {\n type AcsSystemsGetOptions,\n type AcsSystemsGetParameters,\n type AcsSystemsGetRequest,\n type AcsSystemsListCompatibleCredentialManagerAcsSystemsOptions,\n type AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters,\n type AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest,\n type AcsSystemsListOptions,\n type AcsSystemsListParameters,\n type AcsSystemsListRequest,\n SeamHttpAcsSystems,\n} from './acs/systems/index.js'\nimport {\n type AcsUsersAddToAccessGroupOptions,\n type AcsUsersAddToAccessGroupParameters,\n type AcsUsersAddToAccessGroupRequest,\n type AcsUsersCreateOptions,\n type AcsUsersCreateParameters,\n type AcsUsersCreateRequest,\n type AcsUsersDeleteOptions,\n type AcsUsersDeleteParameters,\n type AcsUsersDeleteRequest,\n type AcsUsersGetOptions,\n type AcsUsersGetParameters,\n type AcsUsersGetRequest,\n type AcsUsersListAccessibleEntrancesOptions,\n type AcsUsersListAccessibleEntrancesParameters,\n type AcsUsersListAccessibleEntrancesRequest,\n type AcsUsersListOptions,\n type AcsUsersListParameters,\n type AcsUsersListRequest,\n type AcsUsersRemoveFromAccessGroupOptions,\n type AcsUsersRemoveFromAccessGroupParameters,\n type AcsUsersRemoveFromAccessGroupRequest,\n type AcsUsersRevokeAccessToAllEntrancesOptions,\n type AcsUsersRevokeAccessToAllEntrancesParameters,\n type AcsUsersRevokeAccessToAllEntrancesRequest,\n type AcsUsersSuspendOptions,\n type AcsUsersSuspendParameters,\n type AcsUsersSuspendRequest,\n type AcsUsersUnsuspendOptions,\n type AcsUsersUnsuspendParameters,\n type AcsUsersUnsuspendRequest,\n type AcsUsersUpdateOptions,\n type AcsUsersUpdateParameters,\n type AcsUsersUpdateRequest,\n SeamHttpAcsUsers,\n} from './acs/users/index.js'\nimport {\n type AcsUsersUnmanagedGetOptions,\n type AcsUsersUnmanagedGetParameters,\n type AcsUsersUnmanagedGetRequest,\n type AcsUsersUnmanagedListOptions,\n type AcsUsersUnmanagedListParameters,\n type AcsUsersUnmanagedListRequest,\n SeamHttpAcsUsersUnmanaged,\n} from './acs/users/unmanaged/index.js'\nimport {\n type ActionAttemptsGetOptions,\n type ActionAttemptsGetParameters,\n type ActionAttemptsGetRequest,\n type ActionAttemptsListOptions,\n type ActionAttemptsListParameters,\n type ActionAttemptsListRequest,\n SeamHttpActionAttempts,\n} from './action-attempts/index.js'\nimport {\n type BridgesGetOptions,\n type BridgesGetParameters,\n type BridgesGetRequest,\n type BridgesListOptions,\n type BridgesListParameters,\n type BridgesListRequest,\n SeamHttpBridges,\n} from './bridges/index.js'\nimport {\n type ClientSessionsCreateOptions,\n type ClientSessionsCreateParameters,\n type ClientSessionsCreateRequest,\n type ClientSessionsDeleteOptions,\n type ClientSessionsDeleteParameters,\n type ClientSessionsDeleteRequest,\n type ClientSessionsGetOptions,\n type ClientSessionsGetOrCreateOptions,\n type ClientSessionsGetOrCreateParameters,\n type ClientSessionsGetOrCreateRequest,\n type ClientSessionsGetParameters,\n type ClientSessionsGetRequest,\n type ClientSessionsGrantAccessOptions,\n type ClientSessionsGrantAccessParameters,\n type ClientSessionsGrantAccessRequest,\n type ClientSessionsListOptions,\n type ClientSessionsListParameters,\n type ClientSessionsListRequest,\n type ClientSessionsRevokeOptions,\n type ClientSessionsRevokeParameters,\n type ClientSessionsRevokeRequest,\n SeamHttpClientSessions,\n} from './client-sessions/index.js'\nimport {\n type ConnectWebviewsCreateOptions,\n type ConnectWebviewsCreateParameters,\n type ConnectWebviewsCreateRequest,\n type ConnectWebviewsDeleteOptions,\n type ConnectWebviewsDeleteParameters,\n type ConnectWebviewsDeleteRequest,\n type ConnectWebviewsGetOptions,\n type ConnectWebviewsGetParameters,\n type ConnectWebviewsGetRequest,\n type ConnectWebviewsListOptions,\n type ConnectWebviewsListParameters,\n type ConnectWebviewsListRequest,\n SeamHttpConnectWebviews,\n} from './connect-webviews/index.js'\nimport {\n type ConnectedAccountsDeleteOptions,\n type ConnectedAccountsDeleteParameters,\n type ConnectedAccountsDeleteRequest,\n type ConnectedAccountsGetOptions,\n type ConnectedAccountsGetParameters,\n type ConnectedAccountsGetRequest,\n type ConnectedAccountsListOptions,\n type ConnectedAccountsListParameters,\n type ConnectedAccountsListRequest,\n type ConnectedAccountsSyncOptions,\n type ConnectedAccountsSyncParameters,\n type ConnectedAccountsSyncRequest,\n type ConnectedAccountsUpdateOptions,\n type ConnectedAccountsUpdateParameters,\n type ConnectedAccountsUpdateRequest,\n SeamHttpConnectedAccounts,\n} from './connected-accounts/index.js'\nimport {\n type DevicesDeleteOptions,\n type DevicesDeleteParameters,\n type DevicesDeleteRequest,\n type DevicesGetOptions,\n type DevicesGetParameters,\n type DevicesGetRequest,\n type DevicesListDeviceProvidersOptions,\n type DevicesListDeviceProvidersParameters,\n type DevicesListDeviceProvidersRequest,\n type DevicesListOptions,\n type DevicesListParameters,\n type DevicesListRequest,\n type DevicesUpdateOptions,\n type DevicesUpdateParameters,\n type DevicesUpdateRequest,\n SeamHttpDevices,\n} from './devices/index.js'\nimport {\n type DevicesSimulateConnectOptions,\n type DevicesSimulateConnectParameters,\n type DevicesSimulateConnectRequest,\n type DevicesSimulateDisconnectOptions,\n type DevicesSimulateDisconnectParameters,\n type DevicesSimulateDisconnectRequest,\n type DevicesSimulateRemoveOptions,\n type DevicesSimulateRemoveParameters,\n type DevicesSimulateRemoveRequest,\n SeamHttpDevicesSimulate,\n} from './devices/simulate/index.js'\nimport {\n type DevicesUnmanagedGetOptions,\n type DevicesUnmanagedGetParameters,\n type DevicesUnmanagedGetRequest,\n type DevicesUnmanagedListOptions,\n type DevicesUnmanagedListParameters,\n type DevicesUnmanagedListRequest,\n type DevicesUnmanagedUpdateOptions,\n type DevicesUnmanagedUpdateParameters,\n type DevicesUnmanagedUpdateRequest,\n SeamHttpDevicesUnmanaged,\n} from './devices/unmanaged/index.js'\nimport {\n type EventsGetOptions,\n type EventsGetParameters,\n type EventsGetRequest,\n type EventsListOptions,\n type EventsListParameters,\n type EventsListRequest,\n SeamHttpEvents,\n} from './events/index.js'\nimport {\n type LocksGetOptions,\n type LocksGetParameters,\n type LocksGetRequest,\n type LocksListOptions,\n type LocksListParameters,\n type LocksListRequest,\n type LocksLockDoorOptions,\n type LocksLockDoorParameters,\n type LocksLockDoorRequest,\n type LocksUnlockDoorOptions,\n type LocksUnlockDoorParameters,\n type LocksUnlockDoorRequest,\n SeamHttpLocks,\n} from './locks/index.js'\nimport {\n type LocksSimulateKeypadCodeEntryOptions,\n type LocksSimulateKeypadCodeEntryParameters,\n type LocksSimulateKeypadCodeEntryRequest,\n type LocksSimulateManualLockViaKeypadOptions,\n type LocksSimulateManualLockViaKeypadParameters,\n type LocksSimulateManualLockViaKeypadRequest,\n SeamHttpLocksSimulate,\n} from './locks/simulate/index.js'\nimport {\n type NetworksGetOptions,\n type NetworksGetParameters,\n type NetworksGetRequest,\n type NetworksListOptions,\n type NetworksListParameters,\n type NetworksListRequest,\n SeamHttpNetworks,\n} from './networks/index.js'\nimport {\n type NoiseSensorsListOptions,\n type NoiseSensorsListParameters,\n type NoiseSensorsListRequest,\n SeamHttpNoiseSensors,\n} from './noise-sensors/index.js'\nimport {\n type NoiseSensorsNoiseThresholdsCreateOptions,\n type NoiseSensorsNoiseThresholdsCreateParameters,\n type NoiseSensorsNoiseThresholdsCreateRequest,\n type NoiseSensorsNoiseThresholdsDeleteOptions,\n type NoiseSensorsNoiseThresholdsDeleteParameters,\n type NoiseSensorsNoiseThresholdsDeleteRequest,\n type NoiseSensorsNoiseThresholdsGetOptions,\n type NoiseSensorsNoiseThresholdsGetParameters,\n type NoiseSensorsNoiseThresholdsGetRequest,\n type NoiseSensorsNoiseThresholdsListOptions,\n type NoiseSensorsNoiseThresholdsListParameters,\n type NoiseSensorsNoiseThresholdsListRequest,\n type NoiseSensorsNoiseThresholdsUpdateOptions,\n type NoiseSensorsNoiseThresholdsUpdateParameters,\n type NoiseSensorsNoiseThresholdsUpdateRequest,\n SeamHttpNoiseSensorsNoiseThresholds,\n} from './noise-sensors/noise-thresholds/index.js'\nimport {\n type NoiseSensorsSimulateTriggerNoiseThresholdOptions,\n type NoiseSensorsSimulateTriggerNoiseThresholdParameters,\n type NoiseSensorsSimulateTriggerNoiseThresholdRequest,\n SeamHttpNoiseSensorsSimulate,\n} from './noise-sensors/simulate/index.js'\nimport {\n type PhonesDeactivateOptions,\n type PhonesDeactivateParameters,\n type PhonesDeactivateRequest,\n type PhonesGetOptions,\n type PhonesGetParameters,\n type PhonesGetRequest,\n type PhonesListOptions,\n type PhonesListParameters,\n type PhonesListRequest,\n SeamHttpPhones,\n} from './phones/index.js'\nimport {\n type PhonesSimulateCreateSandboxPhoneOptions,\n type PhonesSimulateCreateSandboxPhoneParameters,\n type PhonesSimulateCreateSandboxPhoneRequest,\n SeamHttpPhonesSimulate,\n} from './phones/simulate/index.js'\nimport {\n type SeamBridgeV1BridgeClientSessionsCreateOptions,\n type SeamBridgeV1BridgeClientSessionsCreateParameters,\n type SeamBridgeV1BridgeClientSessionsCreateRequest,\n type SeamBridgeV1BridgeClientSessionsGetOptions,\n type SeamBridgeV1BridgeClientSessionsGetParameters,\n type SeamBridgeV1BridgeClientSessionsGetRequest,\n type SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenOptions,\n type SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenParameters,\n type SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenRequest,\n type SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeOptions,\n type SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeParameters,\n type SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeRequest,\n type SeamBridgeV1BridgeClientSessionsReportStatusOptions,\n type SeamBridgeV1BridgeClientSessionsReportStatusParameters,\n type SeamBridgeV1BridgeClientSessionsReportStatusRequest,\n SeamHttpSeamBridgeV1BridgeClientSessions,\n} from './seam/bridge/v1/bridge-client-sessions/index.js'\nimport {\n type SeamBridgeV1BridgeConnectedSystemsListOptions,\n type SeamBridgeV1BridgeConnectedSystemsListParameters,\n type SeamBridgeV1BridgeConnectedSystemsListRequest,\n SeamHttpSeamBridgeV1BridgeConnectedSystems,\n} from './seam/bridge/v1/bridge-connected-systems/index.js'\nimport {\n SeamHttpSeamInstantKeyV1ClientSessions,\n type SeamInstantKeyV1ClientSessionsExchangeShortCodeOptions,\n type SeamInstantKeyV1ClientSessionsExchangeShortCodeParameters,\n type SeamInstantKeyV1ClientSessionsExchangeShortCodeRequest,\n} from './seam/instant-key/v1/client-sessions/index.js'\nimport {\n SeamHttpSeamMobileSdkV1AcsCredentials,\n type SeamMobileSdkV1AcsCredentialsListOptions,\n type SeamMobileSdkV1AcsCredentialsListParameters,\n type SeamMobileSdkV1AcsCredentialsListRequest,\n} from './seam/mobile-sdk/v1/acs/credentials/index.js'\nimport {\n SeamHttpSeamMobileSdkV1PhoneSessions,\n type SeamMobileSdkV1PhoneSessionsGetOrCreateOptions,\n type SeamMobileSdkV1PhoneSessionsGetOrCreateParameters,\n type SeamMobileSdkV1PhoneSessionsGetOrCreateRequest,\n} from './seam/mobile-sdk/v1/phone-sessions/index.js'\nimport {\n SeamHttpSeamPartnerV1BuildingBlocksSpaces,\n type SeamPartnerV1BuildingBlocksSpacesAutoMapOptions,\n type SeamPartnerV1BuildingBlocksSpacesAutoMapParameters,\n type SeamPartnerV1BuildingBlocksSpacesAutoMapRequest,\n} from './seam/partner/v1/building-blocks/spaces/index.js'\nimport {\n SeamHttpSeamPartnerV1Resources,\n type SeamPartnerV1ResourcesListOptions,\n type SeamPartnerV1ResourcesListParameters,\n type SeamPartnerV1ResourcesListRequest,\n} from './seam/partner/v1/resources/index.js'\nimport {\n SeamHttpSpaces,\n type SpacesAddAcsEntrancesOptions,\n type SpacesAddAcsEntrancesParameters,\n type SpacesAddAcsEntrancesRequest,\n type SpacesAddDevicesOptions,\n type SpacesAddDevicesParameters,\n type SpacesAddDevicesRequest,\n type SpacesCreateOptions,\n type SpacesCreateParameters,\n type SpacesCreateRequest,\n type SpacesDeleteOptions,\n type SpacesDeleteParameters,\n type SpacesDeleteRequest,\n type SpacesGetOptions,\n type SpacesGetParameters,\n type SpacesGetRequest,\n type SpacesListOptions,\n type SpacesListParameters,\n type SpacesListRequest,\n type SpacesRemoveAcsEntrancesOptions,\n type SpacesRemoveAcsEntrancesParameters,\n type SpacesRemoveAcsEntrancesRequest,\n type SpacesRemoveDevicesOptions,\n type SpacesRemoveDevicesParameters,\n type SpacesRemoveDevicesRequest,\n type SpacesUpdateOptions,\n type SpacesUpdateParameters,\n type SpacesUpdateRequest,\n} from './spaces/index.js'\nimport {\n SeamHttpThermostatsDailyPrograms,\n type ThermostatsDailyProgramsCreateOptions,\n type ThermostatsDailyProgramsCreateParameters,\n type ThermostatsDailyProgramsCreateRequest,\n type ThermostatsDailyProgramsDeleteOptions,\n type ThermostatsDailyProgramsDeleteParameters,\n type ThermostatsDailyProgramsDeleteRequest,\n type ThermostatsDailyProgramsUpdateOptions,\n type ThermostatsDailyProgramsUpdateParameters,\n type ThermostatsDailyProgramsUpdateRequest,\n} from './thermostats/daily-programs/index.js'\nimport {\n SeamHttpThermostats,\n type ThermostatsActivateClimatePresetOptions,\n type ThermostatsActivateClimatePresetParameters,\n type ThermostatsActivateClimatePresetRequest,\n type ThermostatsCoolOptions,\n type ThermostatsCoolParameters,\n type ThermostatsCoolRequest,\n type ThermostatsCreateClimatePresetOptions,\n type ThermostatsCreateClimatePresetParameters,\n type ThermostatsCreateClimatePresetRequest,\n type ThermostatsDeleteClimatePresetOptions,\n type ThermostatsDeleteClimatePresetParameters,\n type ThermostatsDeleteClimatePresetRequest,\n type ThermostatsGetOptions,\n type ThermostatsGetParameters,\n type ThermostatsGetRequest,\n type ThermostatsHeatCoolOptions,\n type ThermostatsHeatCoolParameters,\n type ThermostatsHeatCoolRequest,\n type ThermostatsHeatOptions,\n type ThermostatsHeatParameters,\n type ThermostatsHeatRequest,\n type ThermostatsListOptions,\n type ThermostatsListParameters,\n type ThermostatsListRequest,\n type ThermostatsOffOptions,\n type ThermostatsOffParameters,\n type ThermostatsOffRequest,\n type ThermostatsSetFallbackClimatePresetOptions,\n type ThermostatsSetFallbackClimatePresetParameters,\n type ThermostatsSetFallbackClimatePresetRequest,\n type ThermostatsSetFanModeOptions,\n type ThermostatsSetFanModeParameters,\n type ThermostatsSetFanModeRequest,\n type ThermostatsSetHvacModeOptions,\n type ThermostatsSetHvacModeParameters,\n type ThermostatsSetHvacModeRequest,\n type ThermostatsSetTemperatureThresholdOptions,\n type ThermostatsSetTemperatureThresholdParameters,\n type ThermostatsSetTemperatureThresholdRequest,\n type ThermostatsUpdateClimatePresetOptions,\n type ThermostatsUpdateClimatePresetParameters,\n type ThermostatsUpdateClimatePresetRequest,\n type ThermostatsUpdateWeeklyProgramOptions,\n type ThermostatsUpdateWeeklyProgramParameters,\n type ThermostatsUpdateWeeklyProgramRequest,\n} from './thermostats/index.js'\nimport {\n SeamHttpThermostatsSchedules,\n type ThermostatsSchedulesCreateOptions,\n type ThermostatsSchedulesCreateParameters,\n type ThermostatsSchedulesCreateRequest,\n type ThermostatsSchedulesDeleteOptions,\n type ThermostatsSchedulesDeleteParameters,\n type ThermostatsSchedulesDeleteRequest,\n type ThermostatsSchedulesGetOptions,\n type ThermostatsSchedulesGetParameters,\n type ThermostatsSchedulesGetRequest,\n type ThermostatsSchedulesListOptions,\n type ThermostatsSchedulesListParameters,\n type ThermostatsSchedulesListRequest,\n type ThermostatsSchedulesUpdateOptions,\n type ThermostatsSchedulesUpdateParameters,\n type ThermostatsSchedulesUpdateRequest,\n} from './thermostats/schedules/index.js'\nimport {\n SeamHttpThermostatsSimulate,\n type ThermostatsSimulateHvacModeAdjustedOptions,\n type ThermostatsSimulateHvacModeAdjustedParameters,\n type ThermostatsSimulateHvacModeAdjustedRequest,\n type ThermostatsSimulateTemperatureReachedOptions,\n type ThermostatsSimulateTemperatureReachedParameters,\n type ThermostatsSimulateTemperatureReachedRequest,\n} from './thermostats/simulate/index.js'\nimport {\n SeamHttpUnstableAccessGrants,\n type UnstableAccessGrantsCreateOptions,\n type UnstableAccessGrantsCreateParameters,\n type UnstableAccessGrantsCreateRequest,\n type UnstableAccessGrantsDeleteOptions,\n type UnstableAccessGrantsDeleteParameters,\n type UnstableAccessGrantsDeleteRequest,\n type UnstableAccessGrantsGetOptions,\n type UnstableAccessGrantsGetParameters,\n type UnstableAccessGrantsGetRequest,\n type UnstableAccessGrantsListOptions,\n type UnstableAccessGrantsListParameters,\n type UnstableAccessGrantsListRequest,\n} from './unstable-access-grants/index.js'\nimport {\n SeamHttpUnstableAccessMethods,\n type UnstableAccessMethodsDeleteOptions,\n type UnstableAccessMethodsDeleteParameters,\n type UnstableAccessMethodsDeleteRequest,\n type UnstableAccessMethodsGetOptions,\n type UnstableAccessMethodsGetParameters,\n type UnstableAccessMethodsGetRequest,\n type UnstableAccessMethodsListOptions,\n type UnstableAccessMethodsListParameters,\n type UnstableAccessMethodsListRequest,\n} from './unstable-access-methods/index.js'\nimport {\n SeamHttpUnstableLocations,\n type UnstableLocationsAddAcsEntrancesOptions,\n type UnstableLocationsAddAcsEntrancesParameters,\n type UnstableLocationsAddAcsEntrancesRequest,\n type UnstableLocationsAddDevicesOptions,\n type UnstableLocationsAddDevicesParameters,\n type UnstableLocationsAddDevicesRequest,\n type UnstableLocationsCreateOptions,\n type UnstableLocationsCreateParameters,\n type UnstableLocationsCreateRequest,\n type UnstableLocationsDeleteOptions,\n type UnstableLocationsDeleteParameters,\n type UnstableLocationsDeleteRequest,\n type UnstableLocationsGetOptions,\n type UnstableLocationsGetParameters,\n type UnstableLocationsGetRequest,\n type UnstableLocationsListOptions,\n type UnstableLocationsListParameters,\n type UnstableLocationsListRequest,\n type UnstableLocationsRemoveAcsEntrancesOptions,\n type UnstableLocationsRemoveAcsEntrancesParameters,\n type UnstableLocationsRemoveAcsEntrancesRequest,\n type UnstableLocationsRemoveDevicesOptions,\n type UnstableLocationsRemoveDevicesParameters,\n type UnstableLocationsRemoveDevicesRequest,\n type UnstableLocationsUpdateOptions,\n type UnstableLocationsUpdateParameters,\n type UnstableLocationsUpdateRequest,\n} from './unstable-locations/index.js'\nimport {\n SeamHttpUnstablePartnerBuildingBlocks,\n type UnstablePartnerBuildingBlocksConnectAccountsOptions,\n type UnstablePartnerBuildingBlocksConnectAccountsParameters,\n type UnstablePartnerBuildingBlocksConnectAccountsRequest,\n type UnstablePartnerBuildingBlocksGenerateMagicLinkOptions,\n type UnstablePartnerBuildingBlocksGenerateMagicLinkParameters,\n type UnstablePartnerBuildingBlocksGenerateMagicLinkRequest,\n type UnstablePartnerBuildingBlocksManageDevicesOptions,\n type UnstablePartnerBuildingBlocksManageDevicesParameters,\n type UnstablePartnerBuildingBlocksManageDevicesRequest,\n type UnstablePartnerBuildingBlocksOrganizeSpacesOptions,\n type UnstablePartnerBuildingBlocksOrganizeSpacesParameters,\n type UnstablePartnerBuildingBlocksOrganizeSpacesRequest,\n} from './unstable-partner/building-blocks/index.js'\nimport {\n SeamHttpUnstablePartnerResources,\n type UnstablePartnerResourcesPushOptions,\n type UnstablePartnerResourcesPushParameters,\n type UnstablePartnerResourcesPushRequest,\n} from './unstable-partner/resources/index.js'\nimport {\n SeamHttpUserIdentitiesEnrollmentAutomations,\n type UserIdentitiesEnrollmentAutomationsDeleteOptions,\n type UserIdentitiesEnrollmentAutomationsDeleteParameters,\n type UserIdentitiesEnrollmentAutomationsDeleteRequest,\n type UserIdentitiesEnrollmentAutomationsGetOptions,\n type UserIdentitiesEnrollmentAutomationsGetParameters,\n type UserIdentitiesEnrollmentAutomationsGetRequest,\n type UserIdentitiesEnrollmentAutomationsLaunchOptions,\n type UserIdentitiesEnrollmentAutomationsLaunchParameters,\n type UserIdentitiesEnrollmentAutomationsLaunchRequest,\n type UserIdentitiesEnrollmentAutomationsListOptions,\n type UserIdentitiesEnrollmentAutomationsListParameters,\n type UserIdentitiesEnrollmentAutomationsListRequest,\n} from './user-identities/enrollment-automations/index.js'\nimport {\n SeamHttpUserIdentities,\n type UserIdentitiesAddAcsUserOptions,\n type UserIdentitiesAddAcsUserParameters,\n type UserIdentitiesAddAcsUserRequest,\n type UserIdentitiesCreateOptions,\n type UserIdentitiesCreateParameters,\n type UserIdentitiesCreateRequest,\n type UserIdentitiesDeleteOptions,\n type UserIdentitiesDeleteParameters,\n type UserIdentitiesDeleteRequest,\n type UserIdentitiesGenerateInstantKeyOptions,\n type UserIdentitiesGenerateInstantKeyParameters,\n type UserIdentitiesGenerateInstantKeyRequest,\n type UserIdentitiesGetOptions,\n type UserIdentitiesGetParameters,\n type UserIdentitiesGetRequest,\n type UserIdentitiesGrantAccessToDeviceOptions,\n type UserIdentitiesGrantAccessToDeviceParameters,\n type UserIdentitiesGrantAccessToDeviceRequest,\n type UserIdentitiesListAccessibleDevicesOptions,\n type UserIdentitiesListAccessibleDevicesParameters,\n type UserIdentitiesListAccessibleDevicesRequest,\n type UserIdentitiesListAcsSystemsOptions,\n type UserIdentitiesListAcsSystemsParameters,\n type UserIdentitiesListAcsSystemsRequest,\n type UserIdentitiesListAcsUsersOptions,\n type UserIdentitiesListAcsUsersParameters,\n type UserIdentitiesListAcsUsersRequest,\n type UserIdentitiesListOptions,\n type UserIdentitiesListParameters,\n type UserIdentitiesListRequest,\n type UserIdentitiesRemoveAcsUserOptions,\n type UserIdentitiesRemoveAcsUserParameters,\n type UserIdentitiesRemoveAcsUserRequest,\n type UserIdentitiesRevokeAccessToDeviceOptions,\n type UserIdentitiesRevokeAccessToDeviceParameters,\n type UserIdentitiesRevokeAccessToDeviceRequest,\n type UserIdentitiesUpdateOptions,\n type UserIdentitiesUpdateParameters,\n type UserIdentitiesUpdateRequest,\n} from './user-identities/index.js'\nimport {\n SeamHttpWebhooks,\n type WebhooksCreateOptions,\n type WebhooksCreateParameters,\n type WebhooksCreateRequest,\n type WebhooksDeleteOptions,\n type WebhooksDeleteParameters,\n type WebhooksDeleteRequest,\n type WebhooksGetOptions,\n type WebhooksGetParameters,\n type WebhooksGetRequest,\n type WebhooksListOptions,\n type WebhooksListParameters,\n type WebhooksListRequest,\n type WebhooksUpdateOptions,\n type WebhooksUpdateParameters,\n type WebhooksUpdateRequest,\n} from './webhooks/index.js'\nimport {\n SeamHttpWorkspaces,\n type WorkspacesCreateOptions,\n type WorkspacesCreateParameters,\n type WorkspacesCreateRequest,\n type WorkspacesGetOptions,\n type WorkspacesGetParameters,\n type WorkspacesGetRequest,\n type WorkspacesListOptions,\n type WorkspacesListParameters,\n type WorkspacesListRequest,\n type WorkspacesResetSandboxOptions,\n type WorkspacesResetSandboxParameters,\n type WorkspacesResetSandboxRequest,\n type WorkspacesUpdateOptions,\n type WorkspacesUpdateParameters,\n type WorkspacesUpdateRequest,\n} from './workspaces/index.js'\n\nexport class SeamHttpEndpoints {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpEndpoints> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpEndpoints.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpEndpoints.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get ['/access_codes/create'](): (\n parameters?: AccessCodesCreateParameters,\n options?: AccessCodesCreateOptions,\n ) => AccessCodesCreateRequest {\n const { client, defaults } = this\n return function accessCodesCreate(\n ...args: Parameters<SeamHttpAccessCodes['create']>\n ): ReturnType<SeamHttpAccessCodes['create']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/access_codes/create_multiple'](): (\n parameters?: AccessCodesCreateMultipleParameters,\n options?: AccessCodesCreateMultipleOptions,\n ) => AccessCodesCreateMultipleRequest {\n const { client, defaults } = this\n return function accessCodesCreateMultiple(\n ...args: Parameters<SeamHttpAccessCodes['createMultiple']>\n ): ReturnType<SeamHttpAccessCodes['createMultiple']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.createMultiple(...args)\n }\n }\n\n get ['/access_codes/delete'](): (\n parameters?: AccessCodesDeleteParameters,\n options?: AccessCodesDeleteOptions,\n ) => AccessCodesDeleteRequest {\n const { client, defaults } = this\n return function accessCodesDelete(\n ...args: Parameters<SeamHttpAccessCodes['delete']>\n ): ReturnType<SeamHttpAccessCodes['delete']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_codes/generate_code'](): (\n parameters?: AccessCodesGenerateCodeParameters,\n options?: AccessCodesGenerateCodeOptions,\n ) => AccessCodesGenerateCodeRequest {\n const { client, defaults } = this\n return function accessCodesGenerateCode(\n ...args: Parameters<SeamHttpAccessCodes['generateCode']>\n ): ReturnType<SeamHttpAccessCodes['generateCode']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.generateCode(...args)\n }\n }\n\n get ['/access_codes/get'](): (\n parameters?: AccessCodesGetParameters,\n options?: AccessCodesGetOptions,\n ) => AccessCodesGetRequest {\n const { client, defaults } = this\n return function accessCodesGet(\n ...args: Parameters<SeamHttpAccessCodes['get']>\n ): ReturnType<SeamHttpAccessCodes['get']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_codes/list'](): (\n parameters?: AccessCodesListParameters,\n options?: AccessCodesListOptions,\n ) => AccessCodesListRequest {\n const { client, defaults } = this\n return function accessCodesList(\n ...args: Parameters<SeamHttpAccessCodes['list']>\n ): ReturnType<SeamHttpAccessCodes['list']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/access_codes/pull_backup_access_code'](): (\n parameters?: AccessCodesPullBackupAccessCodeParameters,\n options?: AccessCodesPullBackupAccessCodeOptions,\n ) => AccessCodesPullBackupAccessCodeRequest {\n const { client, defaults } = this\n return function accessCodesPullBackupAccessCode(\n ...args: Parameters<SeamHttpAccessCodes['pullBackupAccessCode']>\n ): ReturnType<SeamHttpAccessCodes['pullBackupAccessCode']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.pullBackupAccessCode(...args)\n }\n }\n\n get ['/access_codes/report_device_constraints'](): (\n parameters?: AccessCodesReportDeviceConstraintsParameters,\n options?: AccessCodesReportDeviceConstraintsOptions,\n ) => AccessCodesReportDeviceConstraintsRequest {\n const { client, defaults } = this\n return function accessCodesReportDeviceConstraints(\n ...args: Parameters<SeamHttpAccessCodes['reportDeviceConstraints']>\n ): ReturnType<SeamHttpAccessCodes['reportDeviceConstraints']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.reportDeviceConstraints(...args)\n }\n }\n\n get ['/access_codes/update'](): (\n parameters?: AccessCodesUpdateParameters,\n options?: AccessCodesUpdateOptions,\n ) => AccessCodesUpdateRequest {\n const { client, defaults } = this\n return function accessCodesUpdate(\n ...args: Parameters<SeamHttpAccessCodes['update']>\n ): ReturnType<SeamHttpAccessCodes['update']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/access_codes/update_multiple'](): (\n parameters?: AccessCodesUpdateMultipleParameters,\n options?: AccessCodesUpdateMultipleOptions,\n ) => AccessCodesUpdateMultipleRequest {\n const { client, defaults } = this\n return function accessCodesUpdateMultiple(\n ...args: Parameters<SeamHttpAccessCodes['updateMultiple']>\n ): ReturnType<SeamHttpAccessCodes['updateMultiple']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.updateMultiple(...args)\n }\n }\n\n get ['/access_codes/simulate/create_unmanaged_access_code'](): (\n parameters?: AccessCodesSimulateCreateUnmanagedAccessCodeParameters,\n options?: AccessCodesSimulateCreateUnmanagedAccessCodeOptions,\n ) => AccessCodesSimulateCreateUnmanagedAccessCodeRequest {\n const { client, defaults } = this\n return function accessCodesSimulateCreateUnmanagedAccessCode(\n ...args: Parameters<\n SeamHttpAccessCodesSimulate['createUnmanagedAccessCode']\n >\n ): ReturnType<SeamHttpAccessCodesSimulate['createUnmanagedAccessCode']> {\n const seam = SeamHttpAccessCodesSimulate.fromClient(client, defaults)\n return seam.createUnmanagedAccessCode(...args)\n }\n }\n\n get ['/access_codes/unmanaged/convert_to_managed'](): (\n parameters?: AccessCodesUnmanagedConvertToManagedParameters,\n options?: AccessCodesUnmanagedConvertToManagedOptions,\n ) => AccessCodesUnmanagedConvertToManagedRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedConvertToManaged(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['convertToManaged']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['convertToManaged']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.convertToManaged(...args)\n }\n }\n\n get ['/access_codes/unmanaged/delete'](): (\n parameters?: AccessCodesUnmanagedDeleteParameters,\n options?: AccessCodesUnmanagedDeleteOptions,\n ) => AccessCodesUnmanagedDeleteRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedDelete(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['delete']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['delete']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_codes/unmanaged/get'](): (\n parameters?: AccessCodesUnmanagedGetParameters,\n options?: AccessCodesUnmanagedGetOptions,\n ) => AccessCodesUnmanagedGetRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedGet(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['get']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['get']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_codes/unmanaged/list'](): (\n parameters?: AccessCodesUnmanagedListParameters,\n options?: AccessCodesUnmanagedListOptions,\n ) => AccessCodesUnmanagedListRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedList(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['list']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['list']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/access_codes/unmanaged/update'](): (\n parameters?: AccessCodesUnmanagedUpdateParameters,\n options?: AccessCodesUnmanagedUpdateOptions,\n ) => AccessCodesUnmanagedUpdateRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedUpdate(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['update']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['update']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/access_grants/create'](): (\n parameters?: AccessGrantsCreateParameters,\n options?: AccessGrantsCreateOptions,\n ) => AccessGrantsCreateRequest {\n const { client, defaults } = this\n return function accessGrantsCreate(\n ...args: Parameters<SeamHttpAccessGrants['create']>\n ): ReturnType<SeamHttpAccessGrants['create']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/access_grants/delete'](): (\n parameters?: AccessGrantsDeleteParameters,\n options?: AccessGrantsDeleteOptions,\n ) => AccessGrantsDeleteRequest {\n const { client, defaults } = this\n return function accessGrantsDelete(\n ...args: Parameters<SeamHttpAccessGrants['delete']>\n ): ReturnType<SeamHttpAccessGrants['delete']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_grants/get'](): (\n parameters?: AccessGrantsGetParameters,\n options?: AccessGrantsGetOptions,\n ) => AccessGrantsGetRequest {\n const { client, defaults } = this\n return function accessGrantsGet(\n ...args: Parameters<SeamHttpAccessGrants['get']>\n ): ReturnType<SeamHttpAccessGrants['get']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_grants/list'](): (\n parameters?: AccessGrantsListParameters,\n options?: AccessGrantsListOptions,\n ) => AccessGrantsListRequest {\n const { client, defaults } = this\n return function accessGrantsList(\n ...args: Parameters<SeamHttpAccessGrants['list']>\n ): ReturnType<SeamHttpAccessGrants['list']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/access_grants/update'](): (\n parameters?: AccessGrantsUpdateParameters,\n options?: AccessGrantsUpdateOptions,\n ) => AccessGrantsUpdateRequest {\n const { client, defaults } = this\n return function accessGrantsUpdate(\n ...args: Parameters<SeamHttpAccessGrants['update']>\n ): ReturnType<SeamHttpAccessGrants['update']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/access_methods/delete'](): (\n parameters?: AccessMethodsDeleteParameters,\n options?: AccessMethodsDeleteOptions,\n ) => AccessMethodsDeleteRequest {\n const { client, defaults } = this\n return function accessMethodsDelete(\n ...args: Parameters<SeamHttpAccessMethods['delete']>\n ): ReturnType<SeamHttpAccessMethods['delete']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_methods/get'](): (\n parameters?: AccessMethodsGetParameters,\n options?: AccessMethodsGetOptions,\n ) => AccessMethodsGetRequest {\n const { client, defaults } = this\n return function accessMethodsGet(\n ...args: Parameters<SeamHttpAccessMethods['get']>\n ): ReturnType<SeamHttpAccessMethods['get']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_methods/list'](): (\n parameters?: AccessMethodsListParameters,\n options?: AccessMethodsListOptions,\n ) => AccessMethodsListRequest {\n const { client, defaults } = this\n return function accessMethodsList(\n ...args: Parameters<SeamHttpAccessMethods['list']>\n ): ReturnType<SeamHttpAccessMethods['list']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/access_groups/add_user'](): (\n parameters?: AcsAccessGroupsAddUserParameters,\n options?: AcsAccessGroupsAddUserOptions,\n ) => AcsAccessGroupsAddUserRequest {\n const { client, defaults } = this\n return function acsAccessGroupsAddUser(\n ...args: Parameters<SeamHttpAcsAccessGroups['addUser']>\n ): ReturnType<SeamHttpAcsAccessGroups['addUser']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.addUser(...args)\n }\n }\n\n get ['/acs/access_groups/get'](): (\n parameters?: AcsAccessGroupsGetParameters,\n options?: AcsAccessGroupsGetOptions,\n ) => AcsAccessGroupsGetRequest {\n const { client, defaults } = this\n return function acsAccessGroupsGet(\n ...args: Parameters<SeamHttpAcsAccessGroups['get']>\n ): ReturnType<SeamHttpAcsAccessGroups['get']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/access_groups/list'](): (\n parameters?: AcsAccessGroupsListParameters,\n options?: AcsAccessGroupsListOptions,\n ) => AcsAccessGroupsListRequest {\n const { client, defaults } = this\n return function acsAccessGroupsList(\n ...args: Parameters<SeamHttpAcsAccessGroups['list']>\n ): ReturnType<SeamHttpAcsAccessGroups['list']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/access_groups/list_accessible_entrances'](): (\n parameters?: AcsAccessGroupsListAccessibleEntrancesParameters,\n options?: AcsAccessGroupsListAccessibleEntrancesOptions,\n ) => AcsAccessGroupsListAccessibleEntrancesRequest {\n const { client, defaults } = this\n return function acsAccessGroupsListAccessibleEntrances(\n ...args: Parameters<SeamHttpAcsAccessGroups['listAccessibleEntrances']>\n ): ReturnType<SeamHttpAcsAccessGroups['listAccessibleEntrances']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.listAccessibleEntrances(...args)\n }\n }\n\n get ['/acs/access_groups/list_users'](): (\n parameters?: AcsAccessGroupsListUsersParameters,\n options?: AcsAccessGroupsListUsersOptions,\n ) => AcsAccessGroupsListUsersRequest {\n const { client, defaults } = this\n return function acsAccessGroupsListUsers(\n ...args: Parameters<SeamHttpAcsAccessGroups['listUsers']>\n ): ReturnType<SeamHttpAcsAccessGroups['listUsers']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.listUsers(...args)\n }\n }\n\n get ['/acs/access_groups/remove_user'](): (\n parameters?: AcsAccessGroupsRemoveUserParameters,\n options?: AcsAccessGroupsRemoveUserOptions,\n ) => AcsAccessGroupsRemoveUserRequest {\n const { client, defaults } = this\n return function acsAccessGroupsRemoveUser(\n ...args: Parameters<SeamHttpAcsAccessGroups['removeUser']>\n ): ReturnType<SeamHttpAcsAccessGroups['removeUser']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.removeUser(...args)\n }\n }\n\n get ['/acs/access_groups/unmanaged/get'](): (\n parameters?: AcsAccessGroupsUnmanagedGetParameters,\n options?: AcsAccessGroupsUnmanagedGetOptions,\n ) => AcsAccessGroupsUnmanagedGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsAccessGroupsUnmanagedGet(\n ...args: Parameters<SeamHttpAcsAccessGroupsUnmanaged['get']>\n ): ReturnType<SeamHttpAcsAccessGroupsUnmanaged['get']> {\n const seam = SeamHttpAcsAccessGroupsUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/access_groups/unmanaged/list'](): (\n parameters?: AcsAccessGroupsUnmanagedListParameters,\n options?: AcsAccessGroupsUnmanagedListOptions,\n ) => AcsAccessGroupsUnmanagedListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsAccessGroupsUnmanagedList(\n ...args: Parameters<SeamHttpAcsAccessGroupsUnmanaged['list']>\n ): ReturnType<SeamHttpAcsAccessGroupsUnmanaged['list']> {\n const seam = SeamHttpAcsAccessGroupsUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/credential_pools/list'](): (\n parameters?: AcsCredentialPoolsListParameters,\n options?: AcsCredentialPoolsListOptions,\n ) => AcsCredentialPoolsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialPoolsList(\n ...args: Parameters<SeamHttpAcsCredentialPools['list']>\n ): ReturnType<SeamHttpAcsCredentialPools['list']> {\n const seam = SeamHttpAcsCredentialPools.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/credential_provisioning_automations/launch'](): (\n parameters?: AcsCredentialProvisioningAutomationsLaunchParameters,\n options?: AcsCredentialProvisioningAutomationsLaunchOptions,\n ) => AcsCredentialProvisioningAutomationsLaunchRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialProvisioningAutomationsLaunch(\n ...args: Parameters<\n SeamHttpAcsCredentialProvisioningAutomations['launch']\n >\n ): ReturnType<SeamHttpAcsCredentialProvisioningAutomations['launch']> {\n const seam = SeamHttpAcsCredentialProvisioningAutomations.fromClient(\n client,\n defaults,\n )\n return seam.launch(...args)\n }\n }\n\n get ['/acs/credentials/assign'](): (\n parameters?: AcsCredentialsAssignParameters,\n options?: AcsCredentialsAssignOptions,\n ) => AcsCredentialsAssignRequest {\n const { client, defaults } = this\n return function acsCredentialsAssign(\n ...args: Parameters<SeamHttpAcsCredentials['assign']>\n ): ReturnType<SeamHttpAcsCredentials['assign']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.assign(...args)\n }\n }\n\n get ['/acs/credentials/create'](): (\n parameters?: AcsCredentialsCreateParameters,\n options?: AcsCredentialsCreateOptions,\n ) => AcsCredentialsCreateRequest {\n const { client, defaults } = this\n return function acsCredentialsCreate(\n ...args: Parameters<SeamHttpAcsCredentials['create']>\n ): ReturnType<SeamHttpAcsCredentials['create']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/acs/credentials/create_offline_code'](): (\n parameters?: AcsCredentialsCreateOfflineCodeParameters,\n options?: AcsCredentialsCreateOfflineCodeOptions,\n ) => AcsCredentialsCreateOfflineCodeRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialsCreateOfflineCode(\n ...args: Parameters<SeamHttpAcsCredentials['createOfflineCode']>\n ): ReturnType<SeamHttpAcsCredentials['createOfflineCode']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.createOfflineCode(...args)\n }\n }\n\n get ['/acs/credentials/delete'](): (\n parameters?: AcsCredentialsDeleteParameters,\n options?: AcsCredentialsDeleteOptions,\n ) => AcsCredentialsDeleteRequest {\n const { client, defaults } = this\n return function acsCredentialsDelete(\n ...args: Parameters<SeamHttpAcsCredentials['delete']>\n ): ReturnType<SeamHttpAcsCredentials['delete']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/acs/credentials/get'](): (\n parameters?: AcsCredentialsGetParameters,\n options?: AcsCredentialsGetOptions,\n ) => AcsCredentialsGetRequest {\n const { client, defaults } = this\n return function acsCredentialsGet(\n ...args: Parameters<SeamHttpAcsCredentials['get']>\n ): ReturnType<SeamHttpAcsCredentials['get']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/credentials/list'](): (\n parameters?: AcsCredentialsListParameters,\n options?: AcsCredentialsListOptions,\n ) => AcsCredentialsListRequest {\n const { client, defaults } = this\n return function acsCredentialsList(\n ...args: Parameters<SeamHttpAcsCredentials['list']>\n ): ReturnType<SeamHttpAcsCredentials['list']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/credentials/list_accessible_entrances'](): (\n parameters?: AcsCredentialsListAccessibleEntrancesParameters,\n options?: AcsCredentialsListAccessibleEntrancesOptions,\n ) => AcsCredentialsListAccessibleEntrancesRequest {\n const { client, defaults } = this\n return function acsCredentialsListAccessibleEntrances(\n ...args: Parameters<SeamHttpAcsCredentials['listAccessibleEntrances']>\n ): ReturnType<SeamHttpAcsCredentials['listAccessibleEntrances']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.listAccessibleEntrances(...args)\n }\n }\n\n get ['/acs/credentials/unassign'](): (\n parameters?: AcsCredentialsUnassignParameters,\n options?: AcsCredentialsUnassignOptions,\n ) => AcsCredentialsUnassignRequest {\n const { client, defaults } = this\n return function acsCredentialsUnassign(\n ...args: Parameters<SeamHttpAcsCredentials['unassign']>\n ): ReturnType<SeamHttpAcsCredentials['unassign']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.unassign(...args)\n }\n }\n\n get ['/acs/credentials/update'](): (\n parameters?: AcsCredentialsUpdateParameters,\n options?: AcsCredentialsUpdateOptions,\n ) => AcsCredentialsUpdateRequest {\n const { client, defaults } = this\n return function acsCredentialsUpdate(\n ...args: Parameters<SeamHttpAcsCredentials['update']>\n ): ReturnType<SeamHttpAcsCredentials['update']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/acs/credentials/unmanaged/get'](): (\n parameters?: AcsCredentialsUnmanagedGetParameters,\n options?: AcsCredentialsUnmanagedGetOptions,\n ) => AcsCredentialsUnmanagedGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialsUnmanagedGet(\n ...args: Parameters<SeamHttpAcsCredentialsUnmanaged['get']>\n ): ReturnType<SeamHttpAcsCredentialsUnmanaged['get']> {\n const seam = SeamHttpAcsCredentialsUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/credentials/unmanaged/list'](): (\n parameters?: AcsCredentialsUnmanagedListParameters,\n options?: AcsCredentialsUnmanagedListOptions,\n ) => AcsCredentialsUnmanagedListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialsUnmanagedList(\n ...args: Parameters<SeamHttpAcsCredentialsUnmanaged['list']>\n ): ReturnType<SeamHttpAcsCredentialsUnmanaged['list']> {\n const seam = SeamHttpAcsCredentialsUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/encoders/encode_access_method'](): (\n parameters?: AcsEncodersEncodeAccessMethodParameters,\n options?: AcsEncodersEncodeAccessMethodOptions,\n ) => AcsEncodersEncodeAccessMethodRequest {\n const { client, defaults } = this\n return function acsEncodersEncodeAccessMethod(\n ...args: Parameters<SeamHttpAcsEncoders['encodeAccessMethod']>\n ): ReturnType<SeamHttpAcsEncoders['encodeAccessMethod']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.encodeAccessMethod(...args)\n }\n }\n\n get ['/acs/encoders/encode_credential'](): (\n parameters?: AcsEncodersEncodeCredentialParameters,\n options?: AcsEncodersEncodeCredentialOptions,\n ) => AcsEncodersEncodeCredentialRequest {\n const { client, defaults } = this\n return function acsEncodersEncodeCredential(\n ...args: Parameters<SeamHttpAcsEncoders['encodeCredential']>\n ): ReturnType<SeamHttpAcsEncoders['encodeCredential']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.encodeCredential(...args)\n }\n }\n\n get ['/acs/encoders/get'](): (\n parameters?: AcsEncodersGetParameters,\n options?: AcsEncodersGetOptions,\n ) => AcsEncodersGetRequest {\n const { client, defaults } = this\n return function acsEncodersGet(\n ...args: Parameters<SeamHttpAcsEncoders['get']>\n ): ReturnType<SeamHttpAcsEncoders['get']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/encoders/list'](): (\n parameters?: AcsEncodersListParameters,\n options?: AcsEncodersListOptions,\n ) => AcsEncodersListRequest {\n const { client, defaults } = this\n return function acsEncodersList(\n ...args: Parameters<SeamHttpAcsEncoders['list']>\n ): ReturnType<SeamHttpAcsEncoders['list']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/encoders/scan_credential'](): (\n parameters?: AcsEncodersScanCredentialParameters,\n options?: AcsEncodersScanCredentialOptions,\n ) => AcsEncodersScanCredentialRequest {\n const { client, defaults } = this\n return function acsEncodersScanCredential(\n ...args: Parameters<SeamHttpAcsEncoders['scanCredential']>\n ): ReturnType<SeamHttpAcsEncoders['scanCredential']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.scanCredential(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_encode_will_fail'](): (\n parameters?: AcsEncodersSimulateNextCredentialEncodeWillFailParameters,\n options?: AcsEncodersSimulateNextCredentialEncodeWillFailOptions,\n ) => AcsEncodersSimulateNextCredentialEncodeWillFailRequest {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialEncodeWillFail(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillFail']\n >\n ): ReturnType<SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillFail']> {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialEncodeWillFail(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_encode_will_succeed'](): (\n parameters?: AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters,\n options?: AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions,\n ) => AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialEncodeWillSucceed(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillSucceed']\n >\n ): ReturnType<\n SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillSucceed']\n > {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialEncodeWillSucceed(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_scan_will_fail'](): (\n parameters?: AcsEncodersSimulateNextCredentialScanWillFailParameters,\n options?: AcsEncodersSimulateNextCredentialScanWillFailOptions,\n ) => AcsEncodersSimulateNextCredentialScanWillFailRequest {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialScanWillFail(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialScanWillFail']\n >\n ): ReturnType<SeamHttpAcsEncodersSimulate['nextCredentialScanWillFail']> {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialScanWillFail(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_scan_will_succeed'](): (\n parameters?: AcsEncodersSimulateNextCredentialScanWillSucceedParameters,\n options?: AcsEncodersSimulateNextCredentialScanWillSucceedOptions,\n ) => AcsEncodersSimulateNextCredentialScanWillSucceedRequest {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialScanWillSucceed(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialScanWillSucceed']\n >\n ): ReturnType<\n SeamHttpAcsEncodersSimulate['nextCredentialScanWillSucceed']\n > {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialScanWillSucceed(...args)\n }\n }\n\n get ['/acs/entrances/get'](): (\n parameters?: AcsEntrancesGetParameters,\n options?: AcsEntrancesGetOptions,\n ) => AcsEntrancesGetRequest {\n const { client, defaults } = this\n return function acsEntrancesGet(\n ...args: Parameters<SeamHttpAcsEntrances['get']>\n ): ReturnType<SeamHttpAcsEntrances['get']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/entrances/grant_access'](): (\n parameters?: AcsEntrancesGrantAccessParameters,\n options?: AcsEntrancesGrantAccessOptions,\n ) => AcsEntrancesGrantAccessRequest {\n const { client, defaults } = this\n return function acsEntrancesGrantAccess(\n ...args: Parameters<SeamHttpAcsEntrances['grantAccess']>\n ): ReturnType<SeamHttpAcsEntrances['grantAccess']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.grantAccess(...args)\n }\n }\n\n get ['/acs/entrances/list'](): (\n parameters?: AcsEntrancesListParameters,\n options?: AcsEntrancesListOptions,\n ) => AcsEntrancesListRequest {\n const { client, defaults } = this\n return function acsEntrancesList(\n ...args: Parameters<SeamHttpAcsEntrances['list']>\n ): ReturnType<SeamHttpAcsEntrances['list']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/entrances/list_credentials_with_access'](): (\n parameters?: AcsEntrancesListCredentialsWithAccessParameters,\n options?: AcsEntrancesListCredentialsWithAccessOptions,\n ) => AcsEntrancesListCredentialsWithAccessRequest {\n const { client, defaults } = this\n return function acsEntrancesListCredentialsWithAccess(\n ...args: Parameters<SeamHttpAcsEntrances['listCredentialsWithAccess']>\n ): ReturnType<SeamHttpAcsEntrances['listCredentialsWithAccess']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.listCredentialsWithAccess(...args)\n }\n }\n\n get ['/acs/systems/get'](): (\n parameters?: AcsSystemsGetParameters,\n options?: AcsSystemsGetOptions,\n ) => AcsSystemsGetRequest {\n const { client, defaults } = this\n return function acsSystemsGet(\n ...args: Parameters<SeamHttpAcsSystems['get']>\n ): ReturnType<SeamHttpAcsSystems['get']> {\n const seam = SeamHttpAcsSystems.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/systems/list'](): (\n parameters?: AcsSystemsListParameters,\n options?: AcsSystemsListOptions,\n ) => AcsSystemsListRequest {\n const { client, defaults } = this\n return function acsSystemsList(\n ...args: Parameters<SeamHttpAcsSystems['list']>\n ): ReturnType<SeamHttpAcsSystems['list']> {\n const seam = SeamHttpAcsSystems.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/systems/list_compatible_credential_manager_acs_systems'](): (\n parameters?: AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters,\n options?: AcsSystemsListCompatibleCredentialManagerAcsSystemsOptions,\n ) => AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest {\n const { client, defaults } = this\n return function acsSystemsListCompatibleCredentialManagerAcsSystems(\n ...args: Parameters<\n SeamHttpAcsSystems['listCompatibleCredentialManagerAcsSystems']\n >\n ): ReturnType<\n SeamHttpAcsSystems['listCompatibleCredentialManagerAcsSystems']\n > {\n const seam = SeamHttpAcsSystems.fromClient(client, defaults)\n return seam.listCompatibleCredentialManagerAcsSystems(...args)\n }\n }\n\n get ['/acs/users/add_to_access_group'](): (\n parameters?: AcsUsersAddToAccessGroupParameters,\n options?: AcsUsersAddToAccessGroupOptions,\n ) => AcsUsersAddToAccessGroupRequest {\n const { client, defaults } = this\n return function acsUsersAddToAccessGroup(\n ...args: Parameters<SeamHttpAcsUsers['addToAccessGroup']>\n ): ReturnType<SeamHttpAcsUsers['addToAccessGroup']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.addToAccessGroup(...args)\n }\n }\n\n get ['/acs/users/create'](): (\n parameters?: AcsUsersCreateParameters,\n options?: AcsUsersCreateOptions,\n ) => AcsUsersCreateRequest {\n const { client, defaults } = this\n return function acsUsersCreate(\n ...args: Parameters<SeamHttpAcsUsers['create']>\n ): ReturnType<SeamHttpAcsUsers['create']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/acs/users/delete'](): (\n parameters?: AcsUsersDeleteParameters,\n options?: AcsUsersDeleteOptions,\n ) => AcsUsersDeleteRequest {\n const { client, defaults } = this\n return function acsUsersDelete(\n ...args: Parameters<SeamHttpAcsUsers['delete']>\n ): ReturnType<SeamHttpAcsUsers['delete']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/acs/users/get'](): (\n parameters?: AcsUsersGetParameters,\n options?: AcsUsersGetOptions,\n ) => AcsUsersGetRequest {\n const { client, defaults } = this\n return function acsUsersGet(\n ...args: Parameters<SeamHttpAcsUsers['get']>\n ): ReturnType<SeamHttpAcsUsers['get']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/users/list'](): (\n parameters?: AcsUsersListParameters,\n options?: AcsUsersListOptions,\n ) => AcsUsersListRequest {\n const { client, defaults } = this\n return function acsUsersList(\n ...args: Parameters<SeamHttpAcsUsers['list']>\n ): ReturnType<SeamHttpAcsUsers['list']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/users/list_accessible_entrances'](): (\n parameters?: AcsUsersListAccessibleEntrancesParameters,\n options?: AcsUsersListAccessibleEntrancesOptions,\n ) => AcsUsersListAccessibleEntrancesRequest {\n const { client, defaults } = this\n return function acsUsersListAccessibleEntrances(\n ...args: Parameters<SeamHttpAcsUsers['listAccessibleEntrances']>\n ): ReturnType<SeamHttpAcsUsers['listAccessibleEntrances']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.listAccessibleEntrances(...args)\n }\n }\n\n get ['/acs/users/remove_from_access_group'](): (\n parameters?: AcsUsersRemoveFromAccessGroupParameters,\n options?: AcsUsersRemoveFromAccessGroupOptions,\n ) => AcsUsersRemoveFromAccessGroupRequest {\n const { client, defaults } = this\n return function acsUsersRemoveFromAccessGroup(\n ...args: Parameters<SeamHttpAcsUsers['removeFromAccessGroup']>\n ): ReturnType<SeamHttpAcsUsers['removeFromAccessGroup']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.removeFromAccessGroup(...args)\n }\n }\n\n get ['/acs/users/revoke_access_to_all_entrances'](): (\n parameters?: AcsUsersRevokeAccessToAllEntrancesParameters,\n options?: AcsUsersRevokeAccessToAllEntrancesOptions,\n ) => AcsUsersRevokeAccessToAllEntrancesRequest {\n const { client, defaults } = this\n return function acsUsersRevokeAccessToAllEntrances(\n ...args: Parameters<SeamHttpAcsUsers['revokeAccessToAllEntrances']>\n ): ReturnType<SeamHttpAcsUsers['revokeAccessToAllEntrances']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.revokeAccessToAllEntrances(...args)\n }\n }\n\n get ['/acs/users/suspend'](): (\n parameters?: AcsUsersSuspendParameters,\n options?: AcsUsersSuspendOptions,\n ) => AcsUsersSuspendRequest {\n const { client, defaults } = this\n return function acsUsersSuspend(\n ...args: Parameters<SeamHttpAcsUsers['suspend']>\n ): ReturnType<SeamHttpAcsUsers['suspend']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.suspend(...args)\n }\n }\n\n get ['/acs/users/unsuspend'](): (\n parameters?: AcsUsersUnsuspendParameters,\n options?: AcsUsersUnsuspendOptions,\n ) => AcsUsersUnsuspendRequest {\n const { client, defaults } = this\n return function acsUsersUnsuspend(\n ...args: Parameters<SeamHttpAcsUsers['unsuspend']>\n ): ReturnType<SeamHttpAcsUsers['unsuspend']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.unsuspend(...args)\n }\n }\n\n get ['/acs/users/update'](): (\n parameters?: AcsUsersUpdateParameters,\n options?: AcsUsersUpdateOptions,\n ) => AcsUsersUpdateRequest {\n const { client, defaults } = this\n return function acsUsersUpdate(\n ...args: Parameters<SeamHttpAcsUsers['update']>\n ): ReturnType<SeamHttpAcsUsers['update']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/acs/users/unmanaged/get'](): (\n parameters?: AcsUsersUnmanagedGetParameters,\n options?: AcsUsersUnmanagedGetOptions,\n ) => AcsUsersUnmanagedGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsUsersUnmanagedGet(\n ...args: Parameters<SeamHttpAcsUsersUnmanaged['get']>\n ): ReturnType<SeamHttpAcsUsersUnmanaged['get']> {\n const seam = SeamHttpAcsUsersUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/users/unmanaged/list'](): (\n parameters?: AcsUsersUnmanagedListParameters,\n options?: AcsUsersUnmanagedListOptions,\n ) => AcsUsersUnmanagedListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsUsersUnmanagedList(\n ...args: Parameters<SeamHttpAcsUsersUnmanaged['list']>\n ): ReturnType<SeamHttpAcsUsersUnmanaged['list']> {\n const seam = SeamHttpAcsUsersUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/action_attempts/get'](): (\n parameters?: ActionAttemptsGetParameters,\n options?: ActionAttemptsGetOptions,\n ) => ActionAttemptsGetRequest {\n const { client, defaults } = this\n return function actionAttemptsGet(\n ...args: Parameters<SeamHttpActionAttempts['get']>\n ): ReturnType<SeamHttpActionAttempts['get']> {\n const seam = SeamHttpActionAttempts.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/action_attempts/list'](): (\n parameters?: ActionAttemptsListParameters,\n options?: ActionAttemptsListOptions,\n ) => ActionAttemptsListRequest {\n const { client, defaults } = this\n return function actionAttemptsList(\n ...args: Parameters<SeamHttpActionAttempts['list']>\n ): ReturnType<SeamHttpActionAttempts['list']> {\n const seam = SeamHttpActionAttempts.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/bridges/get'](): (\n parameters?: BridgesGetParameters,\n options?: BridgesGetOptions,\n ) => BridgesGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function bridgesGet(\n ...args: Parameters<SeamHttpBridges['get']>\n ): ReturnType<SeamHttpBridges['get']> {\n const seam = SeamHttpBridges.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/bridges/list'](): (\n parameters?: BridgesListParameters,\n options?: BridgesListOptions,\n ) => BridgesListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function bridgesList(\n ...args: Parameters<SeamHttpBridges['list']>\n ): ReturnType<SeamHttpBridges['list']> {\n const seam = SeamHttpBridges.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/client_sessions/create'](): (\n parameters?: ClientSessionsCreateParameters,\n options?: ClientSessionsCreateOptions,\n ) => ClientSessionsCreateRequest {\n const { client, defaults } = this\n return function clientSessionsCreate(\n ...args: Parameters<SeamHttpClientSessions['create']>\n ): ReturnType<SeamHttpClientSessions['create']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/client_sessions/delete'](): (\n parameters?: ClientSessionsDeleteParameters,\n options?: ClientSessionsDeleteOptions,\n ) => ClientSessionsDeleteRequest {\n const { client, defaults } = this\n return function clientSessionsDelete(\n ...args: Parameters<SeamHttpClientSessions['delete']>\n ): ReturnType<SeamHttpClientSessions['delete']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/client_sessions/get'](): (\n parameters?: ClientSessionsGetParameters,\n options?: ClientSessionsGetOptions,\n ) => ClientSessionsGetRequest {\n const { client, defaults } = this\n return function clientSessionsGet(\n ...args: Parameters<SeamHttpClientSessions['get']>\n ): ReturnType<SeamHttpClientSessions['get']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/client_sessions/get_or_create'](): (\n parameters?: ClientSessionsGetOrCreateParameters,\n options?: ClientSessionsGetOrCreateOptions,\n ) => ClientSessionsGetOrCreateRequest {\n const { client, defaults } = this\n return function clientSessionsGetOrCreate(\n ...args: Parameters<SeamHttpClientSessions['getOrCreate']>\n ): ReturnType<SeamHttpClientSessions['getOrCreate']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.getOrCreate(...args)\n }\n }\n\n get ['/client_sessions/grant_access'](): (\n parameters?: ClientSessionsGrantAccessParameters,\n options?: ClientSessionsGrantAccessOptions,\n ) => ClientSessionsGrantAccessRequest {\n const { client, defaults } = this\n return function clientSessionsGrantAccess(\n ...args: Parameters<SeamHttpClientSessions['grantAccess']>\n ): ReturnType<SeamHttpClientSessions['grantAccess']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.grantAccess(...args)\n }\n }\n\n get ['/client_sessions/list'](): (\n parameters?: ClientSessionsListParameters,\n options?: ClientSessionsListOptions,\n ) => ClientSessionsListRequest {\n const { client, defaults } = this\n return function clientSessionsList(\n ...args: Parameters<SeamHttpClientSessions['list']>\n ): ReturnType<SeamHttpClientSessions['list']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/client_sessions/revoke'](): (\n parameters?: ClientSessionsRevokeParameters,\n options?: ClientSessionsRevokeOptions,\n ) => ClientSessionsRevokeRequest {\n const { client, defaults } = this\n return function clientSessionsRevoke(\n ...args: Parameters<SeamHttpClientSessions['revoke']>\n ): ReturnType<SeamHttpClientSessions['revoke']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.revoke(...args)\n }\n }\n\n get ['/connect_webviews/create'](): (\n parameters?: ConnectWebviewsCreateParameters,\n options?: ConnectWebviewsCreateOptions,\n ) => ConnectWebviewsCreateRequest {\n const { client, defaults } = this\n return function connectWebviewsCreate(\n ...args: Parameters<SeamHttpConnectWebviews['create']>\n ): ReturnType<SeamHttpConnectWebviews['create']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/connect_webviews/delete'](): (\n parameters?: ConnectWebviewsDeleteParameters,\n options?: ConnectWebviewsDeleteOptions,\n ) => ConnectWebviewsDeleteRequest {\n const { client, defaults } = this\n return function connectWebviewsDelete(\n ...args: Parameters<SeamHttpConnectWebviews['delete']>\n ): ReturnType<SeamHttpConnectWebviews['delete']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/connect_webviews/get'](): (\n parameters?: ConnectWebviewsGetParameters,\n options?: ConnectWebviewsGetOptions,\n ) => ConnectWebviewsGetRequest {\n const { client, defaults } = this\n return function connectWebviewsGet(\n ...args: Parameters<SeamHttpConnectWebviews['get']>\n ): ReturnType<SeamHttpConnectWebviews['get']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/connect_webviews/list'](): (\n parameters?: ConnectWebviewsListParameters,\n options?: ConnectWebviewsListOptions,\n ) => ConnectWebviewsListRequest {\n const { client, defaults } = this\n return function connectWebviewsList(\n ...args: Parameters<SeamHttpConnectWebviews['list']>\n ): ReturnType<SeamHttpConnectWebviews['list']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/connected_accounts/delete'](): (\n parameters?: ConnectedAccountsDeleteParameters,\n options?: ConnectedAccountsDeleteOptions,\n ) => ConnectedAccountsDeleteRequest {\n const { client, defaults } = this\n return function connectedAccountsDelete(\n ...args: Parameters<SeamHttpConnectedAccounts['delete']>\n ): ReturnType<SeamHttpConnectedAccounts['delete']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/connected_accounts/get'](): (\n parameters?: ConnectedAccountsGetParameters,\n options?: ConnectedAccountsGetOptions,\n ) => ConnectedAccountsGetRequest {\n const { client, defaults } = this\n return function connectedAccountsGet(\n ...args: Parameters<SeamHttpConnectedAccounts['get']>\n ): ReturnType<SeamHttpConnectedAccounts['get']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/connected_accounts/list'](): (\n parameters?: ConnectedAccountsListParameters,\n options?: ConnectedAccountsListOptions,\n ) => ConnectedAccountsListRequest {\n const { client, defaults } = this\n return function connectedAccountsList(\n ...args: Parameters<SeamHttpConnectedAccounts['list']>\n ): ReturnType<SeamHttpConnectedAccounts['list']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/connected_accounts/sync'](): (\n parameters?: ConnectedAccountsSyncParameters,\n options?: ConnectedAccountsSyncOptions,\n ) => ConnectedAccountsSyncRequest {\n const { client, defaults } = this\n return function connectedAccountsSync(\n ...args: Parameters<SeamHttpConnectedAccounts['sync']>\n ): ReturnType<SeamHttpConnectedAccounts['sync']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.sync(...args)\n }\n }\n\n get ['/connected_accounts/update'](): (\n parameters?: ConnectedAccountsUpdateParameters,\n options?: ConnectedAccountsUpdateOptions,\n ) => ConnectedAccountsUpdateRequest {\n const { client, defaults } = this\n return function connectedAccountsUpdate(\n ...args: Parameters<SeamHttpConnectedAccounts['update']>\n ): ReturnType<SeamHttpConnectedAccounts['update']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/devices/delete'](): (\n parameters?: DevicesDeleteParameters,\n options?: DevicesDeleteOptions,\n ) => DevicesDeleteRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function devicesDelete(\n ...args: Parameters<SeamHttpDevices['delete']>\n ): ReturnType<SeamHttpDevices['delete']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/devices/get'](): (\n parameters?: DevicesGetParameters,\n options?: DevicesGetOptions,\n ) => DevicesGetRequest {\n const { client, defaults } = this\n return function devicesGet(\n ...args: Parameters<SeamHttpDevices['get']>\n ): ReturnType<SeamHttpDevices['get']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/devices/list'](): (\n parameters?: DevicesListParameters,\n options?: DevicesListOptions,\n ) => DevicesListRequest {\n const { client, defaults } = this\n return function devicesList(\n ...args: Parameters<SeamHttpDevices['list']>\n ): ReturnType<SeamHttpDevices['list']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/devices/list_device_providers'](): (\n parameters?: DevicesListDeviceProvidersParameters,\n options?: DevicesListDeviceProvidersOptions,\n ) => DevicesListDeviceProvidersRequest {\n const { client, defaults } = this\n return function devicesListDeviceProviders(\n ...args: Parameters<SeamHttpDevices['listDeviceProviders']>\n ): ReturnType<SeamHttpDevices['listDeviceProviders']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.listDeviceProviders(...args)\n }\n }\n\n get ['/devices/update'](): (\n parameters?: DevicesUpdateParameters,\n options?: DevicesUpdateOptions,\n ) => DevicesUpdateRequest {\n const { client, defaults } = this\n return function devicesUpdate(\n ...args: Parameters<SeamHttpDevices['update']>\n ): ReturnType<SeamHttpDevices['update']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/devices/simulate/connect'](): (\n parameters?: DevicesSimulateConnectParameters,\n options?: DevicesSimulateConnectOptions,\n ) => DevicesSimulateConnectRequest {\n const { client, defaults } = this\n return function devicesSimulateConnect(\n ...args: Parameters<SeamHttpDevicesSimulate['connect']>\n ): ReturnType<SeamHttpDevicesSimulate['connect']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.connect(...args)\n }\n }\n\n get ['/devices/simulate/disconnect'](): (\n parameters?: DevicesSimulateDisconnectParameters,\n options?: DevicesSimulateDisconnectOptions,\n ) => DevicesSimulateDisconnectRequest {\n const { client, defaults } = this\n return function devicesSimulateDisconnect(\n ...args: Parameters<SeamHttpDevicesSimulate['disconnect']>\n ): ReturnType<SeamHttpDevicesSimulate['disconnect']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.disconnect(...args)\n }\n }\n\n get ['/devices/simulate/remove'](): (\n parameters?: DevicesSimulateRemoveParameters,\n options?: DevicesSimulateRemoveOptions,\n ) => DevicesSimulateRemoveRequest {\n const { client, defaults } = this\n return function devicesSimulateRemove(\n ...args: Parameters<SeamHttpDevicesSimulate['remove']>\n ): ReturnType<SeamHttpDevicesSimulate['remove']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.remove(...args)\n }\n }\n\n get ['/devices/unmanaged/get'](): (\n parameters?: DevicesUnmanagedGetParameters,\n options?: DevicesUnmanagedGetOptions,\n ) => DevicesUnmanagedGetRequest {\n const { client, defaults } = this\n return function devicesUnmanagedGet(\n ...args: Parameters<SeamHttpDevicesUnmanaged['get']>\n ): ReturnType<SeamHttpDevicesUnmanaged['get']> {\n const seam = SeamHttpDevicesUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/devices/unmanaged/list'](): (\n parameters?: DevicesUnmanagedListParameters,\n options?: DevicesUnmanagedListOptions,\n ) => DevicesUnmanagedListRequest {\n const { client, defaults } = this\n return function devicesUnmanagedList(\n ...args: Parameters<SeamHttpDevicesUnmanaged['list']>\n ): ReturnType<SeamHttpDevicesUnmanaged['list']> {\n const seam = SeamHttpDevicesUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/devices/unmanaged/update'](): (\n parameters?: DevicesUnmanagedUpdateParameters,\n options?: DevicesUnmanagedUpdateOptions,\n ) => DevicesUnmanagedUpdateRequest {\n const { client, defaults } = this\n return function devicesUnmanagedUpdate(\n ...args: Parameters<SeamHttpDevicesUnmanaged['update']>\n ): ReturnType<SeamHttpDevicesUnmanaged['update']> {\n const seam = SeamHttpDevicesUnmanaged.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/events/get'](): (\n parameters?: EventsGetParameters,\n options?: EventsGetOptions,\n ) => EventsGetRequest {\n const { client, defaults } = this\n return function eventsGet(\n ...args: Parameters<SeamHttpEvents['get']>\n ): ReturnType<SeamHttpEvents['get']> {\n const seam = SeamHttpEvents.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/events/list'](): (\n parameters?: EventsListParameters,\n options?: EventsListOptions,\n ) => EventsListRequest {\n const { client, defaults } = this\n return function eventsList(\n ...args: Parameters<SeamHttpEvents['list']>\n ): ReturnType<SeamHttpEvents['list']> {\n const seam = SeamHttpEvents.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/locks/get'](): (\n parameters?: LocksGetParameters,\n options?: LocksGetOptions,\n ) => LocksGetRequest {\n const { client, defaults } = this\n return function locksGet(\n ...args: Parameters<SeamHttpLocks['get']>\n ): ReturnType<SeamHttpLocks['get']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/locks/list'](): (\n parameters?: LocksListParameters,\n options?: LocksListOptions,\n ) => LocksListRequest {\n const { client, defaults } = this\n return function locksList(\n ...args: Parameters<SeamHttpLocks['list']>\n ): ReturnType<SeamHttpLocks['list']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/locks/lock_door'](): (\n parameters?: LocksLockDoorParameters,\n options?: LocksLockDoorOptions,\n ) => LocksLockDoorRequest {\n const { client, defaults } = this\n return function locksLockDoor(\n ...args: Parameters<SeamHttpLocks['lockDoor']>\n ): ReturnType<SeamHttpLocks['lockDoor']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.lockDoor(...args)\n }\n }\n\n get ['/locks/unlock_door'](): (\n parameters?: LocksUnlockDoorParameters,\n options?: LocksUnlockDoorOptions,\n ) => LocksUnlockDoorRequest {\n const { client, defaults } = this\n return function locksUnlockDoor(\n ...args: Parameters<SeamHttpLocks['unlockDoor']>\n ): ReturnType<SeamHttpLocks['unlockDoor']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.unlockDoor(...args)\n }\n }\n\n get ['/locks/simulate/keypad_code_entry'](): (\n parameters?: LocksSimulateKeypadCodeEntryParameters,\n options?: LocksSimulateKeypadCodeEntryOptions,\n ) => LocksSimulateKeypadCodeEntryRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function locksSimulateKeypadCodeEntry(\n ...args: Parameters<SeamHttpLocksSimulate['keypadCodeEntry']>\n ): ReturnType<SeamHttpLocksSimulate['keypadCodeEntry']> {\n const seam = SeamHttpLocksSimulate.fromClient(client, defaults)\n return seam.keypadCodeEntry(...args)\n }\n }\n\n get ['/locks/simulate/manual_lock_via_keypad'](): (\n parameters?: LocksSimulateManualLockViaKeypadParameters,\n options?: LocksSimulateManualLockViaKeypadOptions,\n ) => LocksSimulateManualLockViaKeypadRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function locksSimulateManualLockViaKeypad(\n ...args: Parameters<SeamHttpLocksSimulate['manualLockViaKeypad']>\n ): ReturnType<SeamHttpLocksSimulate['manualLockViaKeypad']> {\n const seam = SeamHttpLocksSimulate.fromClient(client, defaults)\n return seam.manualLockViaKeypad(...args)\n }\n }\n\n get ['/networks/get'](): (\n parameters?: NetworksGetParameters,\n options?: NetworksGetOptions,\n ) => NetworksGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function networksGet(\n ...args: Parameters<SeamHttpNetworks['get']>\n ): ReturnType<SeamHttpNetworks['get']> {\n const seam = SeamHttpNetworks.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/networks/list'](): (\n parameters?: NetworksListParameters,\n options?: NetworksListOptions,\n ) => NetworksListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function networksList(\n ...args: Parameters<SeamHttpNetworks['list']>\n ): ReturnType<SeamHttpNetworks['list']> {\n const seam = SeamHttpNetworks.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/noise_sensors/list'](): (\n parameters?: NoiseSensorsListParameters,\n options?: NoiseSensorsListOptions,\n ) => NoiseSensorsListRequest {\n const { client, defaults } = this\n return function noiseSensorsList(\n ...args: Parameters<SeamHttpNoiseSensors['list']>\n ): ReturnType<SeamHttpNoiseSensors['list']> {\n const seam = SeamHttpNoiseSensors.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/create'](): (\n parameters?: NoiseSensorsNoiseThresholdsCreateParameters,\n options?: NoiseSensorsNoiseThresholdsCreateOptions,\n ) => NoiseSensorsNoiseThresholdsCreateRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsCreate(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['create']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['create']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.create(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/delete'](): (\n parameters?: NoiseSensorsNoiseThresholdsDeleteParameters,\n options?: NoiseSensorsNoiseThresholdsDeleteOptions,\n ) => NoiseSensorsNoiseThresholdsDeleteRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsDelete(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['delete']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['delete']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.delete(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/get'](): (\n parameters?: NoiseSensorsNoiseThresholdsGetParameters,\n options?: NoiseSensorsNoiseThresholdsGetOptions,\n ) => NoiseSensorsNoiseThresholdsGetRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsGet(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['get']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['get']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.get(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/list'](): (\n parameters?: NoiseSensorsNoiseThresholdsListParameters,\n options?: NoiseSensorsNoiseThresholdsListOptions,\n ) => NoiseSensorsNoiseThresholdsListRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsList(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['list']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['list']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.list(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/update'](): (\n parameters?: NoiseSensorsNoiseThresholdsUpdateParameters,\n options?: NoiseSensorsNoiseThresholdsUpdateOptions,\n ) => NoiseSensorsNoiseThresholdsUpdateRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsUpdate(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['update']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['update']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.update(...args)\n }\n }\n\n get ['/noise_sensors/simulate/trigger_noise_threshold'](): (\n parameters?: NoiseSensorsSimulateTriggerNoiseThresholdParameters,\n options?: NoiseSensorsSimulateTriggerNoiseThresholdOptions,\n ) => NoiseSensorsSimulateTriggerNoiseThresholdRequest {\n const { client, defaults } = this\n return function noiseSensorsSimulateTriggerNoiseThreshold(\n ...args: Parameters<SeamHttpNoiseSensorsSimulate['triggerNoiseThreshold']>\n ): ReturnType<SeamHttpNoiseSensorsSimulate['triggerNoiseThreshold']> {\n const seam = SeamHttpNoiseSensorsSimulate.fromClient(client, defaults)\n return seam.triggerNoiseThreshold(...args)\n }\n }\n\n get ['/phones/deactivate'](): (\n parameters?: PhonesDeactivateParameters,\n options?: PhonesDeactivateOptions,\n ) => PhonesDeactivateRequest {\n const { client, defaults } = this\n return function phonesDeactivate(\n ...args: Parameters<SeamHttpPhones['deactivate']>\n ): ReturnType<SeamHttpPhones['deactivate']> {\n const seam = SeamHttpPhones.fromClient(client, defaults)\n return seam.deactivate(...args)\n }\n }\n\n get ['/phones/get'](): (\n parameters?: PhonesGetParameters,\n options?: PhonesGetOptions,\n ) => PhonesGetRequest {\n const { client, defaults } = this\n return function phonesGet(\n ...args: Parameters<SeamHttpPhones['get']>\n ): ReturnType<SeamHttpPhones['get']> {\n const seam = SeamHttpPhones.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/phones/list'](): (\n parameters?: PhonesListParameters,\n options?: PhonesListOptions,\n ) => PhonesListRequest {\n const { client, defaults } = this\n return function phonesList(\n ...args: Parameters<SeamHttpPhones['list']>\n ): ReturnType<SeamHttpPhones['list']> {\n const seam = SeamHttpPhones.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/phones/simulate/create_sandbox_phone'](): (\n parameters?: PhonesSimulateCreateSandboxPhoneParameters,\n options?: PhonesSimulateCreateSandboxPhoneOptions,\n ) => PhonesSimulateCreateSandboxPhoneRequest {\n const { client, defaults } = this\n return function phonesSimulateCreateSandboxPhone(\n ...args: Parameters<SeamHttpPhonesSimulate['createSandboxPhone']>\n ): ReturnType<SeamHttpPhonesSimulate['createSandboxPhone']> {\n const seam = SeamHttpPhonesSimulate.fromClient(client, defaults)\n return seam.createSandboxPhone(...args)\n }\n }\n\n get ['/seam/bridge/v1/bridge_client_sessions/create'](): (\n parameters?: SeamBridgeV1BridgeClientSessionsCreateParameters,\n options?: SeamBridgeV1BridgeClientSessionsCreateOptions,\n ) => SeamBridgeV1BridgeClientSessionsCreateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamBridgeV1BridgeClientSessionsCreate(\n ...args: Parameters<SeamHttpSeamBridgeV1BridgeClientSessions['create']>\n ): ReturnType<SeamHttpSeamBridgeV1BridgeClientSessions['create']> {\n const seam = SeamHttpSeamBridgeV1BridgeClientSessions.fromClient(\n client,\n defaults,\n )\n return seam.create(...args)\n }\n }\n\n get ['/seam/bridge/v1/bridge_client_sessions/get'](): (\n parameters?: SeamBridgeV1BridgeClientSessionsGetParameters,\n options?: SeamBridgeV1BridgeClientSessionsGetOptions,\n ) => SeamBridgeV1BridgeClientSessionsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamBridgeV1BridgeClientSessionsGet(\n ...args: Parameters<SeamHttpSeamBridgeV1BridgeClientSessions['get']>\n ): ReturnType<SeamHttpSeamBridgeV1BridgeClientSessions['get']> {\n const seam = SeamHttpSeamBridgeV1BridgeClientSessions.fromClient(\n client,\n defaults,\n )\n return seam.get(...args)\n }\n }\n\n get ['/seam/bridge/v1/bridge_client_sessions/refresh_telemetry_token'](): (\n parameters?: SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenParameters,\n options?: SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenOptions,\n ) => SeamBridgeV1BridgeClientSessionsRefreshTelemetryTokenRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamBridgeV1BridgeClientSessionsRefreshTelemetryToken(\n ...args: Parameters<\n SeamHttpSeamBridgeV1BridgeClientSessions['refreshTelemetryToken']\n >\n ): ReturnType<\n SeamHttpSeamBridgeV1BridgeClientSessions['refreshTelemetryToken']\n > {\n const seam = SeamHttpSeamBridgeV1BridgeClientSessions.fromClient(\n client,\n defaults,\n )\n return seam.refreshTelemetryToken(...args)\n }\n }\n\n get ['/seam/bridge/v1/bridge_client_sessions/regenerate_pairing_code'](): (\n parameters?: SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeParameters,\n options?: SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeOptions,\n ) => SeamBridgeV1BridgeClientSessionsRegeneratePairingCodeRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamBridgeV1BridgeClientSessionsRegeneratePairingCode(\n ...args: Parameters<\n SeamHttpSeamBridgeV1BridgeClientSessions['regeneratePairingCode']\n >\n ): ReturnType<\n SeamHttpSeamBridgeV1BridgeClientSessions['regeneratePairingCode']\n > {\n const seam = SeamHttpSeamBridgeV1BridgeClientSessions.fromClient(\n client,\n defaults,\n )\n return seam.regeneratePairingCode(...args)\n }\n }\n\n get ['/seam/bridge/v1/bridge_client_sessions/report_status'](): (\n parameters?: SeamBridgeV1BridgeClientSessionsReportStatusParameters,\n options?: SeamBridgeV1BridgeClientSessionsReportStatusOptions,\n ) => SeamBridgeV1BridgeClientSessionsReportStatusRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamBridgeV1BridgeClientSessionsReportStatus(\n ...args: Parameters<\n SeamHttpSeamBridgeV1BridgeClientSessions['reportStatus']\n >\n ): ReturnType<SeamHttpSeamBridgeV1BridgeClientSessions['reportStatus']> {\n const seam = SeamHttpSeamBridgeV1BridgeClientSessions.fromClient(\n client,\n defaults,\n )\n return seam.reportStatus(...args)\n }\n }\n\n get ['/seam/bridge/v1/bridge_connected_systems/list'](): (\n parameters?: SeamBridgeV1BridgeConnectedSystemsListParameters,\n options?: SeamBridgeV1BridgeConnectedSystemsListOptions,\n ) => SeamBridgeV1BridgeConnectedSystemsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamBridgeV1BridgeConnectedSystemsList(\n ...args: Parameters<SeamHttpSeamBridgeV1BridgeConnectedSystems['list']>\n ): ReturnType<SeamHttpSeamBridgeV1BridgeConnectedSystems['list']> {\n const seam = SeamHttpSeamBridgeV1BridgeConnectedSystems.fromClient(\n client,\n defaults,\n )\n return seam.list(...args)\n }\n }\n\n get ['/seam/instant_key/v1/client_sessions/exchange_short_code'](): (\n parameters?: SeamInstantKeyV1ClientSessionsExchangeShortCodeParameters,\n options?: SeamInstantKeyV1ClientSessionsExchangeShortCodeOptions,\n ) => SeamInstantKeyV1ClientSessionsExchangeShortCodeRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamInstantKeyV1ClientSessionsExchangeShortCode(\n ...args: Parameters<\n SeamHttpSeamInstantKeyV1ClientSessions['exchangeShortCode']\n >\n ): ReturnType<SeamHttpSeamInstantKeyV1ClientSessions['exchangeShortCode']> {\n const seam = SeamHttpSeamInstantKeyV1ClientSessions.fromClient(\n client,\n defaults,\n )\n return seam.exchangeShortCode(...args)\n }\n }\n\n get ['/seam/mobile_sdk/v1/acs/credentials/list'](): (\n parameters?: SeamMobileSdkV1AcsCredentialsListParameters,\n options?: SeamMobileSdkV1AcsCredentialsListOptions,\n ) => SeamMobileSdkV1AcsCredentialsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamMobileSdkV1AcsCredentialsList(\n ...args: Parameters<SeamHttpSeamMobileSdkV1AcsCredentials['list']>\n ): ReturnType<SeamHttpSeamMobileSdkV1AcsCredentials['list']> {\n const seam = SeamHttpSeamMobileSdkV1AcsCredentials.fromClient(\n client,\n defaults,\n )\n return seam.list(...args)\n }\n }\n\n get ['/seam/mobile_sdk/v1/phone_sessions/get_or_create'](): (\n parameters?: SeamMobileSdkV1PhoneSessionsGetOrCreateParameters,\n options?: SeamMobileSdkV1PhoneSessionsGetOrCreateOptions,\n ) => SeamMobileSdkV1PhoneSessionsGetOrCreateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamMobileSdkV1PhoneSessionsGetOrCreate(\n ...args: Parameters<SeamHttpSeamMobileSdkV1PhoneSessions['getOrCreate']>\n ): ReturnType<SeamHttpSeamMobileSdkV1PhoneSessions['getOrCreate']> {\n const seam = SeamHttpSeamMobileSdkV1PhoneSessions.fromClient(\n client,\n defaults,\n )\n return seam.getOrCreate(...args)\n }\n }\n\n get ['/seam/partner/v1/building_blocks/spaces/auto_map'](): (\n parameters?: SeamPartnerV1BuildingBlocksSpacesAutoMapParameters,\n options?: SeamPartnerV1BuildingBlocksSpacesAutoMapOptions,\n ) => SeamPartnerV1BuildingBlocksSpacesAutoMapRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamPartnerV1BuildingBlocksSpacesAutoMap(\n ...args: Parameters<SeamHttpSeamPartnerV1BuildingBlocksSpaces['autoMap']>\n ): ReturnType<SeamHttpSeamPartnerV1BuildingBlocksSpaces['autoMap']> {\n const seam = SeamHttpSeamPartnerV1BuildingBlocksSpaces.fromClient(\n client,\n defaults,\n )\n return seam.autoMap(...args)\n }\n }\n\n get ['/seam/partner/v1/resources/list'](): (\n parameters?: SeamPartnerV1ResourcesListParameters,\n options?: SeamPartnerV1ResourcesListOptions,\n ) => SeamPartnerV1ResourcesListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamPartnerV1ResourcesList(\n ...args: Parameters<SeamHttpSeamPartnerV1Resources['list']>\n ): ReturnType<SeamHttpSeamPartnerV1Resources['list']> {\n const seam = SeamHttpSeamPartnerV1Resources.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/spaces/add_acs_entrances'](): (\n parameters?: SpacesAddAcsEntrancesParameters,\n options?: SpacesAddAcsEntrancesOptions,\n ) => SpacesAddAcsEntrancesRequest {\n const { client, defaults } = this\n return function spacesAddAcsEntrances(\n ...args: Parameters<SeamHttpSpaces['addAcsEntrances']>\n ): ReturnType<SeamHttpSpaces['addAcsEntrances']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.addAcsEntrances(...args)\n }\n }\n\n get ['/spaces/add_devices'](): (\n parameters?: SpacesAddDevicesParameters,\n options?: SpacesAddDevicesOptions,\n ) => SpacesAddDevicesRequest {\n const { client, defaults } = this\n return function spacesAddDevices(\n ...args: Parameters<SeamHttpSpaces['addDevices']>\n ): ReturnType<SeamHttpSpaces['addDevices']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.addDevices(...args)\n }\n }\n\n get ['/spaces/create'](): (\n parameters?: SpacesCreateParameters,\n options?: SpacesCreateOptions,\n ) => SpacesCreateRequest {\n const { client, defaults } = this\n return function spacesCreate(\n ...args: Parameters<SeamHttpSpaces['create']>\n ): ReturnType<SeamHttpSpaces['create']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/spaces/delete'](): (\n parameters?: SpacesDeleteParameters,\n options?: SpacesDeleteOptions,\n ) => SpacesDeleteRequest {\n const { client, defaults } = this\n return function spacesDelete(\n ...args: Parameters<SeamHttpSpaces['delete']>\n ): ReturnType<SeamHttpSpaces['delete']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/spaces/get'](): (\n parameters?: SpacesGetParameters,\n options?: SpacesGetOptions,\n ) => SpacesGetRequest {\n const { client, defaults } = this\n return function spacesGet(\n ...args: Parameters<SeamHttpSpaces['get']>\n ): ReturnType<SeamHttpSpaces['get']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/spaces/list'](): (\n parameters?: SpacesListParameters,\n options?: SpacesListOptions,\n ) => SpacesListRequest {\n const { client, defaults } = this\n return function spacesList(\n ...args: Parameters<SeamHttpSpaces['list']>\n ): ReturnType<SeamHttpSpaces['list']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/spaces/remove_acs_entrances'](): (\n parameters?: SpacesRemoveAcsEntrancesParameters,\n options?: SpacesRemoveAcsEntrancesOptions,\n ) => SpacesRemoveAcsEntrancesRequest {\n const { client, defaults } = this\n return function spacesRemoveAcsEntrances(\n ...args: Parameters<SeamHttpSpaces['removeAcsEntrances']>\n ): ReturnType<SeamHttpSpaces['removeAcsEntrances']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.removeAcsEntrances(...args)\n }\n }\n\n get ['/spaces/remove_devices'](): (\n parameters?: SpacesRemoveDevicesParameters,\n options?: SpacesRemoveDevicesOptions,\n ) => SpacesRemoveDevicesRequest {\n const { client, defaults } = this\n return function spacesRemoveDevices(\n ...args: Parameters<SeamHttpSpaces['removeDevices']>\n ): ReturnType<SeamHttpSpaces['removeDevices']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.removeDevices(...args)\n }\n }\n\n get ['/spaces/update'](): (\n parameters?: SpacesUpdateParameters,\n options?: SpacesUpdateOptions,\n ) => SpacesUpdateRequest {\n const { client, defaults } = this\n return function spacesUpdate(\n ...args: Parameters<SeamHttpSpaces['update']>\n ): ReturnType<SeamHttpSpaces['update']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/thermostats/activate_climate_preset'](): (\n parameters?: ThermostatsActivateClimatePresetParameters,\n options?: ThermostatsActivateClimatePresetOptions,\n ) => ThermostatsActivateClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsActivateClimatePreset(\n ...args: Parameters<SeamHttpThermostats['activateClimatePreset']>\n ): ReturnType<SeamHttpThermostats['activateClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.activateClimatePreset(...args)\n }\n }\n\n get ['/thermostats/cool'](): (\n parameters?: ThermostatsCoolParameters,\n options?: ThermostatsCoolOptions,\n ) => ThermostatsCoolRequest {\n const { client, defaults } = this\n return function thermostatsCool(\n ...args: Parameters<SeamHttpThermostats['cool']>\n ): ReturnType<SeamHttpThermostats['cool']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.cool(...args)\n }\n }\n\n get ['/thermostats/create_climate_preset'](): (\n parameters?: ThermostatsCreateClimatePresetParameters,\n options?: ThermostatsCreateClimatePresetOptions,\n ) => ThermostatsCreateClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsCreateClimatePreset(\n ...args: Parameters<SeamHttpThermostats['createClimatePreset']>\n ): ReturnType<SeamHttpThermostats['createClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.createClimatePreset(...args)\n }\n }\n\n get ['/thermostats/delete_climate_preset'](): (\n parameters?: ThermostatsDeleteClimatePresetParameters,\n options?: ThermostatsDeleteClimatePresetOptions,\n ) => ThermostatsDeleteClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsDeleteClimatePreset(\n ...args: Parameters<SeamHttpThermostats['deleteClimatePreset']>\n ): ReturnType<SeamHttpThermostats['deleteClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.deleteClimatePreset(...args)\n }\n }\n\n get ['/thermostats/get'](): (\n parameters?: ThermostatsGetParameters,\n options?: ThermostatsGetOptions,\n ) => ThermostatsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function thermostatsGet(\n ...args: Parameters<SeamHttpThermostats['get']>\n ): ReturnType<SeamHttpThermostats['get']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/thermostats/heat'](): (\n parameters?: ThermostatsHeatParameters,\n options?: ThermostatsHeatOptions,\n ) => ThermostatsHeatRequest {\n const { client, defaults } = this\n return function thermostatsHeat(\n ...args: Parameters<SeamHttpThermostats['heat']>\n ): ReturnType<SeamHttpThermostats['heat']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.heat(...args)\n }\n }\n\n get ['/thermostats/heat_cool'](): (\n parameters?: ThermostatsHeatCoolParameters,\n options?: ThermostatsHeatCoolOptions,\n ) => ThermostatsHeatCoolRequest {\n const { client, defaults } = this\n return function thermostatsHeatCool(\n ...args: Parameters<SeamHttpThermostats['heatCool']>\n ): ReturnType<SeamHttpThermostats['heatCool']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.heatCool(...args)\n }\n }\n\n get ['/thermostats/list'](): (\n parameters?: ThermostatsListParameters,\n options?: ThermostatsListOptions,\n ) => ThermostatsListRequest {\n const { client, defaults } = this\n return function thermostatsList(\n ...args: Parameters<SeamHttpThermostats['list']>\n ): ReturnType<SeamHttpThermostats['list']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/thermostats/off'](): (\n parameters?: ThermostatsOffParameters,\n options?: ThermostatsOffOptions,\n ) => ThermostatsOffRequest {\n const { client, defaults } = this\n return function thermostatsOff(\n ...args: Parameters<SeamHttpThermostats['off']>\n ): ReturnType<SeamHttpThermostats['off']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.off(...args)\n }\n }\n\n get ['/thermostats/set_fallback_climate_preset'](): (\n parameters?: ThermostatsSetFallbackClimatePresetParameters,\n options?: ThermostatsSetFallbackClimatePresetOptions,\n ) => ThermostatsSetFallbackClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsSetFallbackClimatePreset(\n ...args: Parameters<SeamHttpThermostats['setFallbackClimatePreset']>\n ): ReturnType<SeamHttpThermostats['setFallbackClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setFallbackClimatePreset(...args)\n }\n }\n\n get ['/thermostats/set_fan_mode'](): (\n parameters?: ThermostatsSetFanModeParameters,\n options?: ThermostatsSetFanModeOptions,\n ) => ThermostatsSetFanModeRequest {\n const { client, defaults } = this\n return function thermostatsSetFanMode(\n ...args: Parameters<SeamHttpThermostats['setFanMode']>\n ): ReturnType<SeamHttpThermostats['setFanMode']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setFanMode(...args)\n }\n }\n\n get ['/thermostats/set_hvac_mode'](): (\n parameters?: ThermostatsSetHvacModeParameters,\n options?: ThermostatsSetHvacModeOptions,\n ) => ThermostatsSetHvacModeRequest {\n const { client, defaults } = this\n return function thermostatsSetHvacMode(\n ...args: Parameters<SeamHttpThermostats['setHvacMode']>\n ): ReturnType<SeamHttpThermostats['setHvacMode']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setHvacMode(...args)\n }\n }\n\n get ['/thermostats/set_temperature_threshold'](): (\n parameters?: ThermostatsSetTemperatureThresholdParameters,\n options?: ThermostatsSetTemperatureThresholdOptions,\n ) => ThermostatsSetTemperatureThresholdRequest {\n const { client, defaults } = this\n return function thermostatsSetTemperatureThreshold(\n ...args: Parameters<SeamHttpThermostats['setTemperatureThreshold']>\n ): ReturnType<SeamHttpThermostats['setTemperatureThreshold']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setTemperatureThreshold(...args)\n }\n }\n\n get ['/thermostats/update_climate_preset'](): (\n parameters?: ThermostatsUpdateClimatePresetParameters,\n options?: ThermostatsUpdateClimatePresetOptions,\n ) => ThermostatsUpdateClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsUpdateClimatePreset(\n ...args: Parameters<SeamHttpThermostats['updateClimatePreset']>\n ): ReturnType<SeamHttpThermostats['updateClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.updateClimatePreset(...args)\n }\n }\n\n get ['/thermostats/update_weekly_program'](): (\n parameters?: ThermostatsUpdateWeeklyProgramParameters,\n options?: ThermostatsUpdateWeeklyProgramOptions,\n ) => ThermostatsUpdateWeeklyProgramRequest {\n const { client, defaults } = this\n return function thermostatsUpdateWeeklyProgram(\n ...args: Parameters<SeamHttpThermostats['updateWeeklyProgram']>\n ): ReturnType<SeamHttpThermostats['updateWeeklyProgram']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.updateWeeklyProgram(...args)\n }\n }\n\n get ['/thermostats/daily_programs/create'](): (\n parameters?: ThermostatsDailyProgramsCreateParameters,\n options?: ThermostatsDailyProgramsCreateOptions,\n ) => ThermostatsDailyProgramsCreateRequest {\n const { client, defaults } = this\n return function thermostatsDailyProgramsCreate(\n ...args: Parameters<SeamHttpThermostatsDailyPrograms['create']>\n ): ReturnType<SeamHttpThermostatsDailyPrograms['create']> {\n const seam = SeamHttpThermostatsDailyPrograms.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/thermostats/daily_programs/delete'](): (\n parameters?: ThermostatsDailyProgramsDeleteParameters,\n options?: ThermostatsDailyProgramsDeleteOptions,\n ) => ThermostatsDailyProgramsDeleteRequest {\n const { client, defaults } = this\n return function thermostatsDailyProgramsDelete(\n ...args: Parameters<SeamHttpThermostatsDailyPrograms['delete']>\n ): ReturnType<SeamHttpThermostatsDailyPrograms['delete']> {\n const seam = SeamHttpThermostatsDailyPrograms.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/thermostats/daily_programs/update'](): (\n parameters?: ThermostatsDailyProgramsUpdateParameters,\n options?: ThermostatsDailyProgramsUpdateOptions,\n ) => ThermostatsDailyProgramsUpdateRequest {\n const { client, defaults } = this\n return function thermostatsDailyProgramsUpdate(\n ...args: Parameters<SeamHttpThermostatsDailyPrograms['update']>\n ): ReturnType<SeamHttpThermostatsDailyPrograms['update']> {\n const seam = SeamHttpThermostatsDailyPrograms.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/thermostats/schedules/create'](): (\n parameters?: ThermostatsSchedulesCreateParameters,\n options?: ThermostatsSchedulesCreateOptions,\n ) => ThermostatsSchedulesCreateRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesCreate(\n ...args: Parameters<SeamHttpThermostatsSchedules['create']>\n ): ReturnType<SeamHttpThermostatsSchedules['create']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/thermostats/schedules/delete'](): (\n parameters?: ThermostatsSchedulesDeleteParameters,\n options?: ThermostatsSchedulesDeleteOptions,\n ) => ThermostatsSchedulesDeleteRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesDelete(\n ...args: Parameters<SeamHttpThermostatsSchedules['delete']>\n ): ReturnType<SeamHttpThermostatsSchedules['delete']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/thermostats/schedules/get'](): (\n parameters?: ThermostatsSchedulesGetParameters,\n options?: ThermostatsSchedulesGetOptions,\n ) => ThermostatsSchedulesGetRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesGet(\n ...args: Parameters<SeamHttpThermostatsSchedules['get']>\n ): ReturnType<SeamHttpThermostatsSchedules['get']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/thermostats/schedules/list'](): (\n parameters?: ThermostatsSchedulesListParameters,\n options?: ThermostatsSchedulesListOptions,\n ) => ThermostatsSchedulesListRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesList(\n ...args: Parameters<SeamHttpThermostatsSchedules['list']>\n ): ReturnType<SeamHttpThermostatsSchedules['list']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/thermostats/schedules/update'](): (\n parameters?: ThermostatsSchedulesUpdateParameters,\n options?: ThermostatsSchedulesUpdateOptions,\n ) => ThermostatsSchedulesUpdateRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesUpdate(\n ...args: Parameters<SeamHttpThermostatsSchedules['update']>\n ): ReturnType<SeamHttpThermostatsSchedules['update']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/thermostats/simulate/hvac_mode_adjusted'](): (\n parameters?: ThermostatsSimulateHvacModeAdjustedParameters,\n options?: ThermostatsSimulateHvacModeAdjustedOptions,\n ) => ThermostatsSimulateHvacModeAdjustedRequest {\n const { client, defaults } = this\n return function thermostatsSimulateHvacModeAdjusted(\n ...args: Parameters<SeamHttpThermostatsSimulate['hvacModeAdjusted']>\n ): ReturnType<SeamHttpThermostatsSimulate['hvacModeAdjusted']> {\n const seam = SeamHttpThermostatsSimulate.fromClient(client, defaults)\n return seam.hvacModeAdjusted(...args)\n }\n }\n\n get ['/thermostats/simulate/temperature_reached'](): (\n parameters?: ThermostatsSimulateTemperatureReachedParameters,\n options?: ThermostatsSimulateTemperatureReachedOptions,\n ) => ThermostatsSimulateTemperatureReachedRequest {\n const { client, defaults } = this\n return function thermostatsSimulateTemperatureReached(\n ...args: Parameters<SeamHttpThermostatsSimulate['temperatureReached']>\n ): ReturnType<SeamHttpThermostatsSimulate['temperatureReached']> {\n const seam = SeamHttpThermostatsSimulate.fromClient(client, defaults)\n return seam.temperatureReached(...args)\n }\n }\n\n get ['/unstable_access_grants/create'](): (\n parameters?: UnstableAccessGrantsCreateParameters,\n options?: UnstableAccessGrantsCreateOptions,\n ) => UnstableAccessGrantsCreateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessGrantsCreate(\n ...args: Parameters<SeamHttpUnstableAccessGrants['create']>\n ): ReturnType<SeamHttpUnstableAccessGrants['create']> {\n const seam = SeamHttpUnstableAccessGrants.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/unstable_access_grants/delete'](): (\n parameters?: UnstableAccessGrantsDeleteParameters,\n options?: UnstableAccessGrantsDeleteOptions,\n ) => UnstableAccessGrantsDeleteRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessGrantsDelete(\n ...args: Parameters<SeamHttpUnstableAccessGrants['delete']>\n ): ReturnType<SeamHttpUnstableAccessGrants['delete']> {\n const seam = SeamHttpUnstableAccessGrants.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/unstable_access_grants/get'](): (\n parameters?: UnstableAccessGrantsGetParameters,\n options?: UnstableAccessGrantsGetOptions,\n ) => UnstableAccessGrantsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessGrantsGet(\n ...args: Parameters<SeamHttpUnstableAccessGrants['get']>\n ): ReturnType<SeamHttpUnstableAccessGrants['get']> {\n const seam = SeamHttpUnstableAccessGrants.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/unstable_access_grants/list'](): (\n parameters?: UnstableAccessGrantsListParameters,\n options?: UnstableAccessGrantsListOptions,\n ) => UnstableAccessGrantsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessGrantsList(\n ...args: Parameters<SeamHttpUnstableAccessGrants['list']>\n ): ReturnType<SeamHttpUnstableAccessGrants['list']> {\n const seam = SeamHttpUnstableAccessGrants.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/unstable_access_methods/delete'](): (\n parameters?: UnstableAccessMethodsDeleteParameters,\n options?: UnstableAccessMethodsDeleteOptions,\n ) => UnstableAccessMethodsDeleteRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessMethodsDelete(\n ...args: Parameters<SeamHttpUnstableAccessMethods['delete']>\n ): ReturnType<SeamHttpUnstableAccessMethods['delete']> {\n const seam = SeamHttpUnstableAccessMethods.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/unstable_access_methods/get'](): (\n parameters?: UnstableAccessMethodsGetParameters,\n options?: UnstableAccessMethodsGetOptions,\n ) => UnstableAccessMethodsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessMethodsGet(\n ...args: Parameters<SeamHttpUnstableAccessMethods['get']>\n ): ReturnType<SeamHttpUnstableAccessMethods['get']> {\n const seam = SeamHttpUnstableAccessMethods.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/unstable_access_methods/list'](): (\n parameters?: UnstableAccessMethodsListParameters,\n options?: UnstableAccessMethodsListOptions,\n ) => UnstableAccessMethodsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessMethodsList(\n ...args: Parameters<SeamHttpUnstableAccessMethods['list']>\n ): ReturnType<SeamHttpUnstableAccessMethods['list']> {\n const seam = SeamHttpUnstableAccessMethods.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/unstable_locations/add_acs_entrances'](): (\n parameters?: UnstableLocationsAddAcsEntrancesParameters,\n options?: UnstableLocationsAddAcsEntrancesOptions,\n ) => UnstableLocationsAddAcsEntrancesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsAddAcsEntrances(\n ...args: Parameters<SeamHttpUnstableLocations['addAcsEntrances']>\n ): ReturnType<SeamHttpUnstableLocations['addAcsEntrances']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.addAcsEntrances(...args)\n }\n }\n\n get ['/unstable_locations/add_devices'](): (\n parameters?: UnstableLocationsAddDevicesParameters,\n options?: UnstableLocationsAddDevicesOptions,\n ) => UnstableLocationsAddDevicesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsAddDevices(\n ...args: Parameters<SeamHttpUnstableLocations['addDevices']>\n ): ReturnType<SeamHttpUnstableLocations['addDevices']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.addDevices(...args)\n }\n }\n\n get ['/unstable_locations/create'](): (\n parameters?: UnstableLocationsCreateParameters,\n options?: UnstableLocationsCreateOptions,\n ) => UnstableLocationsCreateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsCreate(\n ...args: Parameters<SeamHttpUnstableLocations['create']>\n ): ReturnType<SeamHttpUnstableLocations['create']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/unstable_locations/delete'](): (\n parameters?: UnstableLocationsDeleteParameters,\n options?: UnstableLocationsDeleteOptions,\n ) => UnstableLocationsDeleteRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsDelete(\n ...args: Parameters<SeamHttpUnstableLocations['delete']>\n ): ReturnType<SeamHttpUnstableLocations['delete']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/unstable_locations/get'](): (\n parameters?: UnstableLocationsGetParameters,\n options?: UnstableLocationsGetOptions,\n ) => UnstableLocationsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsGet(\n ...args: Parameters<SeamHttpUnstableLocations['get']>\n ): ReturnType<SeamHttpUnstableLocations['get']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/unstable_locations/list'](): (\n parameters?: UnstableLocationsListParameters,\n options?: UnstableLocationsListOptions,\n ) => UnstableLocationsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsList(\n ...args: Parameters<SeamHttpUnstableLocations['list']>\n ): ReturnType<SeamHttpUnstableLocations['list']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/unstable_locations/remove_acs_entrances'](): (\n parameters?: UnstableLocationsRemoveAcsEntrancesParameters,\n options?: UnstableLocationsRemoveAcsEntrancesOptions,\n ) => UnstableLocationsRemoveAcsEntrancesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsRemoveAcsEntrances(\n ...args: Parameters<SeamHttpUnstableLocations['removeAcsEntrances']>\n ): ReturnType<SeamHttpUnstableLocations['removeAcsEntrances']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.removeAcsEntrances(...args)\n }\n }\n\n get ['/unstable_locations/remove_devices'](): (\n parameters?: UnstableLocationsRemoveDevicesParameters,\n options?: UnstableLocationsRemoveDevicesOptions,\n ) => UnstableLocationsRemoveDevicesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsRemoveDevices(\n ...args: Parameters<SeamHttpUnstableLocations['removeDevices']>\n ): ReturnType<SeamHttpUnstableLocations['removeDevices']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.removeDevices(...args)\n }\n }\n\n get ['/unstable_locations/update'](): (\n parameters?: UnstableLocationsUpdateParameters,\n options?: UnstableLocationsUpdateOptions,\n ) => UnstableLocationsUpdateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsUpdate(\n ...args: Parameters<SeamHttpUnstableLocations['update']>\n ): ReturnType<SeamHttpUnstableLocations['update']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/unstable_partner/building_blocks/connect_accounts'](): (\n parameters?: UnstablePartnerBuildingBlocksConnectAccountsParameters,\n options?: UnstablePartnerBuildingBlocksConnectAccountsOptions,\n ) => UnstablePartnerBuildingBlocksConnectAccountsRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstablePartnerBuildingBlocksConnectAccounts(\n ...args: Parameters<\n SeamHttpUnstablePartnerBuildingBlocks['connectAccounts']\n >\n ): ReturnType<SeamHttpUnstablePartnerBuildingBlocks['connectAccounts']> {\n const seam = SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n client,\n defaults,\n )\n return seam.connectAccounts(...args)\n }\n }\n\n get ['/unstable_partner/building_blocks/generate_magic_link'](): (\n parameters?: UnstablePartnerBuildingBlocksGenerateMagicLinkParameters,\n options?: UnstablePartnerBuildingBlocksGenerateMagicLinkOptions,\n ) => UnstablePartnerBuildingBlocksGenerateMagicLinkRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstablePartnerBuildingBlocksGenerateMagicLink(\n ...args: Parameters<\n SeamHttpUnstablePartnerBuildingBlocks['generateMagicLink']\n >\n ): ReturnType<SeamHttpUnstablePartnerBuildingBlocks['generateMagicLink']> {\n const seam = SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n client,\n defaults,\n )\n return seam.generateMagicLink(...args)\n }\n }\n\n get ['/unstable_partner/building_blocks/manage_devices'](): (\n parameters?: UnstablePartnerBuildingBlocksManageDevicesParameters,\n options?: UnstablePartnerBuildingBlocksManageDevicesOptions,\n ) => UnstablePartnerBuildingBlocksManageDevicesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstablePartnerBuildingBlocksManageDevices(\n ...args: Parameters<\n SeamHttpUnstablePartnerBuildingBlocks['manageDevices']\n >\n ): ReturnType<SeamHttpUnstablePartnerBuildingBlocks['manageDevices']> {\n const seam = SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n client,\n defaults,\n )\n return seam.manageDevices(...args)\n }\n }\n\n get ['/unstable_partner/building_blocks/organize_spaces'](): (\n parameters?: UnstablePartnerBuildingBlocksOrganizeSpacesParameters,\n options?: UnstablePartnerBuildingBlocksOrganizeSpacesOptions,\n ) => UnstablePartnerBuildingBlocksOrganizeSpacesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstablePartnerBuildingBlocksOrganizeSpaces(\n ...args: Parameters<\n SeamHttpUnstablePartnerBuildingBlocks['organizeSpaces']\n >\n ): ReturnType<SeamHttpUnstablePartnerBuildingBlocks['organizeSpaces']> {\n const seam = SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n client,\n defaults,\n )\n return seam.organizeSpaces(...args)\n }\n }\n\n get ['/unstable_partner/resources/push'](): (\n parameters?: UnstablePartnerResourcesPushParameters,\n options?: UnstablePartnerResourcesPushOptions,\n ) => UnstablePartnerResourcesPushRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstablePartnerResourcesPush(\n ...args: Parameters<SeamHttpUnstablePartnerResources['push']>\n ): ReturnType<SeamHttpUnstablePartnerResources['push']> {\n const seam = SeamHttpUnstablePartnerResources.fromClient(client, defaults)\n return seam.push(...args)\n }\n }\n\n get ['/user_identities/add_acs_user'](): (\n parameters?: UserIdentitiesAddAcsUserParameters,\n options?: UserIdentitiesAddAcsUserOptions,\n ) => UserIdentitiesAddAcsUserRequest {\n const { client, defaults } = this\n return function userIdentitiesAddAcsUser(\n ...args: Parameters<SeamHttpUserIdentities['addAcsUser']>\n ): ReturnType<SeamHttpUserIdentities['addAcsUser']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.addAcsUser(...args)\n }\n }\n\n get ['/user_identities/create'](): (\n parameters?: UserIdentitiesCreateParameters,\n options?: UserIdentitiesCreateOptions,\n ) => UserIdentitiesCreateRequest {\n const { client, defaults } = this\n return function userIdentitiesCreate(\n ...args: Parameters<SeamHttpUserIdentities['create']>\n ): ReturnType<SeamHttpUserIdentities['create']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/user_identities/delete'](): (\n parameters?: UserIdentitiesDeleteParameters,\n options?: UserIdentitiesDeleteOptions,\n ) => UserIdentitiesDeleteRequest {\n const { client, defaults } = this\n return function userIdentitiesDelete(\n ...args: Parameters<SeamHttpUserIdentities['delete']>\n ): ReturnType<SeamHttpUserIdentities['delete']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/user_identities/generate_instant_key'](): (\n parameters?: UserIdentitiesGenerateInstantKeyParameters,\n options?: UserIdentitiesGenerateInstantKeyOptions,\n ) => UserIdentitiesGenerateInstantKeyRequest {\n const { client, defaults } = this\n return function userIdentitiesGenerateInstantKey(\n ...args: Parameters<SeamHttpUserIdentities['generateInstantKey']>\n ): ReturnType<SeamHttpUserIdentities['generateInstantKey']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.generateInstantKey(...args)\n }\n }\n\n get ['/user_identities/get'](): (\n parameters?: UserIdentitiesGetParameters,\n options?: UserIdentitiesGetOptions,\n ) => UserIdentitiesGetRequest {\n const { client, defaults } = this\n return function userIdentitiesGet(\n ...args: Parameters<SeamHttpUserIdentities['get']>\n ): ReturnType<SeamHttpUserIdentities['get']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/user_identities/grant_access_to_device'](): (\n parameters?: UserIdentitiesGrantAccessToDeviceParameters,\n options?: UserIdentitiesGrantAccessToDeviceOptions,\n ) => UserIdentitiesGrantAccessToDeviceRequest {\n const { client, defaults } = this\n return function userIdentitiesGrantAccessToDevice(\n ...args: Parameters<SeamHttpUserIdentities['grantAccessToDevice']>\n ): ReturnType<SeamHttpUserIdentities['grantAccessToDevice']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.grantAccessToDevice(...args)\n }\n }\n\n get ['/user_identities/list'](): (\n parameters?: UserIdentitiesListParameters,\n options?: UserIdentitiesListOptions,\n ) => UserIdentitiesListRequest {\n const { client, defaults } = this\n return function userIdentitiesList(\n ...args: Parameters<SeamHttpUserIdentities['list']>\n ): ReturnType<SeamHttpUserIdentities['list']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/user_identities/list_accessible_devices'](): (\n parameters?: UserIdentitiesListAccessibleDevicesParameters,\n options?: UserIdentitiesListAccessibleDevicesOptions,\n ) => UserIdentitiesListAccessibleDevicesRequest {\n const { client, defaults } = this\n return function userIdentitiesListAccessibleDevices(\n ...args: Parameters<SeamHttpUserIdentities['listAccessibleDevices']>\n ): ReturnType<SeamHttpUserIdentities['listAccessibleDevices']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.listAccessibleDevices(...args)\n }\n }\n\n get ['/user_identities/list_acs_systems'](): (\n parameters?: UserIdentitiesListAcsSystemsParameters,\n options?: UserIdentitiesListAcsSystemsOptions,\n ) => UserIdentitiesListAcsSystemsRequest {\n const { client, defaults } = this\n return function userIdentitiesListAcsSystems(\n ...args: Parameters<SeamHttpUserIdentities['listAcsSystems']>\n ): ReturnType<SeamHttpUserIdentities['listAcsSystems']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.listAcsSystems(...args)\n }\n }\n\n get ['/user_identities/list_acs_users'](): (\n parameters?: UserIdentitiesListAcsUsersParameters,\n options?: UserIdentitiesListAcsUsersOptions,\n ) => UserIdentitiesListAcsUsersRequest {\n const { client, defaults } = this\n return function userIdentitiesListAcsUsers(\n ...args: Parameters<SeamHttpUserIdentities['listAcsUsers']>\n ): ReturnType<SeamHttpUserIdentities['listAcsUsers']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.listAcsUsers(...args)\n }\n }\n\n get ['/user_identities/remove_acs_user'](): (\n parameters?: UserIdentitiesRemoveAcsUserParameters,\n options?: UserIdentitiesRemoveAcsUserOptions,\n ) => UserIdentitiesRemoveAcsUserRequest {\n const { client, defaults } = this\n return function userIdentitiesRemoveAcsUser(\n ...args: Parameters<SeamHttpUserIdentities['removeAcsUser']>\n ): ReturnType<SeamHttpUserIdentities['removeAcsUser']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.removeAcsUser(...args)\n }\n }\n\n get ['/user_identities/revoke_access_to_device'](): (\n parameters?: UserIdentitiesRevokeAccessToDeviceParameters,\n options?: UserIdentitiesRevokeAccessToDeviceOptions,\n ) => UserIdentitiesRevokeAccessToDeviceRequest {\n const { client, defaults } = this\n return function userIdentitiesRevokeAccessToDevice(\n ...args: Parameters<SeamHttpUserIdentities['revokeAccessToDevice']>\n ): ReturnType<SeamHttpUserIdentities['revokeAccessToDevice']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.revokeAccessToDevice(...args)\n }\n }\n\n get ['/user_identities/update'](): (\n parameters?: UserIdentitiesUpdateParameters,\n options?: UserIdentitiesUpdateOptions,\n ) => UserIdentitiesUpdateRequest {\n const { client, defaults } = this\n return function userIdentitiesUpdate(\n ...args: Parameters<SeamHttpUserIdentities['update']>\n ): ReturnType<SeamHttpUserIdentities['update']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/delete'](): (\n parameters?: UserIdentitiesEnrollmentAutomationsDeleteParameters,\n options?: UserIdentitiesEnrollmentAutomationsDeleteOptions,\n ) => UserIdentitiesEnrollmentAutomationsDeleteRequest {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsDelete(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['delete']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['delete']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.delete(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/get'](): (\n parameters?: UserIdentitiesEnrollmentAutomationsGetParameters,\n options?: UserIdentitiesEnrollmentAutomationsGetOptions,\n ) => UserIdentitiesEnrollmentAutomationsGetRequest {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsGet(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['get']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['get']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.get(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/launch'](): (\n parameters?: UserIdentitiesEnrollmentAutomationsLaunchParameters,\n options?: UserIdentitiesEnrollmentAutomationsLaunchOptions,\n ) => UserIdentitiesEnrollmentAutomationsLaunchRequest {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsLaunch(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['launch']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['launch']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.launch(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/list'](): (\n parameters?: UserIdentitiesEnrollmentAutomationsListParameters,\n options?: UserIdentitiesEnrollmentAutomationsListOptions,\n ) => UserIdentitiesEnrollmentAutomationsListRequest {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsList(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['list']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['list']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.list(...args)\n }\n }\n\n get ['/webhooks/create'](): (\n parameters?: WebhooksCreateParameters,\n options?: WebhooksCreateOptions,\n ) => WebhooksCreateRequest {\n const { client, defaults } = this\n return function webhooksCreate(\n ...args: Parameters<SeamHttpWebhooks['create']>\n ): ReturnType<SeamHttpWebhooks['create']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/webhooks/delete'](): (\n parameters?: WebhooksDeleteParameters,\n options?: WebhooksDeleteOptions,\n ) => WebhooksDeleteRequest {\n const { client, defaults } = this\n return function webhooksDelete(\n ...args: Parameters<SeamHttpWebhooks['delete']>\n ): ReturnType<SeamHttpWebhooks['delete']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/webhooks/get'](): (\n parameters?: WebhooksGetParameters,\n options?: WebhooksGetOptions,\n ) => WebhooksGetRequest {\n const { client, defaults } = this\n return function webhooksGet(\n ...args: Parameters<SeamHttpWebhooks['get']>\n ): ReturnType<SeamHttpWebhooks['get']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/webhooks/list'](): (\n parameters?: WebhooksListParameters,\n options?: WebhooksListOptions,\n ) => WebhooksListRequest {\n const { client, defaults } = this\n return function webhooksList(\n ...args: Parameters<SeamHttpWebhooks['list']>\n ): ReturnType<SeamHttpWebhooks['list']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/webhooks/update'](): (\n parameters?: WebhooksUpdateParameters,\n options?: WebhooksUpdateOptions,\n ) => WebhooksUpdateRequest {\n const { client, defaults } = this\n return function webhooksUpdate(\n ...args: Parameters<SeamHttpWebhooks['update']>\n ): ReturnType<SeamHttpWebhooks['update']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/workspaces/create'](): (\n parameters?: WorkspacesCreateParameters,\n options?: WorkspacesCreateOptions,\n ) => WorkspacesCreateRequest {\n const { client, defaults } = this\n return function workspacesCreate(\n ...args: Parameters<SeamHttpWorkspaces['create']>\n ): ReturnType<SeamHttpWorkspaces['create']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/workspaces/get'](): (\n parameters?: WorkspacesGetParameters,\n options?: WorkspacesGetOptions,\n ) => WorkspacesGetRequest {\n const { client, defaults } = this\n return function workspacesGet(\n ...args: Parameters<SeamHttpWorkspaces['get']>\n ): ReturnType<SeamHttpWorkspaces['get']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/workspaces/list'](): (\n parameters?: WorkspacesListParameters,\n options?: WorkspacesListOptions,\n ) => WorkspacesListRequest {\n const { client, defaults } = this\n return function workspacesList(\n ...args: Parameters<SeamHttpWorkspaces['list']>\n ): ReturnType<SeamHttpWorkspaces['list']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/workspaces/reset_sandbox'](): (\n parameters?: WorkspacesResetSandboxParameters,\n options?: WorkspacesResetSandboxOptions,\n ) => WorkspacesResetSandboxRequest {\n const { client, defaults } = this\n return function workspacesResetSandbox(\n ...args: Parameters<SeamHttpWorkspaces['resetSandbox']>\n ): ReturnType<SeamHttpWorkspaces['resetSandbox']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.resetSandbox(...args)\n }\n }\n\n get ['/workspaces/update'](): (\n parameters?: WorkspacesUpdateParameters,\n options?: WorkspacesUpdateOptions,\n ) => WorkspacesUpdateRequest {\n const { client, defaults } = this\n return function workspacesUpdate(\n ...args: Parameters<SeamHttpWorkspaces['update']>\n ): ReturnType<SeamHttpWorkspaces['update']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n}\n\nexport type SeamHttpEndpointPaths =\n | '/access_codes/create'\n | '/access_codes/create_multiple'\n | '/access_codes/delete'\n | '/access_codes/generate_code'\n | '/access_codes/get'\n | '/access_codes/list'\n | '/access_codes/pull_backup_access_code'\n | '/access_codes/report_device_constraints'\n | '/access_codes/update'\n | '/access_codes/update_multiple'\n | '/access_codes/simulate/create_unmanaged_access_code'\n | '/access_codes/unmanaged/convert_to_managed'\n | '/access_codes/unmanaged/delete'\n | '/access_codes/unmanaged/get'\n | '/access_codes/unmanaged/list'\n | '/access_codes/unmanaged/update'\n | '/access_grants/create'\n | '/access_grants/delete'\n | '/access_grants/get'\n | '/access_grants/list'\n | '/access_grants/update'\n | '/access_methods/delete'\n | '/access_methods/get'\n | '/access_methods/list'\n | '/acs/access_groups/add_user'\n | '/acs/access_groups/get'\n | '/acs/access_groups/list'\n | '/acs/access_groups/list_accessible_entrances'\n | '/acs/access_groups/list_users'\n | '/acs/access_groups/remove_user'\n | '/acs/access_groups/unmanaged/get'\n | '/acs/access_groups/unmanaged/list'\n | '/acs/credential_pools/list'\n | '/acs/credential_provisioning_automations/launch'\n | '/acs/credentials/assign'\n | '/acs/credentials/create'\n | '/acs/credentials/create_offline_code'\n | '/acs/credentials/delete'\n | '/acs/credentials/get'\n | '/acs/credentials/list'\n | '/acs/credentials/list_accessible_entrances'\n | '/acs/credentials/unassign'\n | '/acs/credentials/update'\n | '/acs/credentials/unmanaged/get'\n | '/acs/credentials/unmanaged/list'\n | '/acs/encoders/encode_access_method'\n | '/acs/encoders/encode_credential'\n | '/acs/encoders/get'\n | '/acs/encoders/list'\n | '/acs/encoders/scan_credential'\n | '/acs/encoders/simulate/next_credential_encode_will_fail'\n | '/acs/encoders/simulate/next_credential_encode_will_succeed'\n | '/acs/encoders/simulate/next_credential_scan_will_fail'\n | '/acs/encoders/simulate/next_credential_scan_will_succeed'\n | '/acs/entrances/get'\n | '/acs/entrances/grant_access'\n | '/acs/entrances/list'\n | '/acs/entrances/list_credentials_with_access'\n | '/acs/systems/get'\n | '/acs/systems/list'\n | '/acs/systems/list_compatible_credential_manager_acs_systems'\n | '/acs/users/add_to_access_group'\n | '/acs/users/create'\n | '/acs/users/delete'\n | '/acs/users/get'\n | '/acs/users/list'\n | '/acs/users/list_accessible_entrances'\n | '/acs/users/remove_from_access_group'\n | '/acs/users/revoke_access_to_all_entrances'\n | '/acs/users/suspend'\n | '/acs/users/unsuspend'\n | '/acs/users/update'\n | '/acs/users/unmanaged/get'\n | '/acs/users/unmanaged/list'\n | '/action_attempts/get'\n | '/action_attempts/list'\n | '/bridges/get'\n | '/bridges/list'\n | '/client_sessions/create'\n | '/client_sessions/delete'\n | '/client_sessions/get'\n | '/client_sessions/get_or_create'\n | '/client_sessions/grant_access'\n | '/client_sessions/list'\n | '/client_sessions/revoke'\n | '/connect_webviews/create'\n | '/connect_webviews/delete'\n | '/connect_webviews/get'\n | '/connect_webviews/list'\n | '/connected_accounts/delete'\n | '/connected_accounts/get'\n | '/connected_accounts/list'\n | '/connected_accounts/sync'\n | '/connected_accounts/update'\n | '/devices/delete'\n | '/devices/get'\n | '/devices/list'\n | '/devices/list_device_providers'\n | '/devices/update'\n | '/devices/simulate/connect'\n | '/devices/simulate/disconnect'\n | '/devices/simulate/remove'\n | '/devices/unmanaged/get'\n | '/devices/unmanaged/list'\n | '/devices/unmanaged/update'\n | '/events/get'\n | '/events/list'\n | '/locks/get'\n | '/locks/list'\n | '/locks/lock_door'\n | '/locks/unlock_door'\n | '/locks/simulate/keypad_code_entry'\n | '/locks/simulate/manual_lock_via_keypad'\n | '/networks/get'\n | '/networks/list'\n | '/noise_sensors/list'\n | '/noise_sensors/noise_thresholds/create'\n | '/noise_sensors/noise_thresholds/delete'\n | '/noise_sensors/noise_thresholds/get'\n | '/noise_sensors/noise_thresholds/list'\n | '/noise_sensors/noise_thresholds/update'\n | '/noise_sensors/simulate/trigger_noise_threshold'\n | '/phones/deactivate'\n | '/phones/get'\n | '/phones/list'\n | '/phones/simulate/create_sandbox_phone'\n | '/seam/bridge/v1/bridge_client_sessions/create'\n | '/seam/bridge/v1/bridge_client_sessions/get'\n | '/seam/bridge/v1/bridge_client_sessions/refresh_telemetry_token'\n | '/seam/bridge/v1/bridge_client_sessions/regenerate_pairing_code'\n | '/seam/bridge/v1/bridge_client_sessions/report_status'\n | '/seam/bridge/v1/bridge_connected_systems/list'\n | '/seam/instant_key/v1/client_sessions/exchange_short_code'\n | '/seam/mobile_sdk/v1/acs/credentials/list'\n | '/seam/mobile_sdk/v1/phone_sessions/get_or_create'\n | '/seam/partner/v1/building_blocks/spaces/auto_map'\n | '/seam/partner/v1/resources/list'\n | '/spaces/add_acs_entrances'\n | '/spaces/add_devices'\n | '/spaces/create'\n | '/spaces/delete'\n | '/spaces/get'\n | '/spaces/list'\n | '/spaces/remove_acs_entrances'\n | '/spaces/remove_devices'\n | '/spaces/update'\n | '/thermostats/activate_climate_preset'\n | '/thermostats/cool'\n | '/thermostats/create_climate_preset'\n | '/thermostats/delete_climate_preset'\n | '/thermostats/get'\n | '/thermostats/heat'\n | '/thermostats/heat_cool'\n | '/thermostats/list'\n | '/thermostats/off'\n | '/thermostats/set_fallback_climate_preset'\n | '/thermostats/set_fan_mode'\n | '/thermostats/set_hvac_mode'\n | '/thermostats/set_temperature_threshold'\n | '/thermostats/update_climate_preset'\n | '/thermostats/update_weekly_program'\n | '/thermostats/daily_programs/create'\n | '/thermostats/daily_programs/delete'\n | '/thermostats/daily_programs/update'\n | '/thermostats/schedules/create'\n | '/thermostats/schedules/delete'\n | '/thermostats/schedules/get'\n | '/thermostats/schedules/list'\n | '/thermostats/schedules/update'\n | '/thermostats/simulate/hvac_mode_adjusted'\n | '/thermostats/simulate/temperature_reached'\n | '/unstable_access_grants/create'\n | '/unstable_access_grants/delete'\n | '/unstable_access_grants/get'\n | '/unstable_access_grants/list'\n | '/unstable_access_methods/delete'\n | '/unstable_access_methods/get'\n | '/unstable_access_methods/list'\n | '/unstable_locations/add_acs_entrances'\n | '/unstable_locations/add_devices'\n | '/unstable_locations/create'\n | '/unstable_locations/delete'\n | '/unstable_locations/get'\n | '/unstable_locations/list'\n | '/unstable_locations/remove_acs_entrances'\n | '/unstable_locations/remove_devices'\n | '/unstable_locations/update'\n | '/unstable_partner/building_blocks/connect_accounts'\n | '/unstable_partner/building_blocks/generate_magic_link'\n | '/unstable_partner/building_blocks/manage_devices'\n | '/unstable_partner/building_blocks/organize_spaces'\n | '/unstable_partner/resources/push'\n | '/user_identities/add_acs_user'\n | '/user_identities/create'\n | '/user_identities/delete'\n | '/user_identities/generate_instant_key'\n | '/user_identities/get'\n | '/user_identities/grant_access_to_device'\n | '/user_identities/list'\n | '/user_identities/list_accessible_devices'\n | '/user_identities/list_acs_systems'\n | '/user_identities/list_acs_users'\n | '/user_identities/remove_acs_user'\n | '/user_identities/revoke_access_to_device'\n | '/user_identities/update'\n | '/user_identities/enrollment_automations/delete'\n | '/user_identities/enrollment_automations/get'\n | '/user_identities/enrollment_automations/launch'\n | '/user_identities/enrollment_automations/list'\n | '/webhooks/create'\n | '/webhooks/delete'\n | '/webhooks/get'\n | '/webhooks/list'\n | '/webhooks/update'\n | '/workspaces/create'\n | '/workspaces/get'\n | '/workspaces/list'\n | '/workspaces/reset_sandbox'\n | '/workspaces/update'\n","import { type Client, createClient } from './client.js'\nimport {\n isSeamHttpMultiWorkspaceOptionsWithClient,\n isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n SeamHttpMultiWorkspaceInvalidOptionsError,\n type SeamHttpMultiWorkspaceOptions,\n type SeamHttpMultiWorkspaceOptionsWithClient,\n type SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n type SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from './options.js'\nimport { limitToSeamHttpRequestOptions, parseOptions } from './parse-options.js'\nimport { SeamHttpWorkspaces } from './routes/index.js'\n\nexport class SeamHttpMultiWorkspace {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n\n constructor(options: SeamHttpMultiWorkspaceOptions = {}) {\n const opts = parseOptions(options)\n this.client = 'client' in opts ? opts.client : createClient(opts)\n this.defaults = limitToSeamHttpRequestOptions(opts)\n }\n\n static fromClient(\n client: SeamHttpMultiWorkspaceOptionsWithClient['client'],\n options: Omit<SeamHttpMultiWorkspaceOptionsWithClient, 'client'> = {},\n ): SeamHttpMultiWorkspace {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpMultiWorkspaceOptionsWithClient(constructorOptions)) {\n throw new SeamHttpMultiWorkspaceInvalidOptionsError('Missing client')\n }\n return new SeamHttpMultiWorkspace(constructorOptions)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken['consoleSessionToken'],\n options: Omit<\n SeamHttpMultiWorkspaceOptionsWithConsoleSessionToken,\n 'consoleSessionToken'\n > = {},\n ): SeamHttpMultiWorkspace {\n const constructorOptions = { ...options, consoleSessionToken }\n if (\n !isSeamHttpMultiWorkspaceOptionsWithConsoleSessionToken(\n constructorOptions,\n )\n ) {\n throw new SeamHttpMultiWorkspaceInvalidOptionsError(\n 'Missing consoleSessionToken',\n )\n }\n return new SeamHttpMultiWorkspace(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken['personalAccessToken'],\n options: Omit<\n SeamHttpMultiWorkspaceOptionsWithPersonalAccessToken,\n 'personalAccessToken'\n > = {},\n ): SeamHttpMultiWorkspace {\n const constructorOptions = { ...options, personalAccessToken }\n if (\n !isSeamHttpMultiWorkspaceOptionsWithPersonalAccessToken(\n constructorOptions,\n )\n ) {\n throw new SeamHttpMultiWorkspaceInvalidOptionsError(\n 'Missing personalAccessToken',\n )\n }\n return new SeamHttpMultiWorkspace(constructorOptions)\n }\n\n get workspaces(): Pick<SeamHttpWorkspaces, 'create' | 'list'> {\n return SeamHttpWorkspaces.fromClient(this.client, this.defaults)\n }\n}\n"]}