@lusor/sdk 0.0.0-stage → 1.0.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 (976) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/LICENSE +21 -0
  3. package/LICENSE-APACHE-2.0.txt +177 -0
  4. package/README.md +108 -2
  5. package/THIRD_PARTY_NOTICES.md +21 -0
  6. package/dist/BaseClient.d.ts +54 -0
  7. package/dist/BaseClient.js +43 -0
  8. package/dist/Client.d.ts +68 -0
  9. package/dist/Client.js +105 -0
  10. package/dist/api/errors/BadGatewayError.d.ts +7 -0
  11. package/dist/api/errors/BadGatewayError.js +17 -0
  12. package/dist/api/errors/BadRequestError.d.ts +5 -0
  13. package/dist/api/errors/BadRequestError.js +17 -0
  14. package/dist/api/errors/ConflictError.d.ts +7 -0
  15. package/dist/api/errors/ConflictError.js +17 -0
  16. package/dist/api/errors/ForbiddenError.d.ts +7 -0
  17. package/dist/api/errors/ForbiddenError.js +17 -0
  18. package/dist/api/errors/GatewayTimeoutError.d.ts +7 -0
  19. package/dist/api/errors/GatewayTimeoutError.js +17 -0
  20. package/dist/api/errors/GoneError.d.ts +5 -0
  21. package/dist/api/errors/GoneError.js +17 -0
  22. package/dist/api/errors/InternalServerError.d.ts +7 -0
  23. package/dist/api/errors/InternalServerError.js +17 -0
  24. package/dist/api/errors/NotFoundError.d.ts +7 -0
  25. package/dist/api/errors/NotFoundError.js +17 -0
  26. package/dist/api/errors/PaymentRequiredError.d.ts +7 -0
  27. package/dist/api/errors/PaymentRequiredError.js +17 -0
  28. package/dist/api/errors/PreconditionFailedError.d.ts +7 -0
  29. package/dist/api/errors/PreconditionFailedError.js +17 -0
  30. package/dist/api/errors/ServiceUnavailableError.d.ts +7 -0
  31. package/dist/api/errors/ServiceUnavailableError.js +17 -0
  32. package/dist/api/errors/TooManyRequestsError.d.ts +7 -0
  33. package/dist/api/errors/TooManyRequestsError.js +17 -0
  34. package/dist/api/errors/UnauthorizedError.d.ts +7 -0
  35. package/dist/api/errors/UnauthorizedError.js +17 -0
  36. package/dist/api/errors/UnprocessableEntityError.d.ts +7 -0
  37. package/dist/api/errors/UnprocessableEntityError.js +17 -0
  38. package/dist/api/errors/index.d.ts +14 -0
  39. package/dist/api/errors/index.js +14 -0
  40. package/dist/api/index.d.ts +3 -0
  41. package/dist/api/index.js +3 -0
  42. package/dist/api/resources/agents/client/Client.d.ts +209 -0
  43. package/dist/api/resources/agents/client/Client.js +596 -0
  44. package/dist/api/resources/agents/client/index.d.ts +1 -0
  45. package/dist/api/resources/agents/client/index.js +1 -0
  46. package/dist/api/resources/agents/client/requests/ArchiveAgentsRequest.d.ts +13 -0
  47. package/dist/api/resources/agents/client/requests/ArchiveAgentsRequest.js +2 -0
  48. package/dist/api/resources/agents/client/requests/CreateAgentInput.d.ts +53 -0
  49. package/dist/api/resources/agents/client/requests/CreateAgentInput.js +2 -0
  50. package/dist/api/resources/agents/client/requests/GetAgentsRequest.d.ts +16 -0
  51. package/dist/api/resources/agents/client/requests/GetAgentsRequest.js +2 -0
  52. package/dist/api/resources/agents/client/requests/ListAgentsRequest.d.ts +16 -0
  53. package/dist/api/resources/agents/client/requests/ListAgentsRequest.js +2 -0
  54. package/dist/api/resources/agents/client/requests/ListArchivedAgentsRequest.d.ts +12 -0
  55. package/dist/api/resources/agents/client/requests/ListArchivedAgentsRequest.js +2 -0
  56. package/dist/api/resources/agents/client/requests/RestoreAgentsRequest.d.ts +13 -0
  57. package/dist/api/resources/agents/client/requests/RestoreAgentsRequest.js +2 -0
  58. package/dist/api/resources/agents/client/requests/RetargetQueueAgentsRequest.d.ts +13 -0
  59. package/dist/api/resources/agents/client/requests/RetargetQueueAgentsRequest.js +2 -0
  60. package/dist/api/resources/agents/client/requests/UpdateAgentInput.d.ts +30 -0
  61. package/dist/api/resources/agents/client/requests/UpdateAgentInput.js +2 -0
  62. package/dist/api/resources/agents/client/requests/index.d.ts +8 -0
  63. package/dist/api/resources/agents/client/requests/index.js +1 -0
  64. package/dist/api/resources/agents/exports.d.ts +3 -0
  65. package/dist/api/resources/agents/exports.js +4 -0
  66. package/dist/api/resources/agents/index.d.ts +3 -0
  67. package/dist/api/resources/agents/index.js +3 -0
  68. package/dist/api/resources/agents/resources/index.d.ts +3 -0
  69. package/dist/api/resources/agents/resources/index.js +3 -0
  70. package/dist/api/resources/agents/resources/turns/client/Client.d.ts +100 -0
  71. package/dist/api/resources/agents/resources/turns/client/Client.js +240 -0
  72. package/dist/api/resources/agents/resources/turns/client/index.d.ts +1 -0
  73. package/dist/api/resources/agents/resources/turns/client/index.js +1 -0
  74. package/dist/api/resources/agents/resources/turns/client/requests/CancelTurnsRequest.d.ts +16 -0
  75. package/dist/api/resources/agents/resources/turns/client/requests/CancelTurnsRequest.js +2 -0
  76. package/dist/api/resources/agents/resources/turns/client/requests/CreateAgentTurnInput.d.ts +23 -0
  77. package/dist/api/resources/agents/resources/turns/client/requests/CreateAgentTurnInput.js +2 -0
  78. package/dist/api/resources/agents/resources/turns/client/requests/ListTurnsRequest.d.ts +20 -0
  79. package/dist/api/resources/agents/resources/turns/client/requests/ListTurnsRequest.js +2 -0
  80. package/dist/api/resources/agents/resources/turns/client/requests/index.d.ts +3 -0
  81. package/dist/api/resources/agents/resources/turns/client/requests/index.js +1 -0
  82. package/dist/api/resources/agents/resources/turns/exports.d.ts +2 -0
  83. package/dist/api/resources/agents/resources/turns/exports.js +3 -0
  84. package/dist/api/resources/agents/resources/turns/index.d.ts +2 -0
  85. package/dist/api/resources/agents/resources/turns/index.js +2 -0
  86. package/dist/api/resources/agents/resources/turns/types/CancelTurnsResponse.d.ts +14 -0
  87. package/dist/api/resources/agents/resources/turns/types/CancelTurnsResponse.js +2 -0
  88. package/dist/api/resources/agents/resources/turns/types/index.d.ts +1 -0
  89. package/dist/api/resources/agents/resources/turns/types/index.js +1 -0
  90. package/dist/api/resources/agents/types/RetargetQueueAgentsResponse.d.ts +4 -0
  91. package/dist/api/resources/agents/types/RetargetQueueAgentsResponse.js +2 -0
  92. package/dist/api/resources/agents/types/index.d.ts +1 -0
  93. package/dist/api/resources/agents/types/index.js +1 -0
  94. package/dist/api/resources/appInstalls/client/Client.d.ts +216 -0
  95. package/dist/api/resources/appInstalls/client/Client.js +591 -0
  96. package/dist/api/resources/appInstalls/client/index.d.ts +1 -0
  97. package/dist/api/resources/appInstalls/client/index.js +1 -0
  98. package/dist/api/resources/appInstalls/client/requests/AppInstallBatchInput.d.ts +16 -0
  99. package/dist/api/resources/appInstalls/client/requests/AppInstallBatchInput.js +2 -0
  100. package/dist/api/resources/appInstalls/client/requests/AppStoreInstallInput.d.ts +21 -0
  101. package/dist/api/resources/appInstalls/client/requests/AppStoreInstallInput.js +2 -0
  102. package/dist/api/resources/appInstalls/client/requests/CancelBatchAppInstallsRequest.d.ts +15 -0
  103. package/dist/api/resources/appInstalls/client/requests/CancelBatchAppInstallsRequest.js +2 -0
  104. package/dist/api/resources/appInstalls/client/requests/CreateAppInstallsRequest.d.ts +19 -0
  105. package/dist/api/resources/appInstalls/client/requests/CreateAppInstallsRequest.js +2 -0
  106. package/dist/api/resources/appInstalls/client/requests/EventsAppInstallsRequest.d.ts +13 -0
  107. package/dist/api/resources/appInstalls/client/requests/EventsAppInstallsRequest.js +2 -0
  108. package/dist/api/resources/appInstalls/client/requests/GetActiveBatchAppInstallsRequest.d.ts +13 -0
  109. package/dist/api/resources/appInstalls/client/requests/GetActiveBatchAppInstallsRequest.js +2 -0
  110. package/dist/api/resources/appInstalls/client/requests/ListAppInstallsRequest.d.ts +15 -0
  111. package/dist/api/resources/appInstalls/client/requests/ListAppInstallsRequest.js +2 -0
  112. package/dist/api/resources/appInstalls/client/requests/UninstallAppInstallsRequest.d.ts +15 -0
  113. package/dist/api/resources/appInstalls/client/requests/UninstallAppInstallsRequest.js +2 -0
  114. package/dist/api/resources/appInstalls/client/requests/index.d.ts +8 -0
  115. package/dist/api/resources/appInstalls/client/requests/index.js +1 -0
  116. package/dist/api/resources/appInstalls/exports.d.ts +2 -0
  117. package/dist/api/resources/appInstalls/exports.js +3 -0
  118. package/dist/api/resources/appInstalls/index.d.ts +2 -0
  119. package/dist/api/resources/appInstalls/index.js +2 -0
  120. package/dist/api/resources/appInstalls/types/CancelBatchAppInstallsResponse.d.ts +3 -0
  121. package/dist/api/resources/appInstalls/types/CancelBatchAppInstallsResponse.js +2 -0
  122. package/dist/api/resources/appInstalls/types/CreateAppInstallsResponse.d.ts +4 -0
  123. package/dist/api/resources/appInstalls/types/CreateAppInstallsResponse.js +2 -0
  124. package/dist/api/resources/appInstalls/types/ListAppInstallsResponse.d.ts +4 -0
  125. package/dist/api/resources/appInstalls/types/ListAppInstallsResponse.js +2 -0
  126. package/dist/api/resources/appInstalls/types/UninstallAppInstallsResponse.d.ts +4 -0
  127. package/dist/api/resources/appInstalls/types/UninstallAppInstallsResponse.js +2 -0
  128. package/dist/api/resources/appInstalls/types/index.d.ts +4 -0
  129. package/dist/api/resources/appInstalls/types/index.js +4 -0
  130. package/dist/api/resources/catalog/client/Client.d.ts +46 -0
  131. package/dist/api/resources/catalog/client/Client.js +144 -0
  132. package/dist/api/resources/catalog/client/index.d.ts +1 -0
  133. package/dist/api/resources/catalog/client/index.js +1 -0
  134. package/dist/api/resources/catalog/client/requests/GetAppIconCatalogRequest.d.ts +16 -0
  135. package/dist/api/resources/catalog/client/requests/GetAppIconCatalogRequest.js +2 -0
  136. package/dist/api/resources/catalog/client/requests/ListAppsCatalogRequest.d.ts +12 -0
  137. package/dist/api/resources/catalog/client/requests/ListAppsCatalogRequest.js +2 -0
  138. package/dist/api/resources/catalog/client/requests/index.d.ts +2 -0
  139. package/dist/api/resources/catalog/client/requests/index.js +1 -0
  140. package/dist/api/resources/catalog/exports.d.ts +2 -0
  141. package/dist/api/resources/catalog/exports.js +3 -0
  142. package/dist/api/resources/catalog/index.d.ts +2 -0
  143. package/dist/api/resources/catalog/index.js +2 -0
  144. package/dist/api/resources/catalog/types/ListAppsCatalogResponse.d.ts +4 -0
  145. package/dist/api/resources/catalog/types/ListAppsCatalogResponse.js +2 -0
  146. package/dist/api/resources/catalog/types/index.d.ts +1 -0
  147. package/dist/api/resources/catalog/types/index.js +1 -0
  148. package/dist/api/resources/datasets/client/Client.d.ts +109 -0
  149. package/dist/api/resources/datasets/client/Client.js +303 -0
  150. package/dist/api/resources/datasets/client/index.d.ts +1 -0
  151. package/dist/api/resources/datasets/client/index.js +1 -0
  152. package/dist/api/resources/datasets/client/requests/DeleteDatasetsRequest.d.ts +10 -0
  153. package/dist/api/resources/datasets/client/requests/DeleteDatasetsRequest.js +2 -0
  154. package/dist/api/resources/datasets/client/requests/GetDatasetsRequest.d.ts +10 -0
  155. package/dist/api/resources/datasets/client/requests/GetDatasetsRequest.js +2 -0
  156. package/dist/api/resources/datasets/client/requests/PromoteDatasetInput.d.ts +13 -0
  157. package/dist/api/resources/datasets/client/requests/PromoteDatasetInput.js +2 -0
  158. package/dist/api/resources/datasets/client/requests/UpdateDatasetInput.d.ts +13 -0
  159. package/dist/api/resources/datasets/client/requests/UpdateDatasetInput.js +2 -0
  160. package/dist/api/resources/datasets/client/requests/index.d.ts +4 -0
  161. package/dist/api/resources/datasets/client/requests/index.js +1 -0
  162. package/dist/api/resources/datasets/exports.d.ts +2 -0
  163. package/dist/api/resources/datasets/exports.js +3 -0
  164. package/dist/api/resources/datasets/index.d.ts +1 -0
  165. package/dist/api/resources/datasets/index.js +1 -0
  166. package/dist/api/resources/devices/client/Client.d.ts +979 -0
  167. package/dist/api/resources/devices/client/Client.js +2576 -0
  168. package/dist/api/resources/devices/client/index.d.ts +1 -0
  169. package/dist/api/resources/devices/client/index.js +1 -0
  170. package/dist/api/resources/devices/client/requests/BackDevicesRequest.d.ts +46 -0
  171. package/dist/api/resources/devices/client/requests/BackDevicesRequest.js +2 -0
  172. package/dist/api/resources/devices/client/requests/ChainRequest.d.ts +50 -0
  173. package/dist/api/resources/devices/client/requests/ChainRequest.js +2 -0
  174. package/dist/api/resources/devices/client/requests/ClearDevicesRequest.d.ts +46 -0
  175. package/dist/api/resources/devices/client/requests/ClearDevicesRequest.js +2 -0
  176. package/dist/api/resources/devices/client/requests/ClearGeoDevicesRequest.d.ts +39 -0
  177. package/dist/api/resources/devices/client/requests/ClearGeoDevicesRequest.js +2 -0
  178. package/dist/api/resources/devices/client/requests/DeployDevicesRequest.d.ts +15 -0
  179. package/dist/api/resources/devices/client/requests/DeployDevicesRequest.js +2 -0
  180. package/dist/api/resources/devices/client/requests/DeviceDeployPreviewInput.d.ts +41 -0
  181. package/dist/api/resources/devices/client/requests/DeviceDeployPreviewInput.js +13 -0
  182. package/dist/api/resources/devices/client/requests/DeviceGeoInput.d.ts +48 -0
  183. package/dist/api/resources/devices/client/requests/DeviceGeoInput.js +2 -0
  184. package/dist/api/resources/devices/client/requests/DeviceLanguageInput.d.ts +44 -0
  185. package/dist/api/resources/devices/client/requests/DeviceLanguageInput.js +2 -0
  186. package/dist/api/resources/devices/client/requests/GetAdvertisingIdDevicesRequest.d.ts +13 -0
  187. package/dist/api/resources/devices/client/requests/GetAdvertisingIdDevicesRequest.js +2 -0
  188. package/dist/api/resources/devices/client/requests/GetGeoDevicesRequest.d.ts +13 -0
  189. package/dist/api/resources/devices/client/requests/GetGeoDevicesRequest.js +2 -0
  190. package/dist/api/resources/devices/client/requests/GetIdentityDevicesRequest.d.ts +13 -0
  191. package/dist/api/resources/devices/client/requests/GetIdentityDevicesRequest.js +2 -0
  192. package/dist/api/resources/devices/client/requests/GetInternetLocationDevicesRequest.d.ts +13 -0
  193. package/dist/api/resources/devices/client/requests/GetInternetLocationDevicesRequest.js +2 -0
  194. package/dist/api/resources/devices/client/requests/GetLanguageDevicesRequest.d.ts +13 -0
  195. package/dist/api/resources/devices/client/requests/GetLanguageDevicesRequest.js +2 -0
  196. package/dist/api/resources/devices/client/requests/GetResetDevicesRequest.d.ts +13 -0
  197. package/dist/api/resources/devices/client/requests/GetResetDevicesRequest.js +2 -0
  198. package/dist/api/resources/devices/client/requests/GetStaticIpDevicesRequest.d.ts +15 -0
  199. package/dist/api/resources/devices/client/requests/GetStaticIpDevicesRequest.js +2 -0
  200. package/dist/api/resources/devices/client/requests/HomeDevicesRequest.d.ts +46 -0
  201. package/dist/api/resources/devices/client/requests/HomeDevicesRequest.js +2 -0
  202. package/dist/api/resources/devices/client/requests/KeyInput.d.ts +47 -0
  203. package/dist/api/resources/devices/client/requests/KeyInput.js +2 -0
  204. package/dist/api/resources/devices/client/requests/ListDevicesRequest.d.ts +12 -0
  205. package/dist/api/resources/devices/client/requests/ListDevicesRequest.js +2 -0
  206. package/dist/api/resources/devices/client/requests/ListInWorkspaceDevicesRequest.d.ts +10 -0
  207. package/dist/api/resources/devices/client/requests/ListInWorkspaceDevicesRequest.js +2 -0
  208. package/dist/api/resources/devices/client/requests/ListInternetLocationsRequest.d.ts +10 -0
  209. package/dist/api/resources/devices/client/requests/ListInternetLocationsRequest.js +2 -0
  210. package/dist/api/resources/devices/client/requests/OccupancyDevicesRequest.d.ts +13 -0
  211. package/dist/api/resources/devices/client/requests/OccupancyDevicesRequest.js +2 -0
  212. package/dist/api/resources/devices/client/requests/PreviewRemoveDevicesRequest.d.ts +17 -0
  213. package/dist/api/resources/devices/client/requests/PreviewRemoveDevicesRequest.js +2 -0
  214. package/dist/api/resources/devices/client/requests/RecentDevicesRequest.d.ts +46 -0
  215. package/dist/api/resources/devices/client/requests/RecentDevicesRequest.js +2 -0
  216. package/dist/api/resources/devices/client/requests/RemoveDevicesRequest.d.ts +18 -0
  217. package/dist/api/resources/devices/client/requests/RemoveDevicesRequest.js +2 -0
  218. package/dist/api/resources/devices/client/requests/ResetAdvertisingIdDevicesRequest.d.ts +39 -0
  219. package/dist/api/resources/devices/client/requests/ResetAdvertisingIdDevicesRequest.js +2 -0
  220. package/dist/api/resources/devices/client/requests/ScreenshotDevicesRequest.d.ts +13 -0
  221. package/dist/api/resources/devices/client/requests/ScreenshotDevicesRequest.js +2 -0
  222. package/dist/api/resources/devices/client/requests/SetIdentityDevicesRequest.d.ts +42 -0
  223. package/dist/api/resources/devices/client/requests/SetIdentityDevicesRequest.js +2 -0
  224. package/dist/api/resources/devices/client/requests/ShellInput.d.ts +45 -0
  225. package/dist/api/resources/devices/client/requests/ShellInput.js +2 -0
  226. package/dist/api/resources/devices/client/requests/StartAppInput.d.ts +58 -0
  227. package/dist/api/resources/devices/client/requests/StartAppInput.js +2 -0
  228. package/dist/api/resources/devices/client/requests/StateDevicesRequest.d.ts +13 -0
  229. package/dist/api/resources/devices/client/requests/StateDevicesRequest.js +2 -0
  230. package/dist/api/resources/devices/client/requests/StopAppInput.d.ts +51 -0
  231. package/dist/api/resources/devices/client/requests/StopAppInput.js +2 -0
  232. package/dist/api/resources/devices/client/requests/SwipeInput.d.ts +61 -0
  233. package/dist/api/resources/devices/client/requests/SwipeInput.js +2 -0
  234. package/dist/api/resources/devices/client/requests/TakeScreenshotDevicesRequest.d.ts +46 -0
  235. package/dist/api/resources/devices/client/requests/TakeScreenshotDevicesRequest.js +2 -0
  236. package/dist/api/resources/devices/client/requests/TapInput.d.ts +58 -0
  237. package/dist/api/resources/devices/client/requests/TapInput.js +2 -0
  238. package/dist/api/resources/devices/client/requests/TypeTextInput.d.ts +60 -0
  239. package/dist/api/resources/devices/client/requests/TypeTextInput.js +2 -0
  240. package/dist/api/resources/devices/client/requests/index.d.ts +35 -0
  241. package/dist/api/resources/devices/client/requests/index.js +1 -0
  242. package/dist/api/resources/devices/exports.d.ts +3 -0
  243. package/dist/api/resources/devices/exports.js +4 -0
  244. package/dist/api/resources/devices/index.d.ts +3 -0
  245. package/dist/api/resources/devices/index.js +3 -0
  246. package/dist/api/resources/devices/resources/index.d.ts +3 -0
  247. package/dist/api/resources/devices/resources/index.js +3 -0
  248. package/dist/api/resources/devices/resources/sessions/client/Client.d.ts +62 -0
  249. package/dist/api/resources/devices/resources/sessions/client/Client.js +162 -0
  250. package/dist/api/resources/devices/resources/sessions/client/index.d.ts +1 -0
  251. package/dist/api/resources/devices/resources/sessions/client/index.js +1 -0
  252. package/dist/api/resources/devices/resources/sessions/client/requests/CreateSessionInput.d.ts +57 -0
  253. package/dist/api/resources/devices/resources/sessions/client/requests/CreateSessionInput.js +2 -0
  254. package/dist/api/resources/devices/resources/sessions/client/requests/ListSessionsRequest.d.ts +16 -0
  255. package/dist/api/resources/devices/resources/sessions/client/requests/ListSessionsRequest.js +2 -0
  256. package/dist/api/resources/devices/resources/sessions/client/requests/index.d.ts +2 -0
  257. package/dist/api/resources/devices/resources/sessions/client/requests/index.js +1 -0
  258. package/dist/api/resources/devices/resources/sessions/exports.d.ts +2 -0
  259. package/dist/api/resources/devices/resources/sessions/exports.js +3 -0
  260. package/dist/api/resources/devices/resources/sessions/index.d.ts +2 -0
  261. package/dist/api/resources/devices/resources/sessions/index.js +2 -0
  262. package/dist/api/resources/devices/resources/sessions/types/ListSessionsResponse.d.ts +4 -0
  263. package/dist/api/resources/devices/resources/sessions/types/ListSessionsResponse.js +2 -0
  264. package/dist/api/resources/devices/resources/sessions/types/index.d.ts +1 -0
  265. package/dist/api/resources/devices/resources/sessions/types/index.js +1 -0
  266. package/dist/api/resources/devices/types/ClearGeoDevicesResponse.d.ts +4 -0
  267. package/dist/api/resources/devices/types/ClearGeoDevicesResponse.js +2 -0
  268. package/dist/api/resources/devices/types/DeployDevicesResponse.d.ts +4 -0
  269. package/dist/api/resources/devices/types/DeployDevicesResponse.js +2 -0
  270. package/dist/api/resources/devices/types/GetAdvertisingIdDevicesResponse.d.ts +4 -0
  271. package/dist/api/resources/devices/types/GetAdvertisingIdDevicesResponse.js +2 -0
  272. package/dist/api/resources/devices/types/GetGeoDevicesResponse.d.ts +4 -0
  273. package/dist/api/resources/devices/types/GetGeoDevicesResponse.js +2 -0
  274. package/dist/api/resources/devices/types/GetIdentityDevicesResponse.d.ts +4 -0
  275. package/dist/api/resources/devices/types/GetIdentityDevicesResponse.js +2 -0
  276. package/dist/api/resources/devices/types/GetInternetLocationDevicesResponse.d.ts +4 -0
  277. package/dist/api/resources/devices/types/GetInternetLocationDevicesResponse.js +2 -0
  278. package/dist/api/resources/devices/types/GetLanguageDevicesResponse.d.ts +4 -0
  279. package/dist/api/resources/devices/types/GetLanguageDevicesResponse.js +2 -0
  280. package/dist/api/resources/devices/types/GetResetDevicesResponse.d.ts +4 -0
  281. package/dist/api/resources/devices/types/GetResetDevicesResponse.js +2 -0
  282. package/dist/api/resources/devices/types/GetStaticIpDevicesResponse.d.ts +4 -0
  283. package/dist/api/resources/devices/types/GetStaticIpDevicesResponse.js +2 -0
  284. package/dist/api/resources/devices/types/ListDevicesResponse.d.ts +4 -0
  285. package/dist/api/resources/devices/types/ListDevicesResponse.js +2 -0
  286. package/dist/api/resources/devices/types/ListInWorkspaceDevicesResponse.d.ts +4 -0
  287. package/dist/api/resources/devices/types/ListInWorkspaceDevicesResponse.js +2 -0
  288. package/dist/api/resources/devices/types/ListInternetLocationsResponse.d.ts +9 -0
  289. package/dist/api/resources/devices/types/ListInternetLocationsResponse.js +2 -0
  290. package/dist/api/resources/devices/types/OccupancyDevicesResponse.d.ts +4 -0
  291. package/dist/api/resources/devices/types/OccupancyDevicesResponse.js +2 -0
  292. package/dist/api/resources/devices/types/PreviewDeployDevicesResponse.d.ts +4 -0
  293. package/dist/api/resources/devices/types/PreviewDeployDevicesResponse.js +2 -0
  294. package/dist/api/resources/devices/types/PreviewRemoveDevicesResponse.d.ts +4 -0
  295. package/dist/api/resources/devices/types/PreviewRemoveDevicesResponse.js +2 -0
  296. package/dist/api/resources/devices/types/RemoveDevicesResponse.d.ts +4 -0
  297. package/dist/api/resources/devices/types/RemoveDevicesResponse.js +2 -0
  298. package/dist/api/resources/devices/types/ResetAdvertisingIdDevicesResponse.d.ts +4 -0
  299. package/dist/api/resources/devices/types/ResetAdvertisingIdDevicesResponse.js +2 -0
  300. package/dist/api/resources/devices/types/SetGeoDevicesResponse.d.ts +4 -0
  301. package/dist/api/resources/devices/types/SetGeoDevicesResponse.js +2 -0
  302. package/dist/api/resources/devices/types/SetIdentityDevicesResponse.d.ts +4 -0
  303. package/dist/api/resources/devices/types/SetIdentityDevicesResponse.js +2 -0
  304. package/dist/api/resources/devices/types/SetLanguageDevicesResponse.d.ts +4 -0
  305. package/dist/api/resources/devices/types/SetLanguageDevicesResponse.js +2 -0
  306. package/dist/api/resources/devices/types/index.d.ts +20 -0
  307. package/dist/api/resources/devices/types/index.js +20 -0
  308. package/dist/api/resources/emails/client/Client.d.ts +212 -0
  309. package/dist/api/resources/emails/client/Client.js +537 -0
  310. package/dist/api/resources/emails/client/index.d.ts +1 -0
  311. package/dist/api/resources/emails/client/index.js +1 -0
  312. package/dist/api/resources/emails/client/requests/EmailAddressAddInput.d.ts +16 -0
  313. package/dist/api/resources/emails/client/requests/EmailAddressAddInput.js +2 -0
  314. package/dist/api/resources/emails/client/requests/ListAddressesEmailsRequest.d.ts +12 -0
  315. package/dist/api/resources/emails/client/requests/ListAddressesEmailsRequest.js +2 -0
  316. package/dist/api/resources/emails/client/requests/ListMessagesEmailsRequest.d.ts +20 -0
  317. package/dist/api/resources/emails/client/requests/ListMessagesEmailsRequest.js +2 -0
  318. package/dist/api/resources/emails/client/requests/PreviewAddAddressEmailsRequest.d.ts +17 -0
  319. package/dist/api/resources/emails/client/requests/PreviewAddAddressEmailsRequest.js +2 -0
  320. package/dist/api/resources/emails/client/requests/PreviewRemoveAddressEmailsRequest.d.ts +20 -0
  321. package/dist/api/resources/emails/client/requests/PreviewRemoveAddressEmailsRequest.js +2 -0
  322. package/dist/api/resources/emails/client/requests/RemoveAddressEmailsRequest.d.ts +21 -0
  323. package/dist/api/resources/emails/client/requests/RemoveAddressEmailsRequest.js +2 -0
  324. package/dist/api/resources/emails/client/requests/index.d.ts +6 -0
  325. package/dist/api/resources/emails/client/requests/index.js +1 -0
  326. package/dist/api/resources/emails/exports.d.ts +2 -0
  327. package/dist/api/resources/emails/exports.js +3 -0
  328. package/dist/api/resources/emails/index.d.ts +2 -0
  329. package/dist/api/resources/emails/index.js +2 -0
  330. package/dist/api/resources/emails/types/AddAddressEmailsResponse.d.ts +4 -0
  331. package/dist/api/resources/emails/types/AddAddressEmailsResponse.js +2 -0
  332. package/dist/api/resources/emails/types/PreviewAddAddressEmailsResponse.d.ts +4 -0
  333. package/dist/api/resources/emails/types/PreviewAddAddressEmailsResponse.js +2 -0
  334. package/dist/api/resources/emails/types/PreviewRemoveAddressEmailsResponse.d.ts +4 -0
  335. package/dist/api/resources/emails/types/PreviewRemoveAddressEmailsResponse.js +2 -0
  336. package/dist/api/resources/emails/types/RemoveAddressEmailsResponse.d.ts +4 -0
  337. package/dist/api/resources/emails/types/RemoveAddressEmailsResponse.js +2 -0
  338. package/dist/api/resources/emails/types/index.d.ts +4 -0
  339. package/dist/api/resources/emails/types/index.js +4 -0
  340. package/dist/api/resources/files/client/Client.d.ts +69 -0
  341. package/dist/api/resources/files/client/Client.js +205 -0
  342. package/dist/api/resources/files/client/index.d.ts +1 -0
  343. package/dist/api/resources/files/client/index.js +1 -0
  344. package/dist/api/resources/files/client/requests/DownloadFilesRequest.d.ts +16 -0
  345. package/dist/api/resources/files/client/requests/DownloadFilesRequest.js +2 -0
  346. package/dist/api/resources/files/client/requests/GetFilesRequest.d.ts +16 -0
  347. package/dist/api/resources/files/client/requests/GetFilesRequest.js +2 -0
  348. package/dist/api/resources/files/client/requests/ListFilesRequest.d.ts +13 -0
  349. package/dist/api/resources/files/client/requests/ListFilesRequest.js +2 -0
  350. package/dist/api/resources/files/client/requests/index.d.ts +3 -0
  351. package/dist/api/resources/files/client/requests/index.js +1 -0
  352. package/dist/api/resources/files/exports.d.ts +2 -0
  353. package/dist/api/resources/files/exports.js +3 -0
  354. package/dist/api/resources/files/index.d.ts +2 -0
  355. package/dist/api/resources/files/index.js +2 -0
  356. package/dist/api/resources/files/types/DownloadFilesResponse.d.ts +4 -0
  357. package/dist/api/resources/files/types/DownloadFilesResponse.js +2 -0
  358. package/dist/api/resources/files/types/GetFilesResponse.d.ts +4 -0
  359. package/dist/api/resources/files/types/GetFilesResponse.js +2 -0
  360. package/dist/api/resources/files/types/ListFilesResponse.d.ts +4 -0
  361. package/dist/api/resources/files/types/ListFilesResponse.js +2 -0
  362. package/dist/api/resources/files/types/index.d.ts +3 -0
  363. package/dist/api/resources/files/types/index.js +3 -0
  364. package/dist/api/resources/health/client/Client.d.ts +29 -0
  365. package/dist/api/resources/health/client/Client.js +57 -0
  366. package/dist/api/resources/health/client/index.d.ts +1 -0
  367. package/dist/api/resources/health/client/index.js +1 -0
  368. package/dist/api/resources/health/exports.d.ts +2 -0
  369. package/dist/api/resources/health/exports.js +3 -0
  370. package/dist/api/resources/health/index.d.ts +2 -0
  371. package/dist/api/resources/health/index.js +2 -0
  372. package/dist/api/resources/health/types/CheckHealthResponse.d.ts +4 -0
  373. package/dist/api/resources/health/types/CheckHealthResponse.js +2 -0
  374. package/dist/api/resources/health/types/index.d.ts +1 -0
  375. package/dist/api/resources/health/types/index.js +1 -0
  376. package/dist/api/resources/index.d.ts +42 -0
  377. package/dist/api/resources/index.js +42 -0
  378. package/dist/api/resources/modelKeys/client/Client.d.ts +94 -0
  379. package/dist/api/resources/modelKeys/client/Client.js +224 -0
  380. package/dist/api/resources/modelKeys/client/index.d.ts +1 -0
  381. package/dist/api/resources/modelKeys/client/index.js +1 -0
  382. package/dist/api/resources/modelKeys/client/requests/DeleteModelKeysRequest.d.ts +13 -0
  383. package/dist/api/resources/modelKeys/client/requests/DeleteModelKeysRequest.js +2 -0
  384. package/dist/api/resources/modelKeys/client/requests/ListModelKeysRequest.d.ts +10 -0
  385. package/dist/api/resources/modelKeys/client/requests/ListModelKeysRequest.js +2 -0
  386. package/dist/api/resources/modelKeys/client/requests/ModelKeyInput.d.ts +16 -0
  387. package/dist/api/resources/modelKeys/client/requests/ModelKeyInput.js +2 -0
  388. package/dist/api/resources/modelKeys/client/requests/index.d.ts +3 -0
  389. package/dist/api/resources/modelKeys/client/requests/index.js +1 -0
  390. package/dist/api/resources/modelKeys/exports.d.ts +2 -0
  391. package/dist/api/resources/modelKeys/exports.js +3 -0
  392. package/dist/api/resources/modelKeys/index.d.ts +2 -0
  393. package/dist/api/resources/modelKeys/index.js +2 -0
  394. package/dist/api/resources/modelKeys/types/DeleteModelKeysRequestProvider.d.ts +5 -0
  395. package/dist/api/resources/modelKeys/types/DeleteModelKeysRequestProvider.js +5 -0
  396. package/dist/api/resources/modelKeys/types/ListModelKeysResponse.d.ts +4 -0
  397. package/dist/api/resources/modelKeys/types/ListModelKeysResponse.js +2 -0
  398. package/dist/api/resources/modelKeys/types/SetModelKeysRequestProvider.d.ts +5 -0
  399. package/dist/api/resources/modelKeys/types/SetModelKeysRequestProvider.js +5 -0
  400. package/dist/api/resources/modelKeys/types/SetModelKeysResponse.d.ts +4 -0
  401. package/dist/api/resources/modelKeys/types/SetModelKeysResponse.js +2 -0
  402. package/dist/api/resources/modelKeys/types/index.d.ts +4 -0
  403. package/dist/api/resources/modelKeys/types/index.js +4 -0
  404. package/dist/api/resources/notifications/client/Client.d.ts +98 -0
  405. package/dist/api/resources/notifications/client/Client.js +264 -0
  406. package/dist/api/resources/notifications/client/index.d.ts +1 -0
  407. package/dist/api/resources/notifications/client/index.js +1 -0
  408. package/dist/api/resources/notifications/client/requests/GetSettingsNotificationsRequest.d.ts +13 -0
  409. package/dist/api/resources/notifications/client/requests/GetSettingsNotificationsRequest.js +2 -0
  410. package/dist/api/resources/notifications/client/requests/ListAppsNotificationsRequest.d.ts +13 -0
  411. package/dist/api/resources/notifications/client/requests/ListAppsNotificationsRequest.js +2 -0
  412. package/dist/api/resources/notifications/client/requests/ListNotificationsRequest.d.ts +17 -0
  413. package/dist/api/resources/notifications/client/requests/ListNotificationsRequest.js +2 -0
  414. package/dist/api/resources/notifications/client/requests/ListRulesNotificationsRequest.d.ts +10 -0
  415. package/dist/api/resources/notifications/client/requests/ListRulesNotificationsRequest.js +2 -0
  416. package/dist/api/resources/notifications/client/requests/index.d.ts +4 -0
  417. package/dist/api/resources/notifications/client/requests/index.js +1 -0
  418. package/dist/api/resources/notifications/exports.d.ts +2 -0
  419. package/dist/api/resources/notifications/exports.js +3 -0
  420. package/dist/api/resources/notifications/index.d.ts +2 -0
  421. package/dist/api/resources/notifications/index.js +2 -0
  422. package/dist/api/resources/notifications/types/GetSettingsNotificationsResponse.d.ts +4 -0
  423. package/dist/api/resources/notifications/types/GetSettingsNotificationsResponse.js +2 -0
  424. package/dist/api/resources/notifications/types/ListAppsNotificationsResponse.d.ts +4 -0
  425. package/dist/api/resources/notifications/types/ListAppsNotificationsResponse.js +2 -0
  426. package/dist/api/resources/notifications/types/ListNotificationsResponse.d.ts +4 -0
  427. package/dist/api/resources/notifications/types/ListNotificationsResponse.js +2 -0
  428. package/dist/api/resources/notifications/types/ListRulesNotificationsResponse.d.ts +4 -0
  429. package/dist/api/resources/notifications/types/ListRulesNotificationsResponse.js +2 -0
  430. package/dist/api/resources/notifications/types/index.d.ts +4 -0
  431. package/dist/api/resources/notifications/types/index.js +4 -0
  432. package/dist/api/resources/phoneNumbers/client/Client.d.ts +92 -0
  433. package/dist/api/resources/phoneNumbers/client/Client.js +219 -0
  434. package/dist/api/resources/phoneNumbers/client/index.d.ts +1 -0
  435. package/dist/api/resources/phoneNumbers/client/index.js +1 -0
  436. package/dist/api/resources/phoneNumbers/client/requests/GetPhoneNumbersRequest.d.ts +13 -0
  437. package/dist/api/resources/phoneNumbers/client/requests/GetPhoneNumbersRequest.js +2 -0
  438. package/dist/api/resources/phoneNumbers/client/requests/ListMessagesPhoneNumbersRequest.d.ts +19 -0
  439. package/dist/api/resources/phoneNumbers/client/requests/ListMessagesPhoneNumbersRequest.js +2 -0
  440. package/dist/api/resources/phoneNumbers/client/requests/ListPhoneNumbersRequest.d.ts +10 -0
  441. package/dist/api/resources/phoneNumbers/client/requests/ListPhoneNumbersRequest.js +2 -0
  442. package/dist/api/resources/phoneNumbers/client/requests/index.d.ts +3 -0
  443. package/dist/api/resources/phoneNumbers/client/requests/index.js +1 -0
  444. package/dist/api/resources/phoneNumbers/exports.d.ts +2 -0
  445. package/dist/api/resources/phoneNumbers/exports.js +3 -0
  446. package/dist/api/resources/phoneNumbers/index.d.ts +1 -0
  447. package/dist/api/resources/phoneNumbers/index.js +1 -0
  448. package/dist/api/resources/secrets/client/Client.d.ts +80 -0
  449. package/dist/api/resources/secrets/client/Client.js +192 -0
  450. package/dist/api/resources/secrets/client/index.d.ts +1 -0
  451. package/dist/api/resources/secrets/client/index.js +1 -0
  452. package/dist/api/resources/secrets/client/requests/GetSecretsRequest.d.ts +10 -0
  453. package/dist/api/resources/secrets/client/requests/GetSecretsRequest.js +2 -0
  454. package/dist/api/resources/secrets/client/requests/ListSecretsRequest.d.ts +10 -0
  455. package/dist/api/resources/secrets/client/requests/ListSecretsRequest.js +2 -0
  456. package/dist/api/resources/secrets/client/requests/ListTagsSecretsRequest.d.ts +10 -0
  457. package/dist/api/resources/secrets/client/requests/ListTagsSecretsRequest.js +2 -0
  458. package/dist/api/resources/secrets/client/requests/index.d.ts +3 -0
  459. package/dist/api/resources/secrets/client/requests/index.js +1 -0
  460. package/dist/api/resources/secrets/exports.d.ts +2 -0
  461. package/dist/api/resources/secrets/exports.js +3 -0
  462. package/dist/api/resources/secrets/index.d.ts +2 -0
  463. package/dist/api/resources/secrets/index.js +2 -0
  464. package/dist/api/resources/secrets/types/GetSecretsResponse.d.ts +4 -0
  465. package/dist/api/resources/secrets/types/GetSecretsResponse.js +2 -0
  466. package/dist/api/resources/secrets/types/ListTagsSecretsResponse.d.ts +4 -0
  467. package/dist/api/resources/secrets/types/ListTagsSecretsResponse.js +2 -0
  468. package/dist/api/resources/secrets/types/index.d.ts +2 -0
  469. package/dist/api/resources/secrets/types/index.js +2 -0
  470. package/dist/api/resources/sessions/client/Client.d.ts +442 -0
  471. package/dist/api/resources/sessions/client/Client.js +1241 -0
  472. package/dist/api/resources/sessions/client/index.d.ts +1 -0
  473. package/dist/api/resources/sessions/client/index.js +1 -0
  474. package/dist/api/resources/sessions/client/requests/AnswerHitlInput.d.ts +18 -0
  475. package/dist/api/resources/sessions/client/requests/AnswerHitlInput.js +2 -0
  476. package/dist/api/resources/sessions/client/requests/ArtifactsSessionsRequest.d.ts +16 -0
  477. package/dist/api/resources/sessions/client/requests/ArtifactsSessionsRequest.js +2 -0
  478. package/dist/api/resources/sessions/client/requests/BreakdownSessionsRequest.d.ts +10 -0
  479. package/dist/api/resources/sessions/client/requests/BreakdownSessionsRequest.js +2 -0
  480. package/dist/api/resources/sessions/client/requests/CancelQueuedSessionsRequest.d.ts +18 -0
  481. package/dist/api/resources/sessions/client/requests/CancelQueuedSessionsRequest.js +2 -0
  482. package/dist/api/resources/sessions/client/requests/ContinueSessionInput.d.ts +24 -0
  483. package/dist/api/resources/sessions/client/requests/ContinueSessionInput.js +2 -0
  484. package/dist/api/resources/sessions/client/requests/EventsSessionsRequest.d.ts +12 -0
  485. package/dist/api/resources/sessions/client/requests/EventsSessionsRequest.js +2 -0
  486. package/dist/api/resources/sessions/client/requests/GetLegacySessionsRequest.d.ts +16 -0
  487. package/dist/api/resources/sessions/client/requests/GetLegacySessionsRequest.js +2 -0
  488. package/dist/api/resources/sessions/client/requests/GetSessionsRequest.d.ts +10 -0
  489. package/dist/api/resources/sessions/client/requests/GetSessionsRequest.js +2 -0
  490. package/dist/api/resources/sessions/client/requests/GetUiStateSessionsRequest.d.ts +19 -0
  491. package/dist/api/resources/sessions/client/requests/GetUiStateSessionsRequest.js +2 -0
  492. package/dist/api/resources/sessions/client/requests/HistoryPolicySessionsRequest.d.ts +12 -0
  493. package/dist/api/resources/sessions/client/requests/HistoryPolicySessionsRequest.js +2 -0
  494. package/dist/api/resources/sessions/client/requests/ListSessionsRequest.d.ts +78 -0
  495. package/dist/api/resources/sessions/client/requests/ListSessionsRequest.js +2 -0
  496. package/dist/api/resources/sessions/client/requests/RecordingSessionsRequest.d.ts +16 -0
  497. package/dist/api/resources/sessions/client/requests/RecordingSessionsRequest.js +2 -0
  498. package/dist/api/resources/sessions/client/requests/ReplayFrameSessionsRequest.d.ts +19 -0
  499. package/dist/api/resources/sessions/client/requests/ReplayFrameSessionsRequest.js +2 -0
  500. package/dist/api/resources/sessions/client/requests/ReplaySessionsRequest.d.ts +16 -0
  501. package/dist/api/resources/sessions/client/requests/ReplaySessionsRequest.js +2 -0
  502. package/dist/api/resources/sessions/client/requests/StatusSessionsRequest.d.ts +16 -0
  503. package/dist/api/resources/sessions/client/requests/StatusSessionsRequest.js +2 -0
  504. package/dist/api/resources/sessions/client/requests/StopSessionsRequest.d.ts +19 -0
  505. package/dist/api/resources/sessions/client/requests/StopSessionsRequest.js +2 -0
  506. package/dist/api/resources/sessions/client/requests/UpdateSessionInput.d.ts +13 -0
  507. package/dist/api/resources/sessions/client/requests/UpdateSessionInput.js +2 -0
  508. package/dist/api/resources/sessions/client/requests/index.d.ts +17 -0
  509. package/dist/api/resources/sessions/client/requests/index.js +1 -0
  510. package/dist/api/resources/sessions/exports.d.ts +3 -0
  511. package/dist/api/resources/sessions/exports.js +4 -0
  512. package/dist/api/resources/sessions/index.d.ts +3 -0
  513. package/dist/api/resources/sessions/index.js +3 -0
  514. package/dist/api/resources/sessions/resources/index.d.ts +3 -0
  515. package/dist/api/resources/sessions/resources/index.js +3 -0
  516. package/dist/api/resources/sessions/resources/liveView/client/Client.d.ts +210 -0
  517. package/dist/api/resources/sessions/resources/liveView/client/Client.js +616 -0
  518. package/dist/api/resources/sessions/resources/liveView/client/index.d.ts +1 -0
  519. package/dist/api/resources/sessions/resources/liveView/client/index.js +1 -0
  520. package/dist/api/resources/sessions/resources/liveView/client/requests/ConnectLiveViewRequest.d.ts +13 -0
  521. package/dist/api/resources/sessions/resources/liveView/client/requests/ConnectLiveViewRequest.js +2 -0
  522. package/dist/api/resources/sessions/resources/liveView/client/requests/EventsLiveViewRequest.d.ts +16 -0
  523. package/dist/api/resources/sessions/resources/liveView/client/requests/EventsLiveViewRequest.js +2 -0
  524. package/dist/api/resources/sessions/resources/liveView/client/requests/IceServersLiveViewRequest.d.ts +16 -0
  525. package/dist/api/resources/sessions/resources/liveView/client/requests/IceServersLiveViewRequest.js +2 -0
  526. package/dist/api/resources/sessions/resources/liveView/client/requests/KeepaliveLiveViewRequest.d.ts +13 -0
  527. package/dist/api/resources/sessions/resources/liveView/client/requests/KeepaliveLiveViewRequest.js +2 -0
  528. package/dist/api/resources/sessions/resources/liveView/client/requests/RequestFrameLiveViewRequest.d.ts +13 -0
  529. package/dist/api/resources/sessions/resources/liveView/client/requests/RequestFrameLiveViewRequest.js +2 -0
  530. package/dist/api/resources/sessions/resources/liveView/client/requests/StartLiveViewRequest.d.ts +13 -0
  531. package/dist/api/resources/sessions/resources/liveView/client/requests/StartLiveViewRequest.js +2 -0
  532. package/dist/api/resources/sessions/resources/liveView/client/requests/StreamSignalInput.d.ts +30 -0
  533. package/dist/api/resources/sessions/resources/liveView/client/requests/StreamSignalInput.js +11 -0
  534. package/dist/api/resources/sessions/resources/liveView/client/requests/StreamStopInput.d.ts +15 -0
  535. package/dist/api/resources/sessions/resources/liveView/client/requests/StreamStopInput.js +2 -0
  536. package/dist/api/resources/sessions/resources/liveView/client/requests/index.d.ts +8 -0
  537. package/dist/api/resources/sessions/resources/liveView/client/requests/index.js +1 -0
  538. package/dist/api/resources/sessions/resources/liveView/exports.d.ts +2 -0
  539. package/dist/api/resources/sessions/resources/liveView/exports.js +3 -0
  540. package/dist/api/resources/sessions/resources/liveView/index.d.ts +2 -0
  541. package/dist/api/resources/sessions/resources/liveView/index.js +2 -0
  542. package/dist/api/resources/sessions/resources/liveView/types/IceServersLiveViewResponse.d.ts +4 -0
  543. package/dist/api/resources/sessions/resources/liveView/types/IceServersLiveViewResponse.js +2 -0
  544. package/dist/api/resources/sessions/resources/liveView/types/index.d.ts +1 -0
  545. package/dist/api/resources/sessions/resources/liveView/types/index.js +1 -0
  546. package/dist/api/resources/sessions/types/BreakdownSessionsResponse.d.ts +18 -0
  547. package/dist/api/resources/sessions/types/BreakdownSessionsResponse.js +10 -0
  548. package/dist/api/resources/sessions/types/EventsSessionsResponse.d.ts +4 -0
  549. package/dist/api/resources/sessions/types/EventsSessionsResponse.js +2 -0
  550. package/dist/api/resources/sessions/types/HistoryPolicySessionsResponse.d.ts +4 -0
  551. package/dist/api/resources/sessions/types/HistoryPolicySessionsResponse.js +2 -0
  552. package/dist/api/resources/sessions/types/ListSessionsRequestStatusMode.d.ts +5 -0
  553. package/dist/api/resources/sessions/types/ListSessionsRequestStatusMode.js +5 -0
  554. package/dist/api/resources/sessions/types/ListSessionsResponse.d.ts +4 -0
  555. package/dist/api/resources/sessions/types/ListSessionsResponse.js +2 -0
  556. package/dist/api/resources/sessions/types/index.d.ts +5 -0
  557. package/dist/api/resources/sessions/types/index.js +5 -0
  558. package/dist/api/resources/skills/client/Client.d.ts +106 -0
  559. package/dist/api/resources/skills/client/Client.js +310 -0
  560. package/dist/api/resources/skills/client/index.d.ts +1 -0
  561. package/dist/api/resources/skills/client/index.js +1 -0
  562. package/dist/api/resources/skills/client/requests/CreateSkillInput.d.ts +44 -0
  563. package/dist/api/resources/skills/client/requests/CreateSkillInput.js +2 -0
  564. package/dist/api/resources/skills/client/requests/DeleteSkillsRequest.d.ts +10 -0
  565. package/dist/api/resources/skills/client/requests/DeleteSkillsRequest.js +2 -0
  566. package/dist/api/resources/skills/client/requests/GetSkillsRequest.d.ts +10 -0
  567. package/dist/api/resources/skills/client/requests/GetSkillsRequest.js +2 -0
  568. package/dist/api/resources/skills/client/requests/ListSkillsRequest.d.ts +9 -0
  569. package/dist/api/resources/skills/client/requests/ListSkillsRequest.js +2 -0
  570. package/dist/api/resources/skills/client/requests/UpdateSkillsRequest.d.ts +20 -0
  571. package/dist/api/resources/skills/client/requests/UpdateSkillsRequest.js +2 -0
  572. package/dist/api/resources/skills/client/requests/index.d.ts +5 -0
  573. package/dist/api/resources/skills/client/requests/index.js +1 -0
  574. package/dist/api/resources/skills/exports.d.ts +2 -0
  575. package/dist/api/resources/skills/exports.js +3 -0
  576. package/dist/api/resources/skills/index.d.ts +2 -0
  577. package/dist/api/resources/skills/index.js +2 -0
  578. package/dist/api/resources/skills/types/ListSkillsRequestScope.d.ts +5 -0
  579. package/dist/api/resources/skills/types/ListSkillsRequestScope.js +5 -0
  580. package/dist/api/resources/skills/types/ListSkillsResponse.d.ts +4 -0
  581. package/dist/api/resources/skills/types/ListSkillsResponse.js +2 -0
  582. package/dist/api/resources/skills/types/index.d.ts +2 -0
  583. package/dist/api/resources/skills/types/index.js +2 -0
  584. package/dist/api/resources/workspaces/client/Client.d.ts +34 -0
  585. package/dist/api/resources/workspaces/client/Client.js +72 -0
  586. package/dist/api/resources/workspaces/client/index.d.ts +1 -0
  587. package/dist/api/resources/workspaces/client/index.js +1 -0
  588. package/dist/api/resources/workspaces/client/requests/GetWorkspacesRequest.d.ts +10 -0
  589. package/dist/api/resources/workspaces/client/requests/GetWorkspacesRequest.js +2 -0
  590. package/dist/api/resources/workspaces/client/requests/index.d.ts +1 -0
  591. package/dist/api/resources/workspaces/client/requests/index.js +1 -0
  592. package/dist/api/resources/workspaces/exports.d.ts +2 -0
  593. package/dist/api/resources/workspaces/exports.js +3 -0
  594. package/dist/api/resources/workspaces/index.d.ts +2 -0
  595. package/dist/api/resources/workspaces/index.js +2 -0
  596. package/dist/api/resources/workspaces/types/GetWorkspacesResponse.d.ts +4 -0
  597. package/dist/api/resources/workspaces/types/GetWorkspacesResponse.js +2 -0
  598. package/dist/api/resources/workspaces/types/index.d.ts +1 -0
  599. package/dist/api/resources/workspaces/types/index.js +1 -0
  600. package/dist/api/types/Agent.d.ts +19 -0
  601. package/dist/api/types/Agent.js +2 -0
  602. package/dist/api/types/AgentDetail.d.ts +9 -0
  603. package/dist/api/types/AgentDetail.js +2 -0
  604. package/dist/api/types/AgentDetailResponse.d.ts +4 -0
  605. package/dist/api/types/AgentDetailResponse.js +2 -0
  606. package/dist/api/types/AgentDevice.d.ts +7 -0
  607. package/dist/api/types/AgentDevice.js +2 -0
  608. package/dist/api/types/AgentDeviceInput.d.ts +6 -0
  609. package/dist/api/types/AgentDeviceInput.js +2 -0
  610. package/dist/api/types/AgentListResponse.d.ts +8 -0
  611. package/dist/api/types/AgentListResponse.js +2 -0
  612. package/dist/api/types/AgentTurn.d.ts +14 -0
  613. package/dist/api/types/AgentTurn.js +2 -0
  614. package/dist/api/types/AgentTurnDispatchResponse.d.ts +29 -0
  615. package/dist/api/types/AgentTurnDispatchResponse.js +14 -0
  616. package/dist/api/types/AgentTurnPage.d.ts +7 -0
  617. package/dist/api/types/AgentTurnPage.js +2 -0
  618. package/dist/api/types/AgentTurnPageResponse.d.ts +4 -0
  619. package/dist/api/types/AgentTurnPageResponse.js +2 -0
  620. package/dist/api/types/AnswerHitlResult.d.ts +26 -0
  621. package/dist/api/types/AnswerHitlResult.js +13 -0
  622. package/dist/api/types/AppInstall.d.ts +36 -0
  623. package/dist/api/types/AppInstall.js +22 -0
  624. package/dist/api/types/AppInstallBatch.d.ts +39 -0
  625. package/dist/api/types/AppInstallBatch.js +28 -0
  626. package/dist/api/types/AppInstallBatchStarted.d.ts +19 -0
  627. package/dist/api/types/AppInstallBatchStarted.js +13 -0
  628. package/dist/api/types/AppInstallEvent.d.ts +16 -0
  629. package/dist/api/types/AppInstallEvent.js +8 -0
  630. package/dist/api/types/AppStoreInstallResponse.d.ts +31 -0
  631. package/dist/api/types/AppStoreInstallResponse.js +14 -0
  632. package/dist/api/types/ArchiveAgentResponse.d.ts +10 -0
  633. package/dist/api/types/ArchiveAgentResponse.js +2 -0
  634. package/dist/api/types/BackChainStep.d.ts +5 -0
  635. package/dist/api/types/BackChainStep.js +2 -0
  636. package/dist/api/types/BadRequestErrorBody.d.ts +2 -0
  637. package/dist/api/types/BadRequestErrorBody.js +2 -0
  638. package/dist/api/types/Busy.d.ts +19 -0
  639. package/dist/api/types/Busy.js +9 -0
  640. package/dist/api/types/CancelQueuedFollowupResult.d.ts +8 -0
  641. package/dist/api/types/CancelQueuedFollowupResult.js +2 -0
  642. package/dist/api/types/CaptureField.d.ts +7 -0
  643. package/dist/api/types/CaptureField.js +2 -0
  644. package/dist/api/types/CaptureOnlyFilter.d.ts +8 -0
  645. package/dist/api/types/CaptureOnlyFilter.js +8 -0
  646. package/dist/api/types/CaptureOptions.d.ts +20 -0
  647. package/dist/api/types/CaptureOptions.js +2 -0
  648. package/dist/api/types/CaptureResponse.d.ts +56 -0
  649. package/dist/api/types/CaptureResponse.js +2 -0
  650. package/dist/api/types/CaptureVerbosity.d.ts +12 -0
  651. package/dist/api/types/CaptureVerbosity.js +12 -0
  652. package/dist/api/types/CatalogApp.d.ts +11 -0
  653. package/dist/api/types/CatalogApp.js +2 -0
  654. package/dist/api/types/ChainCapturePolicy.d.ts +12 -0
  655. package/dist/api/types/ChainCapturePolicy.js +12 -0
  656. package/dist/api/types/ChainResponse.d.ts +6 -0
  657. package/dist/api/types/ChainResponse.js +2 -0
  658. package/dist/api/types/ChainStep.d.ts +45 -0
  659. package/dist/api/types/ChainStep.js +2 -0
  660. package/dist/api/types/ChainStepResponse.d.ts +14 -0
  661. package/dist/api/types/ChainStepResponse.js +2 -0
  662. package/dist/api/types/ChainVerb.d.ts +16 -0
  663. package/dist/api/types/ChainVerb.js +16 -0
  664. package/dist/api/types/ClearChainStep.d.ts +5 -0
  665. package/dist/api/types/ClearChainStep.js +2 -0
  666. package/dist/api/types/ContinueSessionResult.d.ts +25 -0
  667. package/dist/api/types/ContinueSessionResult.js +7 -0
  668. package/dist/api/types/CreateSessionResult.d.ts +13 -0
  669. package/dist/api/types/CreateSessionResult.js +7 -0
  670. package/dist/api/types/Dataset.d.ts +18 -0
  671. package/dist/api/types/Dataset.js +7 -0
  672. package/dist/api/types/DatasetColumn.d.ts +5 -0
  673. package/dist/api/types/DatasetColumn.js +2 -0
  674. package/dist/api/types/DatasetColumnType.d.ts +6 -0
  675. package/dist/api/types/DatasetColumnType.js +6 -0
  676. package/dist/api/types/DatasetListResponse.d.ts +4 -0
  677. package/dist/api/types/DatasetListResponse.js +2 -0
  678. package/dist/api/types/DatasetOutput.d.ts +12 -0
  679. package/dist/api/types/DatasetOutput.js +2 -0
  680. package/dist/api/types/DatasetResponse.d.ts +4 -0
  681. package/dist/api/types/DatasetResponse.js +2 -0
  682. package/dist/api/types/DeleteDatasetResponse.d.ts +3 -0
  683. package/dist/api/types/DeleteDatasetResponse.js +2 -0
  684. package/dist/api/types/Device.d.ts +41 -0
  685. package/dist/api/types/Device.js +16 -0
  686. package/dist/api/types/DeviceAdvertisingIdReset.d.ts +6 -0
  687. package/dist/api/types/DeviceAdvertisingIdReset.js +2 -0
  688. package/dist/api/types/DeviceChangeConfirmInput.d.ts +4 -0
  689. package/dist/api/types/DeviceChangeConfirmInput.js +2 -0
  690. package/dist/api/types/DeviceChangePreview.d.ts +36 -0
  691. package/dist/api/types/DeviceChangePreview.js +7 -0
  692. package/dist/api/types/DeviceChangeResult.d.ts +9 -0
  693. package/dist/api/types/DeviceChangeResult.js +2 -0
  694. package/dist/api/types/DeviceControlError.d.ts +15 -0
  695. package/dist/api/types/DeviceControlError.js +15 -0
  696. package/dist/api/types/DeviceControlInProgress.d.ts +7 -0
  697. package/dist/api/types/DeviceControlInProgress.js +7 -0
  698. package/dist/api/types/DeviceControlState.d.ts +18 -0
  699. package/dist/api/types/DeviceControlState.js +18 -0
  700. package/dist/api/types/DeviceGeo.d.ts +37 -0
  701. package/dist/api/types/DeviceGeo.js +18 -0
  702. package/dist/api/types/DeviceIdentity.d.ts +9 -0
  703. package/dist/api/types/DeviceIdentity.js +2 -0
  704. package/dist/api/types/DeviceIdentityFields.d.ts +16 -0
  705. package/dist/api/types/DeviceIdentityFields.js +2 -0
  706. package/dist/api/types/DeviceInternetLocation.d.ts +28 -0
  707. package/dist/api/types/DeviceInternetLocation.js +16 -0
  708. package/dist/api/types/DeviceLanguage.d.ts +8 -0
  709. package/dist/api/types/DeviceLanguage.js +2 -0
  710. package/dist/api/types/DeviceOccupancy.d.ts +39 -0
  711. package/dist/api/types/DeviceOccupancy.js +2 -0
  712. package/dist/api/types/DeviceRemoveResult.d.ts +8 -0
  713. package/dist/api/types/DeviceRemoveResult.js +2 -0
  714. package/dist/api/types/DeviceReset.d.ts +35 -0
  715. package/dist/api/types/DeviceReset.js +20 -0
  716. package/dist/api/types/DeviceState.d.ts +21 -0
  717. package/dist/api/types/DeviceState.js +2 -0
  718. package/dist/api/types/DeviceStaticIp.d.ts +18 -0
  719. package/dist/api/types/DeviceStaticIp.js +10 -0
  720. package/dist/api/types/DeviceStaticIpStatus.d.ts +17 -0
  721. package/dist/api/types/DeviceStaticIpStatus.js +10 -0
  722. package/dist/api/types/EmailAddress.d.ts +11 -0
  723. package/dist/api/types/EmailAddress.js +2 -0
  724. package/dist/api/types/EmailAddressListResponse.d.ts +4 -0
  725. package/dist/api/types/EmailAddressListResponse.js +2 -0
  726. package/dist/api/types/EmailMessage.d.ts +15 -0
  727. package/dist/api/types/EmailMessage.js +2 -0
  728. package/dist/api/types/EmailMessageListResponse.d.ts +6 -0
  729. package/dist/api/types/EmailMessageListResponse.js +2 -0
  730. package/dist/api/types/EmptyChainStepParams.d.ts +6 -0
  731. package/dist/api/types/EmptyChainStepParams.js +2 -0
  732. package/dist/api/types/EmptyVerbInput.d.ts +9 -0
  733. package/dist/api/types/EmptyVerbInput.js +2 -0
  734. package/dist/api/types/ErrorResponse.d.ts +4 -0
  735. package/dist/api/types/ErrorResponse.js +2 -0
  736. package/dist/api/types/HistoryPolicy.d.ts +17 -0
  737. package/dist/api/types/HistoryPolicy.js +2 -0
  738. package/dist/api/types/HomeChainStep.d.ts +5 -0
  739. package/dist/api/types/HomeChainStep.js +2 -0
  740. package/dist/api/types/IceServer.d.ts +8 -0
  741. package/dist/api/types/IceServer.js +2 -0
  742. package/dist/api/types/IceServerIssuance.d.ts +13 -0
  743. package/dist/api/types/IceServerIssuance.js +2 -0
  744. package/dist/api/types/InboxAddressAddResult.d.ts +18 -0
  745. package/dist/api/types/InboxAddressAddResult.js +2 -0
  746. package/dist/api/types/InboxAddressPreview.d.ts +34 -0
  747. package/dist/api/types/InboxAddressPreview.js +7 -0
  748. package/dist/api/types/InboxAddressRemoveResult.d.ts +13 -0
  749. package/dist/api/types/InboxAddressRemoveResult.js +2 -0
  750. package/dist/api/types/KeyChainStep.d.ts +5 -0
  751. package/dist/api/types/KeyChainStep.js +2 -0
  752. package/dist/api/types/KeyChainStepParams.d.ts +3 -0
  753. package/dist/api/types/KeyChainStepParams.js +2 -0
  754. package/dist/api/types/LegacySession.d.ts +21 -0
  755. package/dist/api/types/LegacySession.js +11 -0
  756. package/dist/api/types/ModelKey.d.ts +14 -0
  757. package/dist/api/types/ModelKey.js +8 -0
  758. package/dist/api/types/NotificationApp.d.ts +6 -0
  759. package/dist/api/types/NotificationApp.js +2 -0
  760. package/dist/api/types/NotificationFeedItem.d.ts +34 -0
  761. package/dist/api/types/NotificationFeedItem.js +2 -0
  762. package/dist/api/types/NotificationRule.d.ts +41 -0
  763. package/dist/api/types/NotificationRule.js +12 -0
  764. package/dist/api/types/NotificationSettings.d.ts +29 -0
  765. package/dist/api/types/NotificationSettings.js +2 -0
  766. package/dist/api/types/PhoneNumber.d.ts +34 -0
  767. package/dist/api/types/PhoneNumber.js +18 -0
  768. package/dist/api/types/PhoneNumberListResponse.d.ts +4 -0
  769. package/dist/api/types/PhoneNumberListResponse.js +2 -0
  770. package/dist/api/types/PhoneNumberMessage.d.ts +9 -0
  771. package/dist/api/types/PhoneNumberMessage.js +2 -0
  772. package/dist/api/types/PhoneNumberMessageListResponse.d.ts +6 -0
  773. package/dist/api/types/PhoneNumberMessageListResponse.js +2 -0
  774. package/dist/api/types/PhoneNumberResponse.d.ts +4 -0
  775. package/dist/api/types/PhoneNumberResponse.js +2 -0
  776. package/dist/api/types/RecentChainStep.d.ts +5 -0
  777. package/dist/api/types/RecentChainStep.js +2 -0
  778. package/dist/api/types/RecordingFinalizationStatus.d.ts +11 -0
  779. package/dist/api/types/RecordingFinalizationStatus.js +11 -0
  780. package/dist/api/types/RetargetQueuedTurnsResult.d.ts +10 -0
  781. package/dist/api/types/RetargetQueuedTurnsResult.js +2 -0
  782. package/dist/api/types/ScreenshotChainStep.d.ts +5 -0
  783. package/dist/api/types/ScreenshotChainStep.js +2 -0
  784. package/dist/api/types/SecretTag.d.ts +6 -0
  785. package/dist/api/types/SecretTag.js +2 -0
  786. package/dist/api/types/SessionArtifacts.d.ts +29 -0
  787. package/dist/api/types/SessionArtifacts.js +2 -0
  788. package/dist/api/types/SessionDetail.d.ts +15 -0
  789. package/dist/api/types/SessionDetail.js +2 -0
  790. package/dist/api/types/SessionEvent.d.ts +10 -0
  791. package/dist/api/types/SessionEvent.js +2 -0
  792. package/dist/api/types/SessionRecording.d.ts +20 -0
  793. package/dist/api/types/SessionRecording.js +9 -0
  794. package/dist/api/types/SessionRecordingResponse.d.ts +8 -0
  795. package/dist/api/types/SessionRecordingResponse.js +2 -0
  796. package/dist/api/types/SessionRecordingSegment.d.ts +11 -0
  797. package/dist/api/types/SessionRecordingSegment.js +2 -0
  798. package/dist/api/types/SessionReplayFrame.d.ts +24 -0
  799. package/dist/api/types/SessionReplayFrame.js +10 -0
  800. package/dist/api/types/SessionReplayResponse.d.ts +4 -0
  801. package/dist/api/types/SessionReplayResponse.js +2 -0
  802. package/dist/api/types/SessionStatusV2.d.ts +11 -0
  803. package/dist/api/types/SessionStatusV2.js +11 -0
  804. package/dist/api/types/SessionStatusView.d.ts +9 -0
  805. package/dist/api/types/SessionStatusView.js +2 -0
  806. package/dist/api/types/SessionV2.d.ts +42 -0
  807. package/dist/api/types/SessionV2.js +2 -0
  808. package/dist/api/types/ShellResult.d.ts +6 -0
  809. package/dist/api/types/ShellResult.js +2 -0
  810. package/dist/api/types/Skill.d.ts +17 -0
  811. package/dist/api/types/Skill.js +2 -0
  812. package/dist/api/types/StartAppChainStep.d.ts +5 -0
  813. package/dist/api/types/StartAppChainStep.js +2 -0
  814. package/dist/api/types/StartAppChainStepParams.d.ts +12 -0
  815. package/dist/api/types/StartAppChainStepParams.js +2 -0
  816. package/dist/api/types/StopAppChainStep.d.ts +5 -0
  817. package/dist/api/types/StopAppChainStep.js +2 -0
  818. package/dist/api/types/StopAppChainStepParams.d.ts +7 -0
  819. package/dist/api/types/StopAppChainStepParams.js +2 -0
  820. package/dist/api/types/StopSessionResult.d.ts +7 -0
  821. package/dist/api/types/StopSessionResult.js +2 -0
  822. package/dist/api/types/StreamCommandResult.d.ts +10 -0
  823. package/dist/api/types/StreamCommandResult.js +2 -0
  824. package/dist/api/types/StreamSignalEvent.d.ts +23 -0
  825. package/dist/api/types/StreamSignalEvent.js +12 -0
  826. package/dist/api/types/StreamStartInput.d.ts +12 -0
  827. package/dist/api/types/StreamStartInput.js +2 -0
  828. package/dist/api/types/StreamViewerInput.d.ts +6 -0
  829. package/dist/api/types/StreamViewerInput.js +2 -0
  830. package/dist/api/types/SwipeChainStep.d.ts +5 -0
  831. package/dist/api/types/SwipeChainStep.js +2 -0
  832. package/dist/api/types/SwipeChainStepParams.d.ts +8 -0
  833. package/dist/api/types/SwipeChainStepParams.js +2 -0
  834. package/dist/api/types/TapChainStep.d.ts +5 -0
  835. package/dist/api/types/TapChainStep.js +2 -0
  836. package/dist/api/types/TapChainStepParams.d.ts +13 -0
  837. package/dist/api/types/TapChainStepParams.js +2 -0
  838. package/dist/api/types/TapResult.d.ts +12 -0
  839. package/dist/api/types/TapResult.js +2 -0
  840. package/dist/api/types/TypeChainStep.d.ts +5 -0
  841. package/dist/api/types/TypeChainStep.js +2 -0
  842. package/dist/api/types/TypeChainStepParams.d.ts +5 -0
  843. package/dist/api/types/TypeChainStepParams.js +2 -0
  844. package/dist/api/types/ValidationErrorResponse.d.ts +4 -0
  845. package/dist/api/types/ValidationErrorResponse.js +2 -0
  846. package/dist/api/types/VerbResult.d.ts +12 -0
  847. package/dist/api/types/VerbResult.js +2 -0
  848. package/dist/api/types/VerbResultWithOptionalCapture.d.ts +4 -0
  849. package/dist/api/types/VerbResultWithOptionalCapture.js +2 -0
  850. package/dist/api/types/WaitChainStep.d.ts +5 -0
  851. package/dist/api/types/WaitChainStep.js +2 -0
  852. package/dist/api/types/WaitChainStepParams.d.ts +11 -0
  853. package/dist/api/types/WaitChainStepParams.js +2 -0
  854. package/dist/api/types/Workspace.d.ts +7 -0
  855. package/dist/api/types/Workspace.js +2 -0
  856. package/dist/api/types/WorkspaceFile.d.ts +20 -0
  857. package/dist/api/types/WorkspaceFile.js +8 -0
  858. package/dist/api/types/WorkspaceFileDownload.d.ts +8 -0
  859. package/dist/api/types/WorkspaceFileDownload.js +2 -0
  860. package/dist/api/types/WorkspaceScopeInput.d.ts +4 -0
  861. package/dist/api/types/WorkspaceScopeInput.js +2 -0
  862. package/dist/api/types/WorkspaceSecret.d.ts +26 -0
  863. package/dist/api/types/WorkspaceSecret.js +2 -0
  864. package/dist/api/types/WorkspaceSecretListResponse.d.ts +4 -0
  865. package/dist/api/types/WorkspaceSecretListResponse.js +2 -0
  866. package/dist/api/types/index.d.ts +133 -0
  867. package/dist/api/types/index.js +133 -0
  868. package/dist/auth/HeaderAuthProvider.d.ts +20 -0
  869. package/dist/auth/HeaderAuthProvider.js +33 -0
  870. package/dist/auth/index.d.ts +1 -0
  871. package/dist/auth/index.js +1 -0
  872. package/dist/core/auth/AuthProvider.d.ts +8 -0
  873. package/dist/core/auth/AuthProvider.js +6 -0
  874. package/dist/core/auth/AuthRequest.d.ts +9 -0
  875. package/dist/core/auth/AuthRequest.js +1 -0
  876. package/dist/core/auth/BasicAuth.d.ts +8 -0
  877. package/dist/core/auth/BasicAuth.js +29 -0
  878. package/dist/core/auth/BearerToken.d.ts +7 -0
  879. package/dist/core/auth/BearerToken.js +13 -0
  880. package/dist/core/auth/NoOpAuthProvider.d.ts +5 -0
  881. package/dist/core/auth/NoOpAuthProvider.js +5 -0
  882. package/dist/core/auth/index.d.ts +5 -0
  883. package/dist/core/auth/index.js +4 -0
  884. package/dist/core/base64.d.ts +2 -0
  885. package/dist/core/base64.js +22 -0
  886. package/dist/core/exports.d.ts +1 -0
  887. package/dist/core/exports.js +1 -0
  888. package/dist/core/fetcher/APIResponse.d.ts +20 -0
  889. package/dist/core/fetcher/APIResponse.js +1 -0
  890. package/dist/core/fetcher/BinaryResponse.d.ts +19 -0
  891. package/dist/core/fetcher/BinaryResponse.js +14 -0
  892. package/dist/core/fetcher/EndpointMetadata.d.ts +13 -0
  893. package/dist/core/fetcher/EndpointMetadata.js +1 -0
  894. package/dist/core/fetcher/EndpointSupplier.d.ts +12 -0
  895. package/dist/core/fetcher/EndpointSupplier.js +10 -0
  896. package/dist/core/fetcher/Fetcher.d.ts +56 -0
  897. package/dist/core/fetcher/Fetcher.js +223 -0
  898. package/dist/core/fetcher/Headers.d.ts +2 -0
  899. package/dist/core/fetcher/Headers.js +83 -0
  900. package/dist/core/fetcher/HttpResponsePromise.d.ts +58 -0
  901. package/dist/core/fetcher/HttpResponsePromise.js +90 -0
  902. package/dist/core/fetcher/RawResponse.d.ts +29 -0
  903. package/dist/core/fetcher/RawResponse.js +40 -0
  904. package/dist/core/fetcher/Supplier.d.ts +4 -0
  905. package/dist/core/fetcher/Supplier.js +10 -0
  906. package/dist/core/fetcher/createRequestUrl.d.ts +1 -0
  907. package/dist/core/fetcher/createRequestUrl.js +5 -0
  908. package/dist/core/fetcher/getErrorResponseBody.d.ts +1 -0
  909. package/dist/core/fetcher/getErrorResponseBody.js +30 -0
  910. package/dist/core/fetcher/getFetchFn.d.ts +1 -0
  911. package/dist/core/fetcher/getFetchFn.js +3 -0
  912. package/dist/core/fetcher/getHeader.d.ts +1 -0
  913. package/dist/core/fetcher/getHeader.js +8 -0
  914. package/dist/core/fetcher/getRequestBody.d.ts +7 -0
  915. package/dist/core/fetcher/getRequestBody.js +13 -0
  916. package/dist/core/fetcher/getResponseBody.d.ts +1 -0
  917. package/dist/core/fetcher/getResponseBody.js +66 -0
  918. package/dist/core/fetcher/index.d.ts +13 -0
  919. package/dist/core/fetcher/index.js +7 -0
  920. package/dist/core/fetcher/makePassthroughRequest.d.ts +49 -0
  921. package/dist/core/fetcher/makePassthroughRequest.js +144 -0
  922. package/dist/core/fetcher/makeRequest.d.ts +6 -0
  923. package/dist/core/fetcher/makeRequest.js +57 -0
  924. package/dist/core/fetcher/redactUrl.d.ts +2 -0
  925. package/dist/core/fetcher/redactUrl.js +84 -0
  926. package/dist/core/fetcher/requestWithRetries.d.ts +1 -0
  927. package/dist/core/fetcher/requestWithRetries.js +56 -0
  928. package/dist/core/fetcher/signals.d.ts +5 -0
  929. package/dist/core/fetcher/signals.js +29 -0
  930. package/dist/core/headers.d.ts +2 -0
  931. package/dist/core/headers.js +27 -0
  932. package/dist/core/index.d.ts +7 -0
  933. package/dist/core/index.js +7 -0
  934. package/dist/core/json.d.ts +15 -0
  935. package/dist/core/json.js +19 -0
  936. package/dist/core/logging/exports.d.ts +18 -0
  937. package/dist/core/logging/exports.js +9 -0
  938. package/dist/core/logging/index.d.ts +1 -0
  939. package/dist/core/logging/index.js +1 -0
  940. package/dist/core/logging/logger.d.ts +126 -0
  941. package/dist/core/logging/logger.js +140 -0
  942. package/dist/core/requestBody.d.ts +12 -0
  943. package/dist/core/requestBody.js +23 -0
  944. package/dist/core/runtime/index.d.ts +1 -0
  945. package/dist/core/runtime/index.js +1 -0
  946. package/dist/core/runtime/runtime.d.ts +28 -0
  947. package/dist/core/runtime/runtime.js +171 -0
  948. package/dist/core/stream/Stream.d.ts +100 -0
  949. package/dist/core/stream/Stream.js +428 -0
  950. package/dist/core/stream/index.d.ts +2 -0
  951. package/dist/core/stream/index.js +1 -0
  952. package/dist/core/url/QueryStringBuilder.d.ts +47 -0
  953. package/dist/core/url/QueryStringBuilder.js +78 -0
  954. package/dist/core/url/encodePathParam.d.ts +1 -0
  955. package/dist/core/url/encodePathParam.js +18 -0
  956. package/dist/core/url/index.d.ts +4 -0
  957. package/dist/core/url/index.js +4 -0
  958. package/dist/core/url/join.d.ts +1 -0
  959. package/dist/core/url/join.js +65 -0
  960. package/dist/core/url/qs.d.ts +7 -0
  961. package/dist/core/url/qs.js +76 -0
  962. package/dist/environments.d.ts +4 -0
  963. package/dist/environments.js +4 -0
  964. package/dist/errors/LusorError.d.ts +15 -0
  965. package/dist/errors/LusorError.js +38 -0
  966. package/dist/errors/LusorTimeoutError.d.ts +6 -0
  967. package/dist/errors/LusorTimeoutError.js +15 -0
  968. package/dist/errors/handleNonStatusCodeError.d.ts +2 -0
  969. package/dist/errors/handleNonStatusCodeError.js +32 -0
  970. package/dist/errors/index.d.ts +2 -0
  971. package/dist/errors/index.js +2 -0
  972. package/dist/exports.d.ts +1 -0
  973. package/dist/exports.js +1 -0
  974. package/dist/index.d.ts +6 -0
  975. package/dist/index.js +5 -0
  976. package/package.json +54 -4
@@ -0,0 +1,2576 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import { normalizeClientOptionsWithAuth } from "../../../../BaseClient.js";
3
+ import * as core from "../../../../core/index.js";
4
+ import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js";
5
+ import { mergeAdditionalBodyParameters } from "../../../../core/requestBody.js";
6
+ import * as environments from "../../../../environments.js";
7
+ import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js";
8
+ import * as errors from "../../../../errors/index.js";
9
+ import * as Lusor from "../../../index.js";
10
+ import { SessionsClient } from "../resources/sessions/client/Client.js";
11
+ /**
12
+ * The phones in your workspace, and reads of their current screen and
13
+ * UI tree.
14
+ */
15
+ export class DevicesClient {
16
+ _options;
17
+ _sessions;
18
+ constructor(options = {}) {
19
+ this._options = normalizeClientOptionsWithAuth(options);
20
+ }
21
+ get sessions() {
22
+ return (this._sessions ??= new SessionsClient(this._options));
23
+ }
24
+ /**
25
+ * Returns every phone in the API key's workspace, including offline
26
+ * ones. The same list as `GET /v1/workspaces/{workspaceId}/devices`,
27
+ * without needing the workspace id in the path.
28
+ *
29
+ * @param {Lusor.ListDevicesRequest} request
30
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
31
+ *
32
+ * @throws {@link Lusor.UnauthorizedError}
33
+ * @throws {@link errors.LusorError}
34
+ * @throws {@link errors.LusorTimeoutError}
35
+ *
36
+ * @example
37
+ * await client.devices.list()
38
+ */
39
+ list(request = {}, requestOptions) {
40
+ return core.HttpResponsePromise.fromPromise(this.__list(request, requestOptions));
41
+ }
42
+ async __list(request = {}, requestOptions) {
43
+ const { workspaceId } = request;
44
+ const _queryParams = {
45
+ workspaceId,
46
+ };
47
+ const _authRequest = await this._options.authProvider.getAuthRequest();
48
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
49
+ const _response = await core.fetcher({
50
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
51
+ (await core.Supplier.get(this._options.environment)) ??
52
+ environments.LusorEnvironment.Production, "v1/devices"),
53
+ method: "GET",
54
+ headers: _headers,
55
+ queryString: core.url
56
+ .queryBuilder()
57
+ .addMany(_queryParams)
58
+ .mergeAdditional(requestOptions?.queryParams)
59
+ .build(),
60
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
61
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
62
+ abortSignal: requestOptions?.abortSignal,
63
+ fetchFn: this._options?.fetch,
64
+ logging: this._options.logging,
65
+ });
66
+ if (_response.ok) {
67
+ return { data: _response.body, rawResponse: _response.rawResponse };
68
+ }
69
+ if (_response.error.reason === "status-code") {
70
+ switch (_response.error.statusCode) {
71
+ case 401:
72
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
73
+ default:
74
+ throw new errors.LusorError({
75
+ statusCode: _response.error.statusCode,
76
+ body: _response.error.body,
77
+ rawResponse: _response.rawResponse,
78
+ });
79
+ }
80
+ }
81
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/devices");
82
+ }
83
+ /**
84
+ * @param {Lusor.ListInWorkspaceDevicesRequest} request
85
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
86
+ *
87
+ * @throws {@link Lusor.UnauthorizedError}
88
+ * @throws {@link Lusor.NotFoundError}
89
+ * @throws {@link errors.LusorError}
90
+ * @throws {@link errors.LusorTimeoutError}
91
+ *
92
+ * @example
93
+ * await client.devices.listInWorkspace({
94
+ * workspaceId: "workspaceId"
95
+ * })
96
+ */
97
+ listInWorkspace(request, requestOptions) {
98
+ return core.HttpResponsePromise.fromPromise(this.__listInWorkspace(request, requestOptions));
99
+ }
100
+ async __listInWorkspace(request, requestOptions) {
101
+ const { workspaceId } = request;
102
+ const _authRequest = await this._options.authProvider.getAuthRequest();
103
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
104
+ const _response = await core.fetcher({
105
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
106
+ (await core.Supplier.get(this._options.environment)) ??
107
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices`),
108
+ method: "GET",
109
+ headers: _headers,
110
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
111
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
112
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
113
+ abortSignal: requestOptions?.abortSignal,
114
+ fetchFn: this._options?.fetch,
115
+ logging: this._options.logging,
116
+ });
117
+ if (_response.ok) {
118
+ return { data: _response.body, rawResponse: _response.rawResponse };
119
+ }
120
+ if (_response.error.reason === "status-code") {
121
+ switch (_response.error.statusCode) {
122
+ case 401:
123
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
124
+ case 404:
125
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
126
+ default:
127
+ throw new errors.LusorError({
128
+ statusCode: _response.error.statusCode,
129
+ body: _response.error.body,
130
+ rawResponse: _response.rawResponse,
131
+ });
132
+ }
133
+ }
134
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices");
135
+ }
136
+ /**
137
+ * Quotes `quantity` more Lusor Phones (default 1) on the workspace's
138
+ * Phone plan, as one change: the
139
+ * prorated amount charged today for the rest of the current period,
140
+ * and the next full invoice. Nothing is charged. The quote expires
141
+ * after 10 minutes; confirm it with `POST /devices/deploy`.
142
+ *
143
+ * Phones are deployed into the tenant's Default workspace only; any
144
+ * other workspace answers 409 `default_workspace_only`.
145
+ *
146
+ * **Retries:** safe without an `Idempotency-Key`: a preview only quotes, it changes nothing.
147
+ *
148
+ * @param {Lusor.DeviceDeployPreviewInput} request
149
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
150
+ *
151
+ * @throws {@link Lusor.BadRequestError}
152
+ * @throws {@link Lusor.UnauthorizedError}
153
+ * @throws {@link Lusor.PaymentRequiredError}
154
+ * @throws {@link Lusor.ForbiddenError}
155
+ * @throws {@link Lusor.NotFoundError}
156
+ * @throws {@link Lusor.ConflictError}
157
+ * @throws {@link Lusor.ServiceUnavailableError}
158
+ * @throws {@link errors.LusorError}
159
+ * @throws {@link errors.LusorTimeoutError}
160
+ *
161
+ * @example
162
+ * await client.devices.previewDeploy({
163
+ * workspaceId: "workspaceId"
164
+ * })
165
+ */
166
+ previewDeploy(request, requestOptions) {
167
+ return core.HttpResponsePromise.fromPromise(this.__previewDeploy(request, requestOptions));
168
+ }
169
+ async __previewDeploy(request, requestOptions) {
170
+ const { workspaceId, ..._body } = request;
171
+ const _authRequest = await this._options.authProvider.getAuthRequest();
172
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
173
+ const _response = await core.fetcher({
174
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
175
+ (await core.Supplier.get(this._options.environment)) ??
176
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/deploy/preview`),
177
+ method: "POST",
178
+ headers: _headers,
179
+ contentType: "application/json",
180
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
181
+ requestType: "json",
182
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
183
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
184
+ maxRetries: 0,
185
+ abortSignal: requestOptions?.abortSignal,
186
+ fetchFn: this._options?.fetch,
187
+ logging: this._options.logging,
188
+ });
189
+ if (_response.ok) {
190
+ return { data: _response.body, rawResponse: _response.rawResponse };
191
+ }
192
+ if (_response.error.reason === "status-code") {
193
+ switch (_response.error.statusCode) {
194
+ case 400:
195
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
196
+ case 401:
197
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
198
+ case 402:
199
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
200
+ case 403:
201
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
202
+ case 404:
203
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
204
+ case 409:
205
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
206
+ case 503:
207
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
208
+ default:
209
+ throw new errors.LusorError({
210
+ statusCode: _response.error.statusCode,
211
+ body: _response.error.body,
212
+ rawResponse: _response.rawResponse,
213
+ });
214
+ }
215
+ }
216
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/deploy/preview");
217
+ }
218
+ /**
219
+ * Confirms a deploy quote: the Phone plan quantity rises by the quoted
220
+ * number of phones and the quoted amount is charged to the saved card
221
+ * now. If the payment does not go through, the quantity stays
222
+ * unchanged, `paymentPending` is true and no phone is deployed;
223
+ * complete the payment in billing management.
224
+ *
225
+ * Each new phone appears in `GET /devices` once the payment is
226
+ * confirmed (seconds), and is ready to use once it has deployed
227
+ * (minutes).
228
+ *
229
+ * **Retries:** safe without an `Idempotency-Key`: a confirmed `previewId` replays its stored receipt, so it never charges or deploys twice.
230
+ *
231
+ * @param {Lusor.DeployDevicesRequest} request
232
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
233
+ *
234
+ * @throws {@link Lusor.BadRequestError}
235
+ * @throws {@link Lusor.UnauthorizedError}
236
+ * @throws {@link Lusor.PaymentRequiredError}
237
+ * @throws {@link Lusor.ForbiddenError}
238
+ * @throws {@link Lusor.NotFoundError}
239
+ * @throws {@link Lusor.ConflictError}
240
+ * @throws {@link Lusor.ServiceUnavailableError}
241
+ * @throws {@link errors.LusorError}
242
+ * @throws {@link errors.LusorTimeoutError}
243
+ *
244
+ * @example
245
+ * await client.devices.deploy({
246
+ * workspaceId: "workspaceId",
247
+ * body: {
248
+ * previewId: "previewId"
249
+ * }
250
+ * })
251
+ */
252
+ deploy(request, requestOptions) {
253
+ return core.HttpResponsePromise.fromPromise(this.__deploy(request, requestOptions));
254
+ }
255
+ async __deploy(request, requestOptions) {
256
+ const { workspaceId, body: _body } = request;
257
+ const _authRequest = await this._options.authProvider.getAuthRequest();
258
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
259
+ const _response = await core.fetcher({
260
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
261
+ (await core.Supplier.get(this._options.environment)) ??
262
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/deploy`),
263
+ method: "POST",
264
+ headers: _headers,
265
+ contentType: "application/json",
266
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
267
+ requestType: "json",
268
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
269
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
270
+ maxRetries: 0,
271
+ abortSignal: requestOptions?.abortSignal,
272
+ fetchFn: this._options?.fetch,
273
+ logging: this._options.logging,
274
+ });
275
+ if (_response.ok) {
276
+ return { data: _response.body, rawResponse: _response.rawResponse };
277
+ }
278
+ if (_response.error.reason === "status-code") {
279
+ switch (_response.error.statusCode) {
280
+ case 400:
281
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
282
+ case 401:
283
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
284
+ case 402:
285
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
286
+ case 403:
287
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
288
+ case 404:
289
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
290
+ case 409:
291
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
292
+ case 503:
293
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
294
+ default:
295
+ throw new errors.LusorError({
296
+ statusCode: _response.error.statusCode,
297
+ body: _response.error.body,
298
+ rawResponse: _response.rawResponse,
299
+ });
300
+ }
301
+ }
302
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/deploy");
303
+ }
304
+ /**
305
+ * Quotes removing this Lusor Phone from the Phone plan: the plan
306
+ * quantity falls by one and the unused rest of the current period is
307
+ * credited to the account balance (applied to the next invoice).
308
+ * Nothing changes yet. The quote expires after 10 minutes; confirm it
309
+ * with `POST /devices/{deviceId}/remove`.
310
+ *
311
+ * Refused with 409 `device_busy` while a session is running on the
312
+ * phone, and 409 `last_phone` for the plan's last phone (cancel the
313
+ * plan in billing management instead).
314
+ *
315
+ * **Retries:** safe without an `Idempotency-Key`: a preview only quotes, it changes nothing.
316
+ *
317
+ * @param {Lusor.PreviewRemoveDevicesRequest} request
318
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
319
+ *
320
+ * @throws {@link Lusor.BadRequestError}
321
+ * @throws {@link Lusor.UnauthorizedError}
322
+ * @throws {@link Lusor.ForbiddenError}
323
+ * @throws {@link Lusor.NotFoundError}
324
+ * @throws {@link Lusor.ConflictError}
325
+ * @throws {@link Lusor.ServiceUnavailableError}
326
+ * @throws {@link errors.LusorError}
327
+ * @throws {@link errors.LusorTimeoutError}
328
+ *
329
+ * @example
330
+ * await client.devices.previewRemove({
331
+ * workspaceId: "workspaceId",
332
+ * deviceId: "deviceId",
333
+ * body: {
334
+ * "key": "value"
335
+ * }
336
+ * })
337
+ */
338
+ previewRemove(request, requestOptions) {
339
+ return core.HttpResponsePromise.fromPromise(this.__previewRemove(request, requestOptions));
340
+ }
341
+ async __previewRemove(request, requestOptions) {
342
+ const { workspaceId, deviceId, body: _body } = request;
343
+ const _authRequest = await this._options.authProvider.getAuthRequest();
344
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
345
+ const _response = await core.fetcher({
346
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
347
+ (await core.Supplier.get(this._options.environment)) ??
348
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/remove/preview`),
349
+ method: "POST",
350
+ headers: _headers,
351
+ contentType: "application/json",
352
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
353
+ requestType: "json",
354
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
355
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
356
+ maxRetries: 0,
357
+ abortSignal: requestOptions?.abortSignal,
358
+ fetchFn: this._options?.fetch,
359
+ logging: this._options.logging,
360
+ });
361
+ if (_response.ok) {
362
+ return { data: _response.body, rawResponse: _response.rawResponse };
363
+ }
364
+ if (_response.error.reason === "status-code") {
365
+ switch (_response.error.statusCode) {
366
+ case 400:
367
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
368
+ case 401:
369
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
370
+ case 403:
371
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
372
+ case 404:
373
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
374
+ case 409:
375
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
376
+ case 503:
377
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
378
+ default:
379
+ throw new errors.LusorError({
380
+ statusCode: _response.error.statusCode,
381
+ body: _response.error.body,
382
+ rawResponse: _response.rawResponse,
383
+ });
384
+ }
385
+ }
386
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/remove/preview");
387
+ }
388
+ /**
389
+ * Confirms a removal quote. This phone, and no other, stops accepting
390
+ * runs at once; the plan quantity falls by one, and the phone is then
391
+ * wiped and released. Its data cannot be recovered. A session started
392
+ * on it since the quote refuses the removal with 409 `device_busy`.
393
+ *
394
+ * **Retries:** safe without an `Idempotency-Key`: a confirmed `previewId` replays its stored receipt, so it never removes twice.
395
+ *
396
+ * @param {Lusor.RemoveDevicesRequest} request
397
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
398
+ *
399
+ * @throws {@link Lusor.BadRequestError}
400
+ * @throws {@link Lusor.UnauthorizedError}
401
+ * @throws {@link Lusor.ForbiddenError}
402
+ * @throws {@link Lusor.NotFoundError}
403
+ * @throws {@link Lusor.ConflictError}
404
+ * @throws {@link Lusor.ServiceUnavailableError}
405
+ * @throws {@link errors.LusorError}
406
+ * @throws {@link errors.LusorTimeoutError}
407
+ *
408
+ * @example
409
+ * await client.devices.remove({
410
+ * workspaceId: "workspaceId",
411
+ * deviceId: "deviceId",
412
+ * body: {
413
+ * previewId: "previewId"
414
+ * }
415
+ * })
416
+ */
417
+ remove(request, requestOptions) {
418
+ return core.HttpResponsePromise.fromPromise(this.__remove(request, requestOptions));
419
+ }
420
+ async __remove(request, requestOptions) {
421
+ const { workspaceId, deviceId, body: _body } = request;
422
+ const _authRequest = await this._options.authProvider.getAuthRequest();
423
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
424
+ const _response = await core.fetcher({
425
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
426
+ (await core.Supplier.get(this._options.environment)) ??
427
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/remove`),
428
+ method: "POST",
429
+ headers: _headers,
430
+ contentType: "application/json",
431
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
432
+ requestType: "json",
433
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
434
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
435
+ maxRetries: 0,
436
+ abortSignal: requestOptions?.abortSignal,
437
+ fetchFn: this._options?.fetch,
438
+ logging: this._options.logging,
439
+ });
440
+ if (_response.ok) {
441
+ return { data: _response.body, rawResponse: _response.rawResponse };
442
+ }
443
+ if (_response.error.reason === "status-code") {
444
+ switch (_response.error.statusCode) {
445
+ case 400:
446
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
447
+ case 401:
448
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
449
+ case 403:
450
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
451
+ case 404:
452
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
453
+ case 409:
454
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
455
+ case 503:
456
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
457
+ default:
458
+ throw new errors.LusorError({
459
+ statusCode: _response.error.statusCode,
460
+ body: _response.error.body,
461
+ rawResponse: _response.rawResponse,
462
+ });
463
+ }
464
+ }
465
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/remove");
466
+ }
467
+ /**
468
+ * The GPS location and timezone the phone reports to apps. In `auto`
469
+ * mode both follow the phone's Internet exit IP and are re-applied
470
+ * after every IP change. In `override` mode they are the values set
471
+ * with `PUT /geo`, and `apply.state` says whether the phone has them
472
+ * yet (`pending`, `applied`, `held` while the phone restarts or
473
+ * resets, or `failed`).
474
+ *
475
+ * @param {Lusor.GetGeoDevicesRequest} request
476
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
477
+ *
478
+ * @throws {@link Lusor.UnauthorizedError}
479
+ * @throws {@link Lusor.NotFoundError}
480
+ * @throws {@link Lusor.ConflictError}
481
+ * @throws {@link Lusor.BadGatewayError}
482
+ * @throws {@link errors.LusorError}
483
+ * @throws {@link errors.LusorTimeoutError}
484
+ *
485
+ * @example
486
+ * await client.devices.getGeo({
487
+ * workspaceId: "workspaceId",
488
+ * deviceId: "deviceId"
489
+ * })
490
+ */
491
+ getGeo(request, requestOptions) {
492
+ return core.HttpResponsePromise.fromPromise(this.__getGeo(request, requestOptions));
493
+ }
494
+ async __getGeo(request, requestOptions) {
495
+ const { workspaceId, deviceId } = request;
496
+ const _authRequest = await this._options.authProvider.getAuthRequest();
497
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
498
+ const _response = await core.fetcher({
499
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
500
+ (await core.Supplier.get(this._options.environment)) ??
501
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/geo`),
502
+ method: "GET",
503
+ headers: _headers,
504
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
505
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
506
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
507
+ abortSignal: requestOptions?.abortSignal,
508
+ fetchFn: this._options?.fetch,
509
+ logging: this._options.logging,
510
+ });
511
+ if (_response.ok) {
512
+ return { data: _response.body, rawResponse: _response.rawResponse };
513
+ }
514
+ if (_response.error.reason === "status-code") {
515
+ switch (_response.error.statusCode) {
516
+ case 401:
517
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
518
+ case 404:
519
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
520
+ case 409:
521
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
522
+ case 502:
523
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
524
+ default:
525
+ throw new errors.LusorError({
526
+ statusCode: _response.error.statusCode,
527
+ body: _response.error.body,
528
+ rawResponse: _response.rawResponse,
529
+ });
530
+ }
531
+ }
532
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/geo");
533
+ }
534
+ /**
535
+ * Sets the GPS location and timezone the phone reports, replacing the
536
+ * automatic match to its Internet exit IP. The setting persists across
537
+ * restarts and IP changes until it is cleared with `DELETE /geo`, or
538
+ * until the phone is wiped (Wipe & reset) or removed. It can
539
+ * disagree with the exit IP's country or timezone; that is allowed.
540
+ *
541
+ * The change is stored at once and given to the phone in the
542
+ * background (usually within a minute); read `apply.state` with
543
+ * `GET /geo`. Allowed for an API key on its own workspace and for
544
+ * workspace admins and members.
545
+ *
546
+ * @param {Lusor.DeviceGeoInput} request
547
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
548
+ *
549
+ * @throws {@link Lusor.BadRequestError}
550
+ * @throws {@link Lusor.UnauthorizedError}
551
+ * @throws {@link Lusor.ForbiddenError}
552
+ * @throws {@link Lusor.NotFoundError}
553
+ * @throws {@link Lusor.ConflictError}
554
+ * @throws {@link Lusor.BadGatewayError}
555
+ * @throws {@link Lusor.GatewayTimeoutError}
556
+ * @throws {@link errors.LusorError}
557
+ * @throws {@link errors.LusorTimeoutError}
558
+ *
559
+ * @example
560
+ * await client.devices.setGeo({
561
+ * workspaceId: "workspaceId",
562
+ * deviceId: "deviceId",
563
+ * latitude: 1.1,
564
+ * longitude: 1.1,
565
+ * timezone: "timezone"
566
+ * })
567
+ */
568
+ setGeo(request, requestOptions) {
569
+ return core.HttpResponsePromise.fromPromise(this.__setGeo(request, requestOptions));
570
+ }
571
+ async __setGeo(request, requestOptions) {
572
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
573
+ const _authRequest = await this._options.authProvider.getAuthRequest();
574
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
575
+ const _response = await core.fetcher({
576
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
577
+ (await core.Supplier.get(this._options.environment)) ??
578
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/geo`),
579
+ method: "PUT",
580
+ headers: _headers,
581
+ contentType: "application/json",
582
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
583
+ requestType: "json",
584
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
585
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
586
+ maxRetries: 0,
587
+ abortSignal: requestOptions?.abortSignal,
588
+ fetchFn: this._options?.fetch,
589
+ logging: this._options.logging,
590
+ });
591
+ if (_response.ok) {
592
+ return { data: _response.body, rawResponse: _response.rawResponse };
593
+ }
594
+ if (_response.error.reason === "status-code") {
595
+ switch (_response.error.statusCode) {
596
+ case 400:
597
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
598
+ case 401:
599
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
600
+ case 403:
601
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
602
+ case 404:
603
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
604
+ case 409:
605
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
606
+ case 502:
607
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
608
+ case 504:
609
+ throw new Lusor.GatewayTimeoutError(_response.error.body, _response.rawResponse);
610
+ default:
611
+ throw new errors.LusorError({
612
+ statusCode: _response.error.statusCode,
613
+ body: _response.error.body,
614
+ rawResponse: _response.rawResponse,
615
+ });
616
+ }
617
+ }
618
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/v1/workspaces/{workspaceId}/devices/{deviceId}/geo");
619
+ }
620
+ /**
621
+ * Clears a location set with `PUT /geo`. The phone's GPS location and
622
+ * timezone follow its Internet exit IP again and are re-applied now.
623
+ * Clearing when nothing is set changes nothing.
624
+ *
625
+ * @param {Lusor.ClearGeoDevicesRequest} request
626
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
627
+ *
628
+ * @throws {@link Lusor.UnauthorizedError}
629
+ * @throws {@link Lusor.ForbiddenError}
630
+ * @throws {@link Lusor.NotFoundError}
631
+ * @throws {@link Lusor.ConflictError}
632
+ * @throws {@link Lusor.BadGatewayError}
633
+ * @throws {@link Lusor.GatewayTimeoutError}
634
+ * @throws {@link errors.LusorError}
635
+ * @throws {@link errors.LusorTimeoutError}
636
+ *
637
+ * @example
638
+ * await client.devices.clearGeo({
639
+ * workspaceId: "workspaceId",
640
+ * deviceId: "deviceId"
641
+ * })
642
+ */
643
+ clearGeo(request, requestOptions) {
644
+ return core.HttpResponsePromise.fromPromise(this.__clearGeo(request, requestOptions));
645
+ }
646
+ async __clearGeo(request, requestOptions) {
647
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey } = request;
648
+ const _authRequest = await this._options.authProvider.getAuthRequest();
649
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
650
+ const _response = await core.fetcher({
651
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
652
+ (await core.Supplier.get(this._options.environment)) ??
653
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/geo`),
654
+ method: "DELETE",
655
+ headers: _headers,
656
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
657
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
658
+ maxRetries: 0,
659
+ abortSignal: requestOptions?.abortSignal,
660
+ fetchFn: this._options?.fetch,
661
+ logging: this._options.logging,
662
+ });
663
+ if (_response.ok) {
664
+ return { data: _response.body, rawResponse: _response.rawResponse };
665
+ }
666
+ if (_response.error.reason === "status-code") {
667
+ switch (_response.error.statusCode) {
668
+ case 401:
669
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
670
+ case 403:
671
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
672
+ case 404:
673
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
674
+ case 409:
675
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
676
+ case 502:
677
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
678
+ case 504:
679
+ throw new Lusor.GatewayTimeoutError(_response.error.body, _response.rawResponse);
680
+ default:
681
+ throw new errors.LusorError({
682
+ statusCode: _response.error.statusCode,
683
+ body: _response.error.body,
684
+ rawResponse: _response.rawResponse,
685
+ });
686
+ }
687
+ }
688
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/v1/workspaces/{workspaceId}/devices/{deviceId}/geo");
689
+ }
690
+ /**
691
+ * `active` is the run currently holding the phone (null when idle;
692
+ * `agentId` is null for a run started without an agent). `queue` lists
693
+ * agent turns waiting for the phone, oldest first. `assigned` lists the
694
+ * agents attached to the phone.
695
+ *
696
+ * @param {Lusor.OccupancyDevicesRequest} request
697
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
698
+ *
699
+ * @throws {@link Lusor.UnauthorizedError}
700
+ * @throws {@link Lusor.NotFoundError}
701
+ * @throws {@link errors.LusorError}
702
+ * @throws {@link errors.LusorTimeoutError}
703
+ *
704
+ * @example
705
+ * await client.devices.occupancy({
706
+ * workspaceId: "workspaceId",
707
+ * deviceId: "deviceId"
708
+ * })
709
+ */
710
+ occupancy(request, requestOptions) {
711
+ return core.HttpResponsePromise.fromPromise(this.__occupancy(request, requestOptions));
712
+ }
713
+ async __occupancy(request, requestOptions) {
714
+ const { workspaceId, deviceId } = request;
715
+ const _authRequest = await this._options.authProvider.getAuthRequest();
716
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
717
+ const _response = await core.fetcher({
718
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
719
+ (await core.Supplier.get(this._options.environment)) ??
720
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/occupancy`),
721
+ method: "GET",
722
+ headers: _headers,
723
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
724
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
725
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
726
+ abortSignal: requestOptions?.abortSignal,
727
+ fetchFn: this._options?.fetch,
728
+ logging: this._options.logging,
729
+ });
730
+ if (_response.ok) {
731
+ return { data: _response.body, rawResponse: _response.rawResponse };
732
+ }
733
+ if (_response.error.reason === "status-code") {
734
+ switch (_response.error.statusCode) {
735
+ case 401:
736
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
737
+ case 404:
738
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
739
+ default:
740
+ throw new errors.LusorError({
741
+ statusCode: _response.error.statusCode,
742
+ body: _response.error.body,
743
+ rawResponse: _response.rawResponse,
744
+ });
745
+ }
746
+ }
747
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/occupancy");
748
+ }
749
+ /**
750
+ * `rotating`: the countries a phone can be bought in or moved to on the
751
+ * residential route. `persistent`: the countries a static IP is sold in.
752
+ * ISO 3166-1 alpha-2 codes, lowercase. Any other country answers 400
753
+ * `unsupported_country` at purchase and on a location change.
754
+ *
755
+ * @param {Lusor.ListInternetLocationsRequest} request
756
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
757
+ *
758
+ * @throws {@link Lusor.UnauthorizedError}
759
+ * @throws {@link Lusor.NotFoundError}
760
+ * @throws {@link errors.LusorError}
761
+ * @throws {@link errors.LusorTimeoutError}
762
+ *
763
+ * @example
764
+ * await client.devices.listInternetLocations({
765
+ * workspaceId: "workspaceId"
766
+ * })
767
+ */
768
+ listInternetLocations(request, requestOptions) {
769
+ return core.HttpResponsePromise.fromPromise(this.__listInternetLocations(request, requestOptions));
770
+ }
771
+ async __listInternetLocations(request, requestOptions) {
772
+ const { workspaceId } = request;
773
+ const _authRequest = await this._options.authProvider.getAuthRequest();
774
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
775
+ const _response = await core.fetcher({
776
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
777
+ (await core.Supplier.get(this._options.environment)) ??
778
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/internet/locations`),
779
+ method: "GET",
780
+ headers: _headers,
781
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
782
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
783
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
784
+ abortSignal: requestOptions?.abortSignal,
785
+ fetchFn: this._options?.fetch,
786
+ logging: this._options.logging,
787
+ });
788
+ if (_response.ok) {
789
+ return { data: _response.body, rawResponse: _response.rawResponse };
790
+ }
791
+ if (_response.error.reason === "status-code") {
792
+ switch (_response.error.statusCode) {
793
+ case 401:
794
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
795
+ case 404:
796
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
797
+ default:
798
+ throw new errors.LusorError({
799
+ statusCode: _response.error.statusCode,
800
+ body: _response.error.body,
801
+ rawResponse: _response.rawResponse,
802
+ });
803
+ }
804
+ }
805
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/internet/locations");
806
+ }
807
+ /**
808
+ * The country the phone's Internet traffic exits from, and whether the
809
+ * phone is on its static IP (`route: "static"`) or the shared
810
+ * residential route (`route: "residential"`). `applied` is `pending`
811
+ * until the phone's route is recorded.
812
+ *
813
+ * @param {Lusor.GetInternetLocationDevicesRequest} request
814
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
815
+ *
816
+ * @throws {@link Lusor.UnauthorizedError}
817
+ * @throws {@link Lusor.NotFoundError}
818
+ * @throws {@link Lusor.ConflictError}
819
+ * @throws {@link Lusor.ServiceUnavailableError}
820
+ * @throws {@link errors.LusorError}
821
+ * @throws {@link errors.LusorTimeoutError}
822
+ *
823
+ * @example
824
+ * await client.devices.getInternetLocation({
825
+ * workspaceId: "workspaceId",
826
+ * deviceId: "deviceId"
827
+ * })
828
+ */
829
+ getInternetLocation(request, requestOptions) {
830
+ return core.HttpResponsePromise.fromPromise(this.__getInternetLocation(request, requestOptions));
831
+ }
832
+ async __getInternetLocation(request, requestOptions) {
833
+ const { workspaceId, deviceId } = request;
834
+ const _authRequest = await this._options.authProvider.getAuthRequest();
835
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
836
+ const _response = await core.fetcher({
837
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
838
+ (await core.Supplier.get(this._options.environment)) ??
839
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/internet-location`),
840
+ method: "GET",
841
+ headers: _headers,
842
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
843
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
844
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
845
+ abortSignal: requestOptions?.abortSignal,
846
+ fetchFn: this._options?.fetch,
847
+ logging: this._options.logging,
848
+ });
849
+ if (_response.ok) {
850
+ return {
851
+ data: _response.body,
852
+ rawResponse: _response.rawResponse,
853
+ };
854
+ }
855
+ if (_response.error.reason === "status-code") {
856
+ switch (_response.error.statusCode) {
857
+ case 401:
858
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
859
+ case 404:
860
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
861
+ case 409:
862
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
863
+ case 503:
864
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
865
+ default:
866
+ throw new errors.LusorError({
867
+ statusCode: _response.error.statusCode,
868
+ body: _response.error.body,
869
+ rawResponse: _response.rawResponse,
870
+ });
871
+ }
872
+ }
873
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/internet-location");
874
+ }
875
+ /**
876
+ * Without `operation`, returns the phone's static IP state. With the
877
+ * `operation` id returned when a static IP was requested, returns that
878
+ * operation's outcome: `200` once it settled, `202` while it is still
879
+ * in progress (poll again).
880
+ *
881
+ * @param {Lusor.GetStaticIpDevicesRequest} request
882
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
883
+ *
884
+ * @throws {@link Lusor.BadRequestError}
885
+ * @throws {@link Lusor.UnauthorizedError}
886
+ * @throws {@link Lusor.PaymentRequiredError}
887
+ * @throws {@link Lusor.NotFoundError}
888
+ * @throws {@link Lusor.ConflictError}
889
+ * @throws {@link Lusor.TooManyRequestsError}
890
+ * @throws {@link Lusor.ServiceUnavailableError}
891
+ * @throws {@link errors.LusorError}
892
+ * @throws {@link errors.LusorTimeoutError}
893
+ *
894
+ * @example
895
+ * await client.devices.getStaticIp({
896
+ * workspaceId: "workspaceId",
897
+ * deviceId: "deviceId"
898
+ * })
899
+ */
900
+ getStaticIp(request, requestOptions) {
901
+ return core.HttpResponsePromise.fromPromise(this.__getStaticIp(request, requestOptions));
902
+ }
903
+ async __getStaticIp(request, requestOptions) {
904
+ const { workspaceId, deviceId, operation } = request;
905
+ const _queryParams = {
906
+ operation,
907
+ };
908
+ const _authRequest = await this._options.authProvider.getAuthRequest();
909
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
910
+ const _response = await core.fetcher({
911
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
912
+ (await core.Supplier.get(this._options.environment)) ??
913
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/static-ip`),
914
+ method: "GET",
915
+ headers: _headers,
916
+ queryString: core.url
917
+ .queryBuilder()
918
+ .addMany(_queryParams)
919
+ .mergeAdditional(requestOptions?.queryParams)
920
+ .build(),
921
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
922
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
923
+ abortSignal: requestOptions?.abortSignal,
924
+ fetchFn: this._options?.fetch,
925
+ logging: this._options.logging,
926
+ });
927
+ if (_response.ok) {
928
+ return { data: _response.body, rawResponse: _response.rawResponse };
929
+ }
930
+ if (_response.error.reason === "status-code") {
931
+ switch (_response.error.statusCode) {
932
+ case 400:
933
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
934
+ case 401:
935
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
936
+ case 402:
937
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
938
+ case 404:
939
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
940
+ case 409:
941
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
942
+ case 429:
943
+ throw new Lusor.TooManyRequestsError(_response.error.body, _response.rawResponse);
944
+ case 503:
945
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
946
+ default:
947
+ throw new errors.LusorError({
948
+ statusCode: _response.error.statusCode,
949
+ body: _response.error.body,
950
+ rawResponse: _response.rawResponse,
951
+ });
952
+ }
953
+ }
954
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/static-ip");
955
+ }
956
+ /**
957
+ * The state of the phone's most recent wipe and reset: `idle` (none
958
+ * has run), `running`, `succeeded`, `refused` (it did not start; see
959
+ * `reason`), or `failed`.
960
+ *
961
+ * @param {Lusor.GetResetDevicesRequest} request
962
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
963
+ *
964
+ * @throws {@link Lusor.UnauthorizedError}
965
+ * @throws {@link Lusor.NotFoundError}
966
+ * @throws {@link Lusor.ConflictError}
967
+ * @throws {@link Lusor.BadGatewayError}
968
+ * @throws {@link errors.LusorError}
969
+ * @throws {@link errors.LusorTimeoutError}
970
+ *
971
+ * @example
972
+ * await client.devices.getReset({
973
+ * workspaceId: "workspaceId",
974
+ * deviceId: "deviceId"
975
+ * })
976
+ */
977
+ getReset(request, requestOptions) {
978
+ return core.HttpResponsePromise.fromPromise(this.__getReset(request, requestOptions));
979
+ }
980
+ async __getReset(request, requestOptions) {
981
+ const { workspaceId, deviceId } = request;
982
+ const _authRequest = await this._options.authProvider.getAuthRequest();
983
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
984
+ const _response = await core.fetcher({
985
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
986
+ (await core.Supplier.get(this._options.environment)) ??
987
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/reset`),
988
+ method: "GET",
989
+ headers: _headers,
990
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
991
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
992
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
993
+ abortSignal: requestOptions?.abortSignal,
994
+ fetchFn: this._options?.fetch,
995
+ logging: this._options.logging,
996
+ });
997
+ if (_response.ok) {
998
+ return { data: _response.body, rawResponse: _response.rawResponse };
999
+ }
1000
+ if (_response.error.reason === "status-code") {
1001
+ switch (_response.error.statusCode) {
1002
+ case 401:
1003
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1004
+ case 404:
1005
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1006
+ case 409:
1007
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1008
+ case 502:
1009
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
1010
+ default:
1011
+ throw new errors.LusorError({
1012
+ statusCode: _response.error.statusCode,
1013
+ body: _response.error.body,
1014
+ rawResponse: _response.rawResponse,
1015
+ });
1016
+ }
1017
+ }
1018
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/reset");
1019
+ }
1020
+ /**
1021
+ * Captures the current UI tree and screen dimensions. The `a11yTree`
1022
+ * field carries the formatted element tree (with 1-based interactive
1023
+ * indices) used by `POST /tap { index }`.
1024
+ *
1025
+ * On a Lusor Phone, an API-key read meters phone minutes like any
1026
+ * other direct action.
1027
+ *
1028
+ * @param {Lusor.StateDevicesRequest} request
1029
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1030
+ *
1031
+ * @throws {@link Lusor.UnauthorizedError}
1032
+ * @throws {@link Lusor.PaymentRequiredError}
1033
+ * @throws {@link Lusor.NotFoundError}
1034
+ * @throws {@link Lusor.BadGatewayError}
1035
+ * @throws {@link Lusor.ServiceUnavailableError}
1036
+ * @throws {@link errors.LusorError}
1037
+ * @throws {@link errors.LusorTimeoutError}
1038
+ *
1039
+ * @example
1040
+ * await client.devices.state({
1041
+ * workspaceId: "workspaceId",
1042
+ * deviceId: "deviceId"
1043
+ * })
1044
+ */
1045
+ state(request, requestOptions) {
1046
+ return core.HttpResponsePromise.fromPromise(this.__state(request, requestOptions));
1047
+ }
1048
+ async __state(request, requestOptions) {
1049
+ const { workspaceId, deviceId } = request;
1050
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1051
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
1052
+ const _response = await core.fetcher({
1053
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1054
+ (await core.Supplier.get(this._options.environment)) ??
1055
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/state`),
1056
+ method: "GET",
1057
+ headers: _headers,
1058
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1059
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1060
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
1061
+ abortSignal: requestOptions?.abortSignal,
1062
+ fetchFn: this._options?.fetch,
1063
+ logging: this._options.logging,
1064
+ });
1065
+ if (_response.ok) {
1066
+ return { data: _response.body, rawResponse: _response.rawResponse };
1067
+ }
1068
+ if (_response.error.reason === "status-code") {
1069
+ switch (_response.error.statusCode) {
1070
+ case 401:
1071
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1072
+ case 402:
1073
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1074
+ case 404:
1075
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1076
+ case 502:
1077
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
1078
+ case 503:
1079
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1080
+ default:
1081
+ throw new errors.LusorError({
1082
+ statusCode: _response.error.statusCode,
1083
+ body: _response.error.body,
1084
+ rawResponse: _response.rawResponse,
1085
+ });
1086
+ }
1087
+ }
1088
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/state");
1089
+ }
1090
+ /**
1091
+ * Triggers a fresh screenshot on the device and returns the resulting
1092
+ * PNG bytes. Response is binary `image/png`.
1093
+ *
1094
+ * On a Lusor Phone, an API-key read meters phone minutes like any
1095
+ * other direct action.
1096
+ *
1097
+ * @throws {@link Lusor.UnauthorizedError}
1098
+ * @throws {@link Lusor.PaymentRequiredError}
1099
+ * @throws {@link Lusor.NotFoundError}
1100
+ * @throws {@link Lusor.BadGatewayError}
1101
+ * @throws {@link Lusor.ServiceUnavailableError}
1102
+ * @throws {@link errors.LusorError}
1103
+ * @throws {@link errors.LusorTimeoutError}
1104
+ */
1105
+ screenshot(request, requestOptions) {
1106
+ return core.HttpResponsePromise.fromPromise(this.__screenshot(request, requestOptions));
1107
+ }
1108
+ async __screenshot(request, requestOptions) {
1109
+ const { workspaceId, deviceId } = request;
1110
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1111
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
1112
+ const _response = await core.fetcher({
1113
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1114
+ (await core.Supplier.get(this._options.environment)) ??
1115
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/screenshot`),
1116
+ method: "GET",
1117
+ headers: _headers,
1118
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1119
+ responseType: "binary-response",
1120
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1121
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
1122
+ abortSignal: requestOptions?.abortSignal,
1123
+ fetchFn: this._options?.fetch,
1124
+ logging: this._options.logging,
1125
+ });
1126
+ if (_response.ok) {
1127
+ return { data: _response.body, rawResponse: _response.rawResponse };
1128
+ }
1129
+ if (_response.error.reason === "status-code") {
1130
+ switch (_response.error.statusCode) {
1131
+ case 401:
1132
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1133
+ case 402:
1134
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1135
+ case 404:
1136
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1137
+ case 502:
1138
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
1139
+ case 503:
1140
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1141
+ default:
1142
+ throw new errors.LusorError({
1143
+ statusCode: _response.error.statusCode,
1144
+ body: _response.error.body,
1145
+ rawResponse: _response.rawResponse,
1146
+ });
1147
+ }
1148
+ }
1149
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/screenshot");
1150
+ }
1151
+ /**
1152
+ * Triggers a fresh screenshot on the device and returns
1153
+ * the standard verb envelope. Pass `capture: true` (or
1154
+ * `capture: { screenshot: true, ui: true }`) to receive the
1155
+ * formatted element tree + `screenshot_url` in the same response.
1156
+ *
1157
+ * Unlike `GET /screenshot` (which returns binary PNG), this verb
1158
+ * is the chain-compatible variant — the same shape as `tap`,
1159
+ * `swipe`, etc. so it slots into a `POST /chain` step list.
1160
+ *
1161
+ * @param {Lusor.TakeScreenshotDevicesRequest} request
1162
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1163
+ *
1164
+ * @throws {@link Lusor.BadRequestError}
1165
+ * @throws {@link Lusor.UnauthorizedError}
1166
+ * @throws {@link Lusor.PaymentRequiredError}
1167
+ * @throws {@link Lusor.NotFoundError}
1168
+ * @throws {@link Lusor.ConflictError}
1169
+ * @throws {@link Lusor.ServiceUnavailableError}
1170
+ * @throws {@link errors.LusorError}
1171
+ * @throws {@link errors.LusorTimeoutError}
1172
+ *
1173
+ * @example
1174
+ * await client.devices.takeScreenshot({
1175
+ * workspaceId: "workspaceId",
1176
+ * deviceId: "deviceId",
1177
+ * body: {}
1178
+ * })
1179
+ */
1180
+ takeScreenshot(request, requestOptions) {
1181
+ return core.HttpResponsePromise.fromPromise(this.__takeScreenshot(request, requestOptions));
1182
+ }
1183
+ async __takeScreenshot(request, requestOptions) {
1184
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, body: _body } = request;
1185
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1186
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1187
+ const _response = await core.fetcher({
1188
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1189
+ (await core.Supplier.get(this._options.environment)) ??
1190
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/screenshot`),
1191
+ method: "POST",
1192
+ headers: _headers,
1193
+ contentType: "application/json",
1194
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1195
+ requestType: "json",
1196
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1197
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1198
+ maxRetries: 0,
1199
+ abortSignal: requestOptions?.abortSignal,
1200
+ fetchFn: this._options?.fetch,
1201
+ logging: this._options.logging,
1202
+ });
1203
+ if (_response.ok) {
1204
+ return { data: _response.body, rawResponse: _response.rawResponse };
1205
+ }
1206
+ if (_response.error.reason === "status-code") {
1207
+ switch (_response.error.statusCode) {
1208
+ case 400:
1209
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
1210
+ case 401:
1211
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1212
+ case 402:
1213
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1214
+ case 404:
1215
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1216
+ case 409:
1217
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1218
+ case 503:
1219
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1220
+ default:
1221
+ throw new errors.LusorError({
1222
+ statusCode: _response.error.statusCode,
1223
+ body: _response.error.body,
1224
+ rawResponse: _response.rawResponse,
1225
+ });
1226
+ }
1227
+ }
1228
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/screenshot");
1229
+ }
1230
+ /**
1231
+ * Tap an interactive element by `{ index }` (1-based, from
1232
+ * `/state.a11yTree`) OR an explicit `{ x, y }` coordinate. Supplying
1233
+ * both is accepted and `index` wins. At least one of the two forms is
1234
+ * required: supplying neither is a 400, and `x` without `y` is also a
1235
+ * 400 when no `index` is supplied (with `index`, any coordinates are
1236
+ * accepted and ignored).
1237
+ *
1238
+ * Optionally include `capture: true | CaptureOptions` to
1239
+ * return a fresh element tree + screen dimensions in the same
1240
+ * round trip.
1241
+ *
1242
+ * @param {Lusor.TapInput} request
1243
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1244
+ *
1245
+ * @throws {@link Lusor.BadRequestError}
1246
+ * @throws {@link Lusor.UnauthorizedError}
1247
+ * @throws {@link Lusor.PaymentRequiredError}
1248
+ * @throws {@link Lusor.NotFoundError}
1249
+ * @throws {@link Lusor.ConflictError}
1250
+ * @throws {@link Lusor.ServiceUnavailableError}
1251
+ * @throws {@link errors.LusorError}
1252
+ * @throws {@link errors.LusorTimeoutError}
1253
+ *
1254
+ * @example
1255
+ * await client.devices.tap({
1256
+ * workspaceId: "workspaceId",
1257
+ * deviceId: "deviceId"
1258
+ * })
1259
+ */
1260
+ tap(request, requestOptions) {
1261
+ return core.HttpResponsePromise.fromPromise(this.__tap(request, requestOptions));
1262
+ }
1263
+ async __tap(request, requestOptions) {
1264
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
1265
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1266
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1267
+ const _response = await core.fetcher({
1268
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1269
+ (await core.Supplier.get(this._options.environment)) ??
1270
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/tap`),
1271
+ method: "POST",
1272
+ headers: _headers,
1273
+ contentType: "application/json",
1274
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1275
+ requestType: "json",
1276
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1277
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1278
+ maxRetries: 0,
1279
+ abortSignal: requestOptions?.abortSignal,
1280
+ fetchFn: this._options?.fetch,
1281
+ logging: this._options.logging,
1282
+ });
1283
+ if (_response.ok) {
1284
+ return { data: _response.body, rawResponse: _response.rawResponse };
1285
+ }
1286
+ if (_response.error.reason === "status-code") {
1287
+ switch (_response.error.statusCode) {
1288
+ case 400:
1289
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
1290
+ case 401:
1291
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1292
+ case 402:
1293
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1294
+ case 404:
1295
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1296
+ case 409:
1297
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1298
+ case 503:
1299
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1300
+ default:
1301
+ throw new errors.LusorError({
1302
+ statusCode: _response.error.statusCode,
1303
+ body: _response.error.body,
1304
+ rawResponse: _response.rawResponse,
1305
+ });
1306
+ }
1307
+ }
1308
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/tap");
1309
+ }
1310
+ /**
1311
+ * Optionally include `capture: true | CaptureOptions` to
1312
+ * return a fresh element tree + screen dimensions in the same
1313
+ * round trip.
1314
+ *
1315
+ * @param {Lusor.SwipeInput} request
1316
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1317
+ *
1318
+ * @throws {@link Lusor.UnauthorizedError}
1319
+ * @throws {@link Lusor.PaymentRequiredError}
1320
+ * @throws {@link Lusor.NotFoundError}
1321
+ * @throws {@link Lusor.ConflictError}
1322
+ * @throws {@link Lusor.ServiceUnavailableError}
1323
+ * @throws {@link errors.LusorError}
1324
+ * @throws {@link errors.LusorTimeoutError}
1325
+ *
1326
+ * @example
1327
+ * await client.devices.swipe({
1328
+ * workspaceId: "workspaceId",
1329
+ * deviceId: "deviceId",
1330
+ * startX: 1.1,
1331
+ * startY: 1.1,
1332
+ * endX: 1.1,
1333
+ * endY: 1.1
1334
+ * })
1335
+ */
1336
+ swipe(request, requestOptions) {
1337
+ return core.HttpResponsePromise.fromPromise(this.__swipe(request, requestOptions));
1338
+ }
1339
+ async __swipe(request, requestOptions) {
1340
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
1341
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1342
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1343
+ const _response = await core.fetcher({
1344
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1345
+ (await core.Supplier.get(this._options.environment)) ??
1346
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/swipe`),
1347
+ method: "POST",
1348
+ headers: _headers,
1349
+ contentType: "application/json",
1350
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1351
+ requestType: "json",
1352
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1353
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1354
+ maxRetries: 0,
1355
+ abortSignal: requestOptions?.abortSignal,
1356
+ fetchFn: this._options?.fetch,
1357
+ logging: this._options.logging,
1358
+ });
1359
+ if (_response.ok) {
1360
+ return { data: _response.body, rawResponse: _response.rawResponse };
1361
+ }
1362
+ if (_response.error.reason === "status-code") {
1363
+ switch (_response.error.statusCode) {
1364
+ case 401:
1365
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1366
+ case 402:
1367
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1368
+ case 404:
1369
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1370
+ case 409:
1371
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1372
+ case 503:
1373
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1374
+ default:
1375
+ throw new errors.LusorError({
1376
+ statusCode: _response.error.statusCode,
1377
+ body: _response.error.body,
1378
+ rawResponse: _response.rawResponse,
1379
+ });
1380
+ }
1381
+ }
1382
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/swipe");
1383
+ }
1384
+ /**
1385
+ * Optionally include `capture: true | CaptureOptions` to
1386
+ * return a fresh element tree + screen dimensions in the same
1387
+ * round trip.
1388
+ *
1389
+ * @param {Lusor.TypeTextInput} request
1390
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1391
+ *
1392
+ * @throws {@link Lusor.UnauthorizedError}
1393
+ * @throws {@link Lusor.PaymentRequiredError}
1394
+ * @throws {@link Lusor.NotFoundError}
1395
+ * @throws {@link Lusor.ConflictError}
1396
+ * @throws {@link Lusor.ServiceUnavailableError}
1397
+ * @throws {@link errors.LusorError}
1398
+ * @throws {@link errors.LusorTimeoutError}
1399
+ *
1400
+ * @example
1401
+ * await client.devices.type({
1402
+ * workspaceId: "workspaceId",
1403
+ * deviceId: "deviceId",
1404
+ * text: "text"
1405
+ * })
1406
+ */
1407
+ type(request, requestOptions) {
1408
+ return core.HttpResponsePromise.fromPromise(this.__type(request, requestOptions));
1409
+ }
1410
+ async __type(request, requestOptions) {
1411
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
1412
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1413
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1414
+ const _response = await core.fetcher({
1415
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1416
+ (await core.Supplier.get(this._options.environment)) ??
1417
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/type`),
1418
+ method: "POST",
1419
+ headers: _headers,
1420
+ contentType: "application/json",
1421
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1422
+ requestType: "json",
1423
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1424
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1425
+ maxRetries: 0,
1426
+ abortSignal: requestOptions?.abortSignal,
1427
+ fetchFn: this._options?.fetch,
1428
+ logging: this._options.logging,
1429
+ });
1430
+ if (_response.ok) {
1431
+ return { data: _response.body, rawResponse: _response.rawResponse };
1432
+ }
1433
+ if (_response.error.reason === "status-code") {
1434
+ switch (_response.error.statusCode) {
1435
+ case 401:
1436
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1437
+ case 402:
1438
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1439
+ case 404:
1440
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1441
+ case 409:
1442
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1443
+ case 503:
1444
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1445
+ default:
1446
+ throw new errors.LusorError({
1447
+ statusCode: _response.error.statusCode,
1448
+ body: _response.error.body,
1449
+ rawResponse: _response.rawResponse,
1450
+ });
1451
+ }
1452
+ }
1453
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/type");
1454
+ }
1455
+ /**
1456
+ * Send a single Android KeyEvent. Common codes: 66=Enter, 67=Del,
1457
+ * 61=Tab, 111=Esc, 19/20/21/22=DPad.
1458
+ *
1459
+ * Optionally include `capture: true | CaptureOptions` to
1460
+ * return a fresh element tree + screen dimensions in the same
1461
+ * round trip.
1462
+ *
1463
+ * @param {Lusor.KeyInput} request
1464
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1465
+ *
1466
+ * @throws {@link Lusor.UnauthorizedError}
1467
+ * @throws {@link Lusor.PaymentRequiredError}
1468
+ * @throws {@link Lusor.NotFoundError}
1469
+ * @throws {@link Lusor.ConflictError}
1470
+ * @throws {@link Lusor.ServiceUnavailableError}
1471
+ * @throws {@link errors.LusorError}
1472
+ * @throws {@link errors.LusorTimeoutError}
1473
+ *
1474
+ * @example
1475
+ * await client.devices.key({
1476
+ * workspaceId: "workspaceId",
1477
+ * deviceId: "deviceId",
1478
+ * keyCode: 1
1479
+ * })
1480
+ */
1481
+ key(request, requestOptions) {
1482
+ return core.HttpResponsePromise.fromPromise(this.__key(request, requestOptions));
1483
+ }
1484
+ async __key(request, requestOptions) {
1485
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
1486
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1487
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1488
+ const _response = await core.fetcher({
1489
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1490
+ (await core.Supplier.get(this._options.environment)) ??
1491
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/key`),
1492
+ method: "POST",
1493
+ headers: _headers,
1494
+ contentType: "application/json",
1495
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1496
+ requestType: "json",
1497
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1498
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1499
+ maxRetries: 0,
1500
+ abortSignal: requestOptions?.abortSignal,
1501
+ fetchFn: this._options?.fetch,
1502
+ logging: this._options.logging,
1503
+ });
1504
+ if (_response.ok) {
1505
+ return { data: _response.body, rawResponse: _response.rawResponse };
1506
+ }
1507
+ if (_response.error.reason === "status-code") {
1508
+ switch (_response.error.statusCode) {
1509
+ case 401:
1510
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1511
+ case 402:
1512
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1513
+ case 404:
1514
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1515
+ case 409:
1516
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1517
+ case 503:
1518
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1519
+ default:
1520
+ throw new errors.LusorError({
1521
+ statusCode: _response.error.statusCode,
1522
+ body: _response.error.body,
1523
+ rawResponse: _response.rawResponse,
1524
+ });
1525
+ }
1526
+ }
1527
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/key");
1528
+ }
1529
+ /**
1530
+ * Accepts an optional `capture` field identical in shape to the
1531
+ * parameterised verbs.
1532
+ *
1533
+ * @param {Lusor.ClearDevicesRequest} request
1534
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1535
+ *
1536
+ * @throws {@link Lusor.UnauthorizedError}
1537
+ * @throws {@link Lusor.PaymentRequiredError}
1538
+ * @throws {@link Lusor.NotFoundError}
1539
+ * @throws {@link Lusor.ConflictError}
1540
+ * @throws {@link Lusor.ServiceUnavailableError}
1541
+ * @throws {@link errors.LusorError}
1542
+ * @throws {@link errors.LusorTimeoutError}
1543
+ *
1544
+ * @example
1545
+ * await client.devices.clear({
1546
+ * workspaceId: "workspaceId",
1547
+ * deviceId: "deviceId",
1548
+ * body: {}
1549
+ * })
1550
+ */
1551
+ clear(request, requestOptions) {
1552
+ return core.HttpResponsePromise.fromPromise(this.__clear(request, requestOptions));
1553
+ }
1554
+ async __clear(request, requestOptions) {
1555
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, body: _body } = request;
1556
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1557
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1558
+ const _response = await core.fetcher({
1559
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1560
+ (await core.Supplier.get(this._options.environment)) ??
1561
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/clear`),
1562
+ method: "POST",
1563
+ headers: _headers,
1564
+ contentType: "application/json",
1565
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1566
+ requestType: "json",
1567
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1568
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1569
+ maxRetries: 0,
1570
+ abortSignal: requestOptions?.abortSignal,
1571
+ fetchFn: this._options?.fetch,
1572
+ logging: this._options.logging,
1573
+ });
1574
+ if (_response.ok) {
1575
+ return { data: _response.body, rawResponse: _response.rawResponse };
1576
+ }
1577
+ if (_response.error.reason === "status-code") {
1578
+ switch (_response.error.statusCode) {
1579
+ case 401:
1580
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1581
+ case 402:
1582
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1583
+ case 404:
1584
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1585
+ case 409:
1586
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1587
+ case 503:
1588
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1589
+ default:
1590
+ throw new errors.LusorError({
1591
+ statusCode: _response.error.statusCode,
1592
+ body: _response.error.body,
1593
+ rawResponse: _response.rawResponse,
1594
+ });
1595
+ }
1596
+ }
1597
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/clear");
1598
+ }
1599
+ /**
1600
+ * Accepts an optional `capture` field.
1601
+ *
1602
+ * @param {Lusor.BackDevicesRequest} request
1603
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1604
+ *
1605
+ * @throws {@link Lusor.UnauthorizedError}
1606
+ * @throws {@link Lusor.PaymentRequiredError}
1607
+ * @throws {@link Lusor.NotFoundError}
1608
+ * @throws {@link Lusor.ConflictError}
1609
+ * @throws {@link Lusor.ServiceUnavailableError}
1610
+ * @throws {@link errors.LusorError}
1611
+ * @throws {@link errors.LusorTimeoutError}
1612
+ *
1613
+ * @example
1614
+ * await client.devices.back({
1615
+ * workspaceId: "workspaceId",
1616
+ * deviceId: "deviceId",
1617
+ * body: {}
1618
+ * })
1619
+ */
1620
+ back(request, requestOptions) {
1621
+ return core.HttpResponsePromise.fromPromise(this.__back(request, requestOptions));
1622
+ }
1623
+ async __back(request, requestOptions) {
1624
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, body: _body } = request;
1625
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1626
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1627
+ const _response = await core.fetcher({
1628
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1629
+ (await core.Supplier.get(this._options.environment)) ??
1630
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/back`),
1631
+ method: "POST",
1632
+ headers: _headers,
1633
+ contentType: "application/json",
1634
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1635
+ requestType: "json",
1636
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1637
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1638
+ maxRetries: 0,
1639
+ abortSignal: requestOptions?.abortSignal,
1640
+ fetchFn: this._options?.fetch,
1641
+ logging: this._options.logging,
1642
+ });
1643
+ if (_response.ok) {
1644
+ return { data: _response.body, rawResponse: _response.rawResponse };
1645
+ }
1646
+ if (_response.error.reason === "status-code") {
1647
+ switch (_response.error.statusCode) {
1648
+ case 401:
1649
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1650
+ case 402:
1651
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1652
+ case 404:
1653
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1654
+ case 409:
1655
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1656
+ case 503:
1657
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1658
+ default:
1659
+ throw new errors.LusorError({
1660
+ statusCode: _response.error.statusCode,
1661
+ body: _response.error.body,
1662
+ rawResponse: _response.rawResponse,
1663
+ });
1664
+ }
1665
+ }
1666
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/back");
1667
+ }
1668
+ /**
1669
+ * Accepts an optional `capture` field.
1670
+ *
1671
+ * @param {Lusor.HomeDevicesRequest} request
1672
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1673
+ *
1674
+ * @throws {@link Lusor.UnauthorizedError}
1675
+ * @throws {@link Lusor.PaymentRequiredError}
1676
+ * @throws {@link Lusor.NotFoundError}
1677
+ * @throws {@link Lusor.ConflictError}
1678
+ * @throws {@link Lusor.ServiceUnavailableError}
1679
+ * @throws {@link errors.LusorError}
1680
+ * @throws {@link errors.LusorTimeoutError}
1681
+ *
1682
+ * @example
1683
+ * await client.devices.home({
1684
+ * workspaceId: "workspaceId",
1685
+ * deviceId: "deviceId",
1686
+ * body: {}
1687
+ * })
1688
+ */
1689
+ home(request, requestOptions) {
1690
+ return core.HttpResponsePromise.fromPromise(this.__home(request, requestOptions));
1691
+ }
1692
+ async __home(request, requestOptions) {
1693
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, body: _body } = request;
1694
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1695
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1696
+ const _response = await core.fetcher({
1697
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1698
+ (await core.Supplier.get(this._options.environment)) ??
1699
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/home`),
1700
+ method: "POST",
1701
+ headers: _headers,
1702
+ contentType: "application/json",
1703
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1704
+ requestType: "json",
1705
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1706
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1707
+ maxRetries: 0,
1708
+ abortSignal: requestOptions?.abortSignal,
1709
+ fetchFn: this._options?.fetch,
1710
+ logging: this._options.logging,
1711
+ });
1712
+ if (_response.ok) {
1713
+ return { data: _response.body, rawResponse: _response.rawResponse };
1714
+ }
1715
+ if (_response.error.reason === "status-code") {
1716
+ switch (_response.error.statusCode) {
1717
+ case 401:
1718
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1719
+ case 402:
1720
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1721
+ case 404:
1722
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1723
+ case 409:
1724
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1725
+ case 503:
1726
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1727
+ default:
1728
+ throw new errors.LusorError({
1729
+ statusCode: _response.error.statusCode,
1730
+ body: _response.error.body,
1731
+ rawResponse: _response.rawResponse,
1732
+ });
1733
+ }
1734
+ }
1735
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/home");
1736
+ }
1737
+ /**
1738
+ * Accepts an optional `capture` field.
1739
+ *
1740
+ * @param {Lusor.RecentDevicesRequest} request
1741
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1742
+ *
1743
+ * @throws {@link Lusor.UnauthorizedError}
1744
+ * @throws {@link Lusor.PaymentRequiredError}
1745
+ * @throws {@link Lusor.NotFoundError}
1746
+ * @throws {@link Lusor.ConflictError}
1747
+ * @throws {@link Lusor.ServiceUnavailableError}
1748
+ * @throws {@link errors.LusorError}
1749
+ * @throws {@link errors.LusorTimeoutError}
1750
+ *
1751
+ * @example
1752
+ * await client.devices.recent({
1753
+ * workspaceId: "workspaceId",
1754
+ * deviceId: "deviceId",
1755
+ * body: {}
1756
+ * })
1757
+ */
1758
+ recent(request, requestOptions) {
1759
+ return core.HttpResponsePromise.fromPromise(this.__recent(request, requestOptions));
1760
+ }
1761
+ async __recent(request, requestOptions) {
1762
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, body: _body } = request;
1763
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1764
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1765
+ const _response = await core.fetcher({
1766
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1767
+ (await core.Supplier.get(this._options.environment)) ??
1768
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/recent`),
1769
+ method: "POST",
1770
+ headers: _headers,
1771
+ contentType: "application/json",
1772
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1773
+ requestType: "json",
1774
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1775
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1776
+ maxRetries: 0,
1777
+ abortSignal: requestOptions?.abortSignal,
1778
+ fetchFn: this._options?.fetch,
1779
+ logging: this._options.logging,
1780
+ });
1781
+ if (_response.ok) {
1782
+ return { data: _response.body, rawResponse: _response.rawResponse };
1783
+ }
1784
+ if (_response.error.reason === "status-code") {
1785
+ switch (_response.error.statusCode) {
1786
+ case 401:
1787
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1788
+ case 402:
1789
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1790
+ case 404:
1791
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1792
+ case 409:
1793
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1794
+ case 503:
1795
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1796
+ default:
1797
+ throw new errors.LusorError({
1798
+ statusCode: _response.error.statusCode,
1799
+ body: _response.error.body,
1800
+ rawResponse: _response.rawResponse,
1801
+ });
1802
+ }
1803
+ }
1804
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/recent");
1805
+ }
1806
+ /**
1807
+ * Launch an Android app by package name. The `package` and optional
1808
+ * `activity` must be dotted identifiers (for example
1809
+ * `com.android.settings`); anything else is a 400.
1810
+ *
1811
+ * Optionally include `capture: true | CaptureOptions` to
1812
+ * return a fresh element tree + screen dimensions in the same
1813
+ * round trip.
1814
+ *
1815
+ * @param {Lusor.StartAppInput} request
1816
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1817
+ *
1818
+ * @throws {@link Lusor.BadRequestError}
1819
+ * @throws {@link Lusor.UnauthorizedError}
1820
+ * @throws {@link Lusor.PaymentRequiredError}
1821
+ * @throws {@link Lusor.NotFoundError}
1822
+ * @throws {@link Lusor.ConflictError}
1823
+ * @throws {@link Lusor.ServiceUnavailableError}
1824
+ * @throws {@link errors.LusorError}
1825
+ * @throws {@link errors.LusorTimeoutError}
1826
+ *
1827
+ * @example
1828
+ * await client.devices.startApp({
1829
+ * workspaceId: "workspaceId",
1830
+ * deviceId: "deviceId",
1831
+ * "package": "package"
1832
+ * })
1833
+ */
1834
+ startApp(request, requestOptions) {
1835
+ return core.HttpResponsePromise.fromPromise(this.__startApp(request, requestOptions));
1836
+ }
1837
+ async __startApp(request, requestOptions) {
1838
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
1839
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1840
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1841
+ const _response = await core.fetcher({
1842
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1843
+ (await core.Supplier.get(this._options.environment)) ??
1844
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/apps/start`),
1845
+ method: "POST",
1846
+ headers: _headers,
1847
+ contentType: "application/json",
1848
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1849
+ requestType: "json",
1850
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1851
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1852
+ maxRetries: 0,
1853
+ abortSignal: requestOptions?.abortSignal,
1854
+ fetchFn: this._options?.fetch,
1855
+ logging: this._options.logging,
1856
+ });
1857
+ if (_response.ok) {
1858
+ return { data: _response.body, rawResponse: _response.rawResponse };
1859
+ }
1860
+ if (_response.error.reason === "status-code") {
1861
+ switch (_response.error.statusCode) {
1862
+ case 400:
1863
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
1864
+ case 401:
1865
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1866
+ case 402:
1867
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1868
+ case 404:
1869
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1870
+ case 409:
1871
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1872
+ case 503:
1873
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1874
+ default:
1875
+ throw new errors.LusorError({
1876
+ statusCode: _response.error.statusCode,
1877
+ body: _response.error.body,
1878
+ rawResponse: _response.rawResponse,
1879
+ });
1880
+ }
1881
+ }
1882
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/apps/start");
1883
+ }
1884
+ /**
1885
+ * Force-stop an Android app by package name. The `package` is
1886
+ * validated the same way as `apps/start`.
1887
+ *
1888
+ * Optionally include `capture: true | CaptureOptions` to
1889
+ * return a fresh element tree + screen dimensions in the same
1890
+ * round trip.
1891
+ *
1892
+ * @param {Lusor.StopAppInput} request
1893
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
1894
+ *
1895
+ * @throws {@link Lusor.BadRequestError}
1896
+ * @throws {@link Lusor.UnauthorizedError}
1897
+ * @throws {@link Lusor.PaymentRequiredError}
1898
+ * @throws {@link Lusor.NotFoundError}
1899
+ * @throws {@link Lusor.ConflictError}
1900
+ * @throws {@link Lusor.ServiceUnavailableError}
1901
+ * @throws {@link errors.LusorError}
1902
+ * @throws {@link errors.LusorTimeoutError}
1903
+ *
1904
+ * @example
1905
+ * await client.devices.stopApp({
1906
+ * workspaceId: "workspaceId",
1907
+ * deviceId: "deviceId",
1908
+ * "package": "package"
1909
+ * })
1910
+ */
1911
+ stopApp(request, requestOptions) {
1912
+ return core.HttpResponsePromise.fromPromise(this.__stopApp(request, requestOptions));
1913
+ }
1914
+ async __stopApp(request, requestOptions) {
1915
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
1916
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1917
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
1918
+ const _response = await core.fetcher({
1919
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1920
+ (await core.Supplier.get(this._options.environment)) ??
1921
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/apps/stop`),
1922
+ method: "POST",
1923
+ headers: _headers,
1924
+ contentType: "application/json",
1925
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1926
+ requestType: "json",
1927
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
1928
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1929
+ maxRetries: 0,
1930
+ abortSignal: requestOptions?.abortSignal,
1931
+ fetchFn: this._options?.fetch,
1932
+ logging: this._options.logging,
1933
+ });
1934
+ if (_response.ok) {
1935
+ return { data: _response.body, rawResponse: _response.rawResponse };
1936
+ }
1937
+ if (_response.error.reason === "status-code") {
1938
+ switch (_response.error.statusCode) {
1939
+ case 400:
1940
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
1941
+ case 401:
1942
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
1943
+ case 402:
1944
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
1945
+ case 404:
1946
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
1947
+ case 409:
1948
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
1949
+ case 503:
1950
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
1951
+ default:
1952
+ throw new errors.LusorError({
1953
+ statusCode: _response.error.statusCode,
1954
+ body: _response.error.body,
1955
+ rawResponse: _response.rawResponse,
1956
+ });
1957
+ }
1958
+ }
1959
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/apps/stop");
1960
+ }
1961
+ /**
1962
+ * Execute a typed sequence of up to 20 deterministic actions in
1963
+ * order, optionally collecting a UI capture per step. On a Lusor
1964
+ * Phone, an API-key chain meters phone minutes before every step; a
1965
+ * `402` or `503` stops the chain before that step reaches the phone.
1966
+ *
1967
+ * ## Capture resolution rules
1968
+ *
1969
+ * Per-step `capture` always wins. Top-level `capture` supplies
1970
+ * the default policy:
1971
+ *
1972
+ * - `'none'` (default) — no capture on any step.
1973
+ * - `'each'` — capture on every step.
1974
+ * - `'final'` — capture only on the last step.
1975
+ *
1976
+ * ## Step verbs
1977
+ *
1978
+ * `tap`, `swipe`, `type`, `key`, `clear`, `back`, `home`, `recent`,
1979
+ * `start_app`, `stop_app`, `screenshot`, `wait`. Each step has the
1980
+ * same params as the corresponding direct-verb route plus an
1981
+ * optional `capture` override.
1982
+ *
1983
+ * ## Settling
1984
+ *
1985
+ * Steps execute back-to-back with no implicit inter-step delay.
1986
+ * Insert `wait` steps (`{ verb: "wait", params: { duration_ms: N } }`,
1987
+ * 0–60000 ms) where the UI needs time to settle — e.g. after a tap
1988
+ * that opens a screen, or before typing into a freshly focused
1989
+ * field. Cumulative wait duration per chain is capped at 120s so
1990
+ * the worst case stays inside the chain timeout.
1991
+ *
1992
+ * A step that completes with `ok: false` does not stop the chain:
1993
+ * the next step still runs, the top-level `ok` is true only when every
1994
+ * step succeeded, and each step's `ok` shows which one failed.
1995
+ *
1996
+ * A step that errors instead aborts the chain. This happens when the
1997
+ * phone cannot be reached, when a step's capture fails, or when
1998
+ * metering refuses a later step (`402`/`503`). The response is then
1999
+ * that error alone, with no per-step results, and the steps before it
2000
+ * have already run on the phone. Read the screen before you retry a
2001
+ * chain.
2002
+ *
2003
+ * @param {Lusor.ChainRequest} request
2004
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
2005
+ *
2006
+ * @throws {@link Lusor.BadRequestError}
2007
+ * @throws {@link Lusor.UnauthorizedError}
2008
+ * @throws {@link Lusor.PaymentRequiredError}
2009
+ * @throws {@link Lusor.NotFoundError}
2010
+ * @throws {@link Lusor.ConflictError}
2011
+ * @throws {@link Lusor.ServiceUnavailableError}
2012
+ * @throws {@link errors.LusorError}
2013
+ * @throws {@link errors.LusorTimeoutError}
2014
+ *
2015
+ * @example
2016
+ * await client.devices.chain({
2017
+ * workspaceId: "workspaceId",
2018
+ * deviceId: "deviceId",
2019
+ * steps: [{
2020
+ * verb: "tap",
2021
+ * params: {}
2022
+ * }]
2023
+ * })
2024
+ */
2025
+ chain(request, requestOptions) {
2026
+ return core.HttpResponsePromise.fromPromise(this.__chain(request, requestOptions));
2027
+ }
2028
+ async __chain(request, requestOptions) {
2029
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
2030
+ const _authRequest = await this._options.authProvider.getAuthRequest();
2031
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
2032
+ const _response = await core.fetcher({
2033
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
2034
+ (await core.Supplier.get(this._options.environment)) ??
2035
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/chain`),
2036
+ method: "POST",
2037
+ headers: _headers,
2038
+ contentType: "application/json",
2039
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
2040
+ requestType: "json",
2041
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
2042
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
2043
+ maxRetries: 0,
2044
+ abortSignal: requestOptions?.abortSignal,
2045
+ fetchFn: this._options?.fetch,
2046
+ logging: this._options.logging,
2047
+ });
2048
+ if (_response.ok) {
2049
+ return { data: _response.body, rawResponse: _response.rawResponse };
2050
+ }
2051
+ if (_response.error.reason === "status-code") {
2052
+ switch (_response.error.statusCode) {
2053
+ case 400:
2054
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
2055
+ case 401:
2056
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
2057
+ case 402:
2058
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
2059
+ case 404:
2060
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
2061
+ case 409:
2062
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
2063
+ case 503:
2064
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
2065
+ default:
2066
+ throw new errors.LusorError({
2067
+ statusCode: _response.error.statusCode,
2068
+ body: _response.error.body,
2069
+ rawResponse: _response.rawResponse,
2070
+ });
2071
+ }
2072
+ }
2073
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/chain");
2074
+ }
2075
+ /**
2076
+ * Last-resort shell access. The command is checked against a
2077
+ * server-side denylist (shell metacharacters such as `|`, `;`, `&`
2078
+ * and backticks are refused anywhere in the string) and every
2079
+ * attempt, allowed or denied, is audit-logged. The response reports
2080
+ * whether the command ran; command output is not returned.
2081
+ *
2082
+ * @param {Lusor.ShellInput} request
2083
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
2084
+ *
2085
+ * @throws {@link Lusor.BadRequestError}
2086
+ * @throws {@link Lusor.UnauthorizedError}
2087
+ * @throws {@link Lusor.PaymentRequiredError}
2088
+ * @throws {@link Lusor.ForbiddenError}
2089
+ * @throws {@link Lusor.NotFoundError}
2090
+ * @throws {@link Lusor.ConflictError}
2091
+ * @throws {@link Lusor.ServiceUnavailableError}
2092
+ * @throws {@link errors.LusorError}
2093
+ * @throws {@link errors.LusorTimeoutError}
2094
+ *
2095
+ * @example
2096
+ * await client.devices.shell({
2097
+ * workspaceId: "workspaceId",
2098
+ * deviceId: "deviceId",
2099
+ * command: "command"
2100
+ * })
2101
+ */
2102
+ shell(request, requestOptions) {
2103
+ return core.HttpResponsePromise.fromPromise(this.__shell(request, requestOptions));
2104
+ }
2105
+ async __shell(request, requestOptions) {
2106
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
2107
+ const _authRequest = await this._options.authProvider.getAuthRequest();
2108
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
2109
+ const _response = await core.fetcher({
2110
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
2111
+ (await core.Supplier.get(this._options.environment)) ??
2112
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/shell`),
2113
+ method: "POST",
2114
+ headers: _headers,
2115
+ contentType: "application/json",
2116
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
2117
+ requestType: "json",
2118
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
2119
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
2120
+ maxRetries: 0,
2121
+ abortSignal: requestOptions?.abortSignal,
2122
+ fetchFn: this._options?.fetch,
2123
+ logging: this._options.logging,
2124
+ });
2125
+ if (_response.ok) {
2126
+ return { data: _response.body, rawResponse: _response.rawResponse };
2127
+ }
2128
+ if (_response.error.reason === "status-code") {
2129
+ switch (_response.error.statusCode) {
2130
+ case 400:
2131
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
2132
+ case 401:
2133
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
2134
+ case 402:
2135
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
2136
+ case 403:
2137
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
2138
+ case 404:
2139
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
2140
+ case 409:
2141
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
2142
+ case 503:
2143
+ throw new Lusor.ServiceUnavailableError(_response.error.body, _response.rawResponse);
2144
+ default:
2145
+ throw new errors.LusorError({
2146
+ statusCode: _response.error.statusCode,
2147
+ body: _response.error.body,
2148
+ rawResponse: _response.rawResponse,
2149
+ });
2150
+ }
2151
+ }
2152
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/shell");
2153
+ }
2154
+ /**
2155
+ * The language last set through `PUT .../language` and how applying
2156
+ * it ended. `null` fields mean none has been set. `inProgress` names a
2157
+ * change that is still being applied.
2158
+ *
2159
+ * @param {Lusor.GetLanguageDevicesRequest} request
2160
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
2161
+ *
2162
+ * @throws {@link Lusor.UnauthorizedError}
2163
+ * @throws {@link Lusor.NotFoundError}
2164
+ * @throws {@link Lusor.ConflictError}
2165
+ * @throws {@link Lusor.BadGatewayError}
2166
+ * @throws {@link errors.LusorError}
2167
+ * @throws {@link errors.LusorTimeoutError}
2168
+ *
2169
+ * @example
2170
+ * await client.devices.getLanguage({
2171
+ * workspaceId: "workspaceId",
2172
+ * deviceId: "deviceId"
2173
+ * })
2174
+ */
2175
+ getLanguage(request, requestOptions) {
2176
+ return core.HttpResponsePromise.fromPromise(this.__getLanguage(request, requestOptions));
2177
+ }
2178
+ async __getLanguage(request, requestOptions) {
2179
+ const { workspaceId, deviceId } = request;
2180
+ const _authRequest = await this._options.authProvider.getAuthRequest();
2181
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
2182
+ const _response = await core.fetcher({
2183
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
2184
+ (await core.Supplier.get(this._options.environment)) ??
2185
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/language`),
2186
+ method: "GET",
2187
+ headers: _headers,
2188
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
2189
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
2190
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
2191
+ abortSignal: requestOptions?.abortSignal,
2192
+ fetchFn: this._options?.fetch,
2193
+ logging: this._options.logging,
2194
+ });
2195
+ if (_response.ok) {
2196
+ return { data: _response.body, rawResponse: _response.rawResponse };
2197
+ }
2198
+ if (_response.error.reason === "status-code") {
2199
+ switch (_response.error.statusCode) {
2200
+ case 401:
2201
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
2202
+ case 404:
2203
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
2204
+ case 409:
2205
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
2206
+ case 502:
2207
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
2208
+ default:
2209
+ throw new errors.LusorError({
2210
+ statusCode: _response.error.statusCode,
2211
+ body: _response.error.body,
2212
+ rawResponse: _response.rawResponse,
2213
+ });
2214
+ }
2215
+ }
2216
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/language");
2217
+ }
2218
+ /**
2219
+ * Sets the phone's system language (and optional region). Answers 202
2220
+ * at once with the change `pending`; read `GET .../language` until
2221
+ * `state` is `applied` or `failed`. The phone may restart to apply it.
2222
+ * Refused with 409 `phone_busy` while a session or live viewer holds
2223
+ * the phone or another change is being applied.
2224
+ *
2225
+ * @param {Lusor.DeviceLanguageInput} request
2226
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
2227
+ *
2228
+ * @throws {@link Lusor.BadRequestError}
2229
+ * @throws {@link Lusor.UnauthorizedError}
2230
+ * @throws {@link Lusor.ForbiddenError}
2231
+ * @throws {@link Lusor.NotFoundError}
2232
+ * @throws {@link Lusor.ConflictError}
2233
+ * @throws {@link Lusor.BadGatewayError}
2234
+ * @throws {@link errors.LusorError}
2235
+ * @throws {@link errors.LusorTimeoutError}
2236
+ *
2237
+ * @example
2238
+ * await client.devices.setLanguage({
2239
+ * workspaceId: "workspaceId",
2240
+ * deviceId: "deviceId",
2241
+ * language: "de"
2242
+ * })
2243
+ */
2244
+ setLanguage(request, requestOptions) {
2245
+ return core.HttpResponsePromise.fromPromise(this.__setLanguage(request, requestOptions));
2246
+ }
2247
+ async __setLanguage(request, requestOptions) {
2248
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, ..._body } = request;
2249
+ const _authRequest = await this._options.authProvider.getAuthRequest();
2250
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
2251
+ const _response = await core.fetcher({
2252
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
2253
+ (await core.Supplier.get(this._options.environment)) ??
2254
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/language`),
2255
+ method: "PUT",
2256
+ headers: _headers,
2257
+ contentType: "application/json",
2258
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
2259
+ requestType: "json",
2260
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
2261
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
2262
+ maxRetries: 0,
2263
+ abortSignal: requestOptions?.abortSignal,
2264
+ fetchFn: this._options?.fetch,
2265
+ logging: this._options.logging,
2266
+ });
2267
+ if (_response.ok) {
2268
+ return { data: _response.body, rawResponse: _response.rawResponse };
2269
+ }
2270
+ if (_response.error.reason === "status-code") {
2271
+ switch (_response.error.statusCode) {
2272
+ case 400:
2273
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
2274
+ case 401:
2275
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
2276
+ case 403:
2277
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
2278
+ case 404:
2279
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
2280
+ case 409:
2281
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
2282
+ case 502:
2283
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
2284
+ default:
2285
+ throw new errors.LusorError({
2286
+ statusCode: _response.error.statusCode,
2287
+ body: _response.error.body,
2288
+ rawResponse: _response.rawResponse,
2289
+ });
2290
+ }
2291
+ }
2292
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/v1/workspaces/{workspaceId}/devices/{deviceId}/language");
2293
+ }
2294
+ /**
2295
+ * The identity fields set so far (latest value of each) and how the
2296
+ * last change ended. Fields never set keep the phone's own values and
2297
+ * are absent here.
2298
+ *
2299
+ * @param {Lusor.GetIdentityDevicesRequest} request
2300
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
2301
+ *
2302
+ * @throws {@link Lusor.UnauthorizedError}
2303
+ * @throws {@link Lusor.NotFoundError}
2304
+ * @throws {@link Lusor.ConflictError}
2305
+ * @throws {@link Lusor.BadGatewayError}
2306
+ * @throws {@link errors.LusorError}
2307
+ * @throws {@link errors.LusorTimeoutError}
2308
+ *
2309
+ * @example
2310
+ * await client.devices.getIdentity({
2311
+ * workspaceId: "workspaceId",
2312
+ * deviceId: "deviceId"
2313
+ * })
2314
+ */
2315
+ getIdentity(request, requestOptions) {
2316
+ return core.HttpResponsePromise.fromPromise(this.__getIdentity(request, requestOptions));
2317
+ }
2318
+ async __getIdentity(request, requestOptions) {
2319
+ const { workspaceId, deviceId } = request;
2320
+ const _authRequest = await this._options.authProvider.getAuthRequest();
2321
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
2322
+ const _response = await core.fetcher({
2323
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
2324
+ (await core.Supplier.get(this._options.environment)) ??
2325
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/identity`),
2326
+ method: "GET",
2327
+ headers: _headers,
2328
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
2329
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
2330
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
2331
+ abortSignal: requestOptions?.abortSignal,
2332
+ fetchFn: this._options?.fetch,
2333
+ logging: this._options.logging,
2334
+ });
2335
+ if (_response.ok) {
2336
+ return { data: _response.body, rawResponse: _response.rawResponse };
2337
+ }
2338
+ if (_response.error.reason === "status-code") {
2339
+ switch (_response.error.statusCode) {
2340
+ case 401:
2341
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
2342
+ case 404:
2343
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
2344
+ case 409:
2345
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
2346
+ case 502:
2347
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
2348
+ default:
2349
+ throw new errors.LusorError({
2350
+ statusCode: _response.error.statusCode,
2351
+ body: _response.error.body,
2352
+ rawResponse: _response.rawResponse,
2353
+ });
2354
+ }
2355
+ }
2356
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/identity");
2357
+ }
2358
+ /**
2359
+ * Sets the device identity apps read: brand, manufacturer, model,
2360
+ * device codename, product name, build fingerprint and Android ID.
2361
+ * Only the fields sent change. Raw Android properties are refused
2362
+ * (400 `identity_prop_refused`). Answers 202 with the change
2363
+ * `pending`; once written (`state` `applied`, `restartQueued` true)
2364
+ * **the phone restarts** to apply it, which takes a few minutes. The
2365
+ * values persist across restarts and resets; set the old values again
2366
+ * to undo a change.
2367
+ *
2368
+ * @param {Lusor.SetIdentityDevicesRequest} request
2369
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
2370
+ *
2371
+ * @throws {@link Lusor.BadRequestError}
2372
+ * @throws {@link Lusor.UnauthorizedError}
2373
+ * @throws {@link Lusor.ForbiddenError}
2374
+ * @throws {@link Lusor.NotFoundError}
2375
+ * @throws {@link Lusor.ConflictError}
2376
+ * @throws {@link Lusor.BadGatewayError}
2377
+ * @throws {@link errors.LusorError}
2378
+ * @throws {@link errors.LusorTimeoutError}
2379
+ *
2380
+ * @example
2381
+ * await client.devices.setIdentity({
2382
+ * workspaceId: "workspaceId",
2383
+ * deviceId: "deviceId",
2384
+ * body: {}
2385
+ * })
2386
+ */
2387
+ setIdentity(request, requestOptions) {
2388
+ return core.HttpResponsePromise.fromPromise(this.__setIdentity(request, requestOptions));
2389
+ }
2390
+ async __setIdentity(request, requestOptions) {
2391
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey, body: _body } = request;
2392
+ const _authRequest = await this._options.authProvider.getAuthRequest();
2393
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
2394
+ const _response = await core.fetcher({
2395
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
2396
+ (await core.Supplier.get(this._options.environment)) ??
2397
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/identity`),
2398
+ method: "PUT",
2399
+ headers: _headers,
2400
+ contentType: "application/json",
2401
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
2402
+ requestType: "json",
2403
+ body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),
2404
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
2405
+ maxRetries: 0,
2406
+ abortSignal: requestOptions?.abortSignal,
2407
+ fetchFn: this._options?.fetch,
2408
+ logging: this._options.logging,
2409
+ });
2410
+ if (_response.ok) {
2411
+ return { data: _response.body, rawResponse: _response.rawResponse };
2412
+ }
2413
+ if (_response.error.reason === "status-code") {
2414
+ switch (_response.error.statusCode) {
2415
+ case 400:
2416
+ throw new Lusor.BadRequestError(_response.error.body, _response.rawResponse);
2417
+ case 401:
2418
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
2419
+ case 403:
2420
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
2421
+ case 404:
2422
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
2423
+ case 409:
2424
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
2425
+ case 502:
2426
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
2427
+ default:
2428
+ throw new errors.LusorError({
2429
+ statusCode: _response.error.statusCode,
2430
+ body: _response.error.body,
2431
+ rawResponse: _response.rawResponse,
2432
+ });
2433
+ }
2434
+ }
2435
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/v1/workspaces/{workspaceId}/devices/{deviceId}/identity");
2436
+ }
2437
+ /**
2438
+ * How the last advertising-ID reset ended. The ID itself is not returned.
2439
+ *
2440
+ * @param {Lusor.GetAdvertisingIdDevicesRequest} request
2441
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
2442
+ *
2443
+ * @throws {@link Lusor.UnauthorizedError}
2444
+ * @throws {@link Lusor.NotFoundError}
2445
+ * @throws {@link Lusor.ConflictError}
2446
+ * @throws {@link Lusor.BadGatewayError}
2447
+ * @throws {@link errors.LusorError}
2448
+ * @throws {@link errors.LusorTimeoutError}
2449
+ *
2450
+ * @example
2451
+ * await client.devices.getAdvertisingId({
2452
+ * workspaceId: "workspaceId",
2453
+ * deviceId: "deviceId"
2454
+ * })
2455
+ */
2456
+ getAdvertisingId(request, requestOptions) {
2457
+ return core.HttpResponsePromise.fromPromise(this.__getAdvertisingId(request, requestOptions));
2458
+ }
2459
+ async __getAdvertisingId(request, requestOptions) {
2460
+ const { workspaceId, deviceId } = request;
2461
+ const _authRequest = await this._options.authProvider.getAuthRequest();
2462
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
2463
+ const _response = await core.fetcher({
2464
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
2465
+ (await core.Supplier.get(this._options.environment)) ??
2466
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/advertising-id`),
2467
+ method: "GET",
2468
+ headers: _headers,
2469
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
2470
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
2471
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
2472
+ abortSignal: requestOptions?.abortSignal,
2473
+ fetchFn: this._options?.fetch,
2474
+ logging: this._options.logging,
2475
+ });
2476
+ if (_response.ok) {
2477
+ return {
2478
+ data: _response.body,
2479
+ rawResponse: _response.rawResponse,
2480
+ };
2481
+ }
2482
+ if (_response.error.reason === "status-code") {
2483
+ switch (_response.error.statusCode) {
2484
+ case 401:
2485
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
2486
+ case 404:
2487
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
2488
+ case 409:
2489
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
2490
+ case 502:
2491
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
2492
+ default:
2493
+ throw new errors.LusorError({
2494
+ statusCode: _response.error.statusCode,
2495
+ body: _response.error.body,
2496
+ rawResponse: _response.rawResponse,
2497
+ });
2498
+ }
2499
+ }
2500
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/workspaces/{workspaceId}/devices/{deviceId}/advertising-id");
2501
+ }
2502
+ /**
2503
+ * Gives the phone a new Google advertising ID. **Irreversible**: the
2504
+ * previous ID cannot be restored. Answers 202 with the reset
2505
+ * `pending`; read `GET .../advertising-id` until it is `applied` or
2506
+ * `failed`.
2507
+ *
2508
+ * @param {Lusor.ResetAdvertisingIdDevicesRequest} request
2509
+ * @param {DevicesClient.RequestOptions} requestOptions - Request-specific configuration.
2510
+ *
2511
+ * @throws {@link Lusor.UnauthorizedError}
2512
+ * @throws {@link Lusor.PaymentRequiredError}
2513
+ * @throws {@link Lusor.ForbiddenError}
2514
+ * @throws {@link Lusor.NotFoundError}
2515
+ * @throws {@link Lusor.ConflictError}
2516
+ * @throws {@link Lusor.BadGatewayError}
2517
+ * @throws {@link errors.LusorError}
2518
+ * @throws {@link errors.LusorTimeoutError}
2519
+ *
2520
+ * @example
2521
+ * await client.devices.resetAdvertisingId({
2522
+ * workspaceId: "workspaceId",
2523
+ * deviceId: "deviceId"
2524
+ * })
2525
+ */
2526
+ resetAdvertisingId(request, requestOptions) {
2527
+ return core.HttpResponsePromise.fromPromise(this.__resetAdvertisingId(request, requestOptions));
2528
+ }
2529
+ async __resetAdvertisingId(request, requestOptions) {
2530
+ const { workspaceId, deviceId, "Idempotency-Key": idempotencyKey } = request;
2531
+ const _authRequest = await this._options.authProvider.getAuthRequest();
2532
+ let _headers = mergeHeaders(_authRequest.headers, this._options?.headers, mergeOnlyDefinedHeaders({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
2533
+ const _response = await core.fetcher({
2534
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
2535
+ (await core.Supplier.get(this._options.environment)) ??
2536
+ environments.LusorEnvironment.Production, `v1/workspaces/${core.url.encodePathParam(workspaceId)}/devices/${core.url.encodePathParam(deviceId)}/advertising-id/reset`),
2537
+ method: "POST",
2538
+ headers: _headers,
2539
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
2540
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
2541
+ maxRetries: 0,
2542
+ abortSignal: requestOptions?.abortSignal,
2543
+ fetchFn: this._options?.fetch,
2544
+ logging: this._options.logging,
2545
+ });
2546
+ if (_response.ok) {
2547
+ return {
2548
+ data: _response.body,
2549
+ rawResponse: _response.rawResponse,
2550
+ };
2551
+ }
2552
+ if (_response.error.reason === "status-code") {
2553
+ switch (_response.error.statusCode) {
2554
+ case 401:
2555
+ throw new Lusor.UnauthorizedError(_response.error.body, _response.rawResponse);
2556
+ case 402:
2557
+ throw new Lusor.PaymentRequiredError(_response.error.body, _response.rawResponse);
2558
+ case 403:
2559
+ throw new Lusor.ForbiddenError(_response.error.body, _response.rawResponse);
2560
+ case 404:
2561
+ throw new Lusor.NotFoundError(_response.error.body, _response.rawResponse);
2562
+ case 409:
2563
+ throw new Lusor.ConflictError(_response.error.body, _response.rawResponse);
2564
+ case 502:
2565
+ throw new Lusor.BadGatewayError(_response.error.body, _response.rawResponse);
2566
+ default:
2567
+ throw new errors.LusorError({
2568
+ statusCode: _response.error.statusCode,
2569
+ body: _response.error.body,
2570
+ rawResponse: _response.rawResponse,
2571
+ });
2572
+ }
2573
+ }
2574
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/workspaces/{workspaceId}/devices/{deviceId}/advertising-id/reset");
2575
+ }
2576
+ }