@nizam-os/dashboard-sdk 10.0.0 → 11.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 (152) hide show
  1. package/dist/api/resources/activity/client/Client.d.ts +1 -1
  2. package/dist/api/resources/activity/client/Client.js +2 -2
  3. package/dist/api/resources/activity/client/requests/ListActivityRequest.d.ts +3 -2
  4. package/dist/api/resources/activity/index.d.ts +1 -0
  5. package/dist/api/resources/activity/index.js +1 -0
  6. package/dist/api/resources/activity/types/ListActivityRequestSortItem.d.ts +5 -0
  7. package/dist/api/resources/activity/types/ListActivityRequestSortItem.js +8 -0
  8. package/dist/api/resources/activity/types/index.d.ts +1 -0
  9. package/dist/api/resources/activity/types/index.js +17 -0
  10. package/dist/api/resources/assets/client/Client.d.ts +236 -1
  11. package/dist/api/resources/assets/client/Client.js +744 -5
  12. package/dist/api/resources/assets/client/requests/ActivateAssetRequest.d.ts +9 -0
  13. package/dist/api/resources/assets/client/requests/ActivateAssetRequest.js +3 -0
  14. package/dist/api/resources/assets/client/requests/AllowedTransitionsRequest.d.ts +10 -0
  15. package/dist/api/resources/assets/client/requests/AllowedTransitionsRequest.js +3 -0
  16. package/dist/api/resources/assets/client/requests/CreateAssetRequest.d.ts +25 -0
  17. package/dist/api/resources/assets/client/requests/CreateAssetRequest.js +10 -0
  18. package/dist/api/resources/assets/client/requests/DeactivateAssetRequest.d.ts +9 -0
  19. package/dist/api/resources/assets/client/requests/DeactivateAssetRequest.js +3 -0
  20. package/dist/api/resources/assets/client/requests/DeleteAssetRequest.d.ts +9 -0
  21. package/dist/api/resources/assets/client/requests/DeleteAssetRequest.js +3 -0
  22. package/dist/api/resources/assets/client/requests/EnterAssetMaintenanceRequest.d.ts +9 -0
  23. package/dist/api/resources/assets/client/requests/EnterAssetMaintenanceRequest.js +3 -0
  24. package/dist/api/resources/assets/client/requests/ExportAssetsRequest.d.ts +44 -0
  25. package/dist/api/resources/assets/client/requests/ExportAssetsRequest.js +31 -0
  26. package/dist/api/resources/assets/client/requests/ListAssetsRequest.d.ts +13 -6
  27. package/dist/api/resources/assets/client/requests/ReportAssetLostRequest.d.ts +9 -0
  28. package/dist/api/resources/assets/client/requests/ReportAssetLostRequest.js +3 -0
  29. package/dist/api/resources/assets/client/requests/RetireAssetRequest.d.ts +9 -0
  30. package/dist/api/resources/assets/client/requests/RetireAssetRequest.js +3 -0
  31. package/dist/api/resources/assets/client/requests/SellAssetRequest.d.ts +9 -0
  32. package/dist/api/resources/assets/client/requests/SellAssetRequest.js +3 -0
  33. package/dist/api/resources/assets/client/requests/TakeAssetOutOfServiceRequest.d.ts +9 -0
  34. package/dist/api/resources/assets/client/requests/TakeAssetOutOfServiceRequest.js +3 -0
  35. package/dist/api/resources/assets/client/requests/UpdateAssetRequest.d.ts +36 -0
  36. package/dist/api/resources/assets/client/requests/UpdateAssetRequest.js +3 -0
  37. package/dist/api/resources/assets/client/requests/index.d.ts +11 -0
  38. package/dist/api/resources/assets/client/requests/index.js +3 -1
  39. package/dist/api/resources/assets/index.d.ts +1 -0
  40. package/dist/api/resources/assets/index.js +1 -0
  41. package/dist/api/resources/assets/types/ListAssetsRequestKindItem.d.ts +12 -0
  42. package/dist/api/resources/assets/types/ListAssetsRequestKindItem.js +15 -0
  43. package/dist/api/resources/assets/types/ListAssetsRequestSortItem.d.ts +25 -0
  44. package/dist/api/resources/assets/types/ListAssetsRequestSortItem.js +28 -0
  45. package/dist/api/resources/assets/types/ListAssetsRequestStatusItem.d.ts +10 -0
  46. package/dist/api/resources/assets/types/ListAssetsRequestStatusItem.js +13 -0
  47. package/dist/api/resources/assets/types/index.d.ts +3 -0
  48. package/dist/api/resources/assets/types/index.js +19 -0
  49. package/dist/api/resources/files/client/Client.d.ts +1 -1
  50. package/dist/api/resources/files/client/Client.js +4 -4
  51. package/dist/api/resources/files/client/requests/InitiateFileUploadRequest.d.ts +1 -0
  52. package/dist/api/resources/files/client/requests/InitiateFileUploadRequest.js +1 -0
  53. package/dist/api/resources/files/client/requests/ListFilesRequest.d.ts +7 -6
  54. package/dist/api/resources/files/index.d.ts +1 -0
  55. package/dist/api/resources/files/index.js +1 -0
  56. package/dist/api/resources/files/types/ListFilesRequestKindItem.d.ts +11 -0
  57. package/dist/api/resources/files/types/ListFilesRequestKindItem.js +14 -0
  58. package/dist/api/resources/files/types/ListFilesRequestSortItem.d.ts +5 -0
  59. package/dist/api/resources/files/types/ListFilesRequestSortItem.js +8 -0
  60. package/dist/api/resources/files/types/ListFilesRequestStatusItem.d.ts +6 -0
  61. package/dist/api/resources/files/types/ListFilesRequestStatusItem.js +9 -0
  62. package/dist/api/resources/files/types/index.d.ts +3 -0
  63. package/dist/api/resources/files/types/index.js +19 -0
  64. package/dist/api/resources/index.d.ts +7 -0
  65. package/dist/api/resources/index.js +7 -0
  66. package/dist/api/resources/jobs/client/Client.d.ts +1 -1
  67. package/dist/api/resources/jobs/client/Client.js +2 -2
  68. package/dist/api/resources/jobs/client/requests/ListJobsRequest.d.ts +3 -2
  69. package/dist/api/resources/jobs/index.d.ts +1 -0
  70. package/dist/api/resources/jobs/index.js +1 -0
  71. package/dist/api/resources/jobs/types/ListJobsRequestSortItem.d.ts +5 -0
  72. package/dist/api/resources/jobs/types/ListJobsRequestSortItem.js +8 -0
  73. package/dist/api/resources/jobs/types/index.d.ts +1 -0
  74. package/dist/api/resources/jobs/types/index.js +17 -0
  75. package/dist/api/resources/notifications/client/Client.d.ts +1 -1
  76. package/dist/api/resources/notifications/client/Client.js +2 -2
  77. package/dist/api/resources/notifications/client/requests/ListNotificationsRequest.d.ts +3 -2
  78. package/dist/api/resources/notifications/index.d.ts +1 -0
  79. package/dist/api/resources/notifications/index.js +1 -0
  80. package/dist/api/resources/notifications/types/ListNotificationsRequestSortItem.d.ts +5 -0
  81. package/dist/api/resources/notifications/types/ListNotificationsRequestSortItem.js +8 -0
  82. package/dist/api/resources/notifications/types/index.d.ts +1 -0
  83. package/dist/api/resources/notifications/types/index.js +17 -0
  84. package/dist/api/resources/organizations/client/Client.d.ts +1 -1
  85. package/dist/api/resources/organizations/client/Client.js +2 -2
  86. package/dist/api/resources/organizations/client/requests/ListOrganizationsRequest.d.ts +3 -2
  87. package/dist/api/resources/organizations/index.d.ts +1 -0
  88. package/dist/api/resources/organizations/index.js +1 -0
  89. package/dist/api/resources/organizations/types/ListOrganizationsRequestSortItem.d.ts +5 -0
  90. package/dist/api/resources/organizations/types/ListOrganizationsRequestSortItem.js +8 -0
  91. package/dist/api/resources/organizations/types/index.d.ts +1 -0
  92. package/dist/api/resources/organizations/types/index.js +17 -0
  93. package/dist/api/resources/users/client/Client.d.ts +1 -1
  94. package/dist/api/resources/users/client/Client.js +2 -2
  95. package/dist/api/resources/users/client/requests/ListUsersRequest.d.ts +3 -2
  96. package/dist/api/resources/users/index.d.ts +1 -0
  97. package/dist/api/resources/users/index.js +1 -0
  98. package/dist/api/resources/users/types/ListUsersRequestSortItem.d.ts +7 -0
  99. package/dist/api/resources/users/types/ListUsersRequestSortItem.js +10 -0
  100. package/dist/api/resources/users/types/index.d.ts +1 -0
  101. package/dist/api/resources/users/types/index.js +17 -0
  102. package/dist/api/types/ActiveOrganization.d.ts +2 -2
  103. package/dist/api/types/ActivityResource.d.ts +4 -4
  104. package/dist/api/types/AllowedTransitions.d.ts +28 -0
  105. package/dist/api/types/AllowedTransitions.js +23 -0
  106. package/dist/api/types/ApiFieldError.d.ts +1 -1
  107. package/dist/api/types/Asset.d.ts +26 -4
  108. package/dist/api/types/Asset.js +13 -0
  109. package/dist/api/types/AssetListItem.d.ts +11 -5
  110. package/dist/api/types/Assignment.d.ts +6 -6
  111. package/dist/api/types/BulkJobSubmission.d.ts +3 -3
  112. package/dist/api/types/BusinessCategory.d.ts +3 -3
  113. package/dist/api/types/Country.d.ts +3 -3
  114. package/dist/api/types/Currency.d.ts +5 -5
  115. package/dist/api/types/Device.d.ts +6 -6
  116. package/dist/api/types/Devices.d.ts +2 -2
  117. package/dist/api/types/FileDownloadUrl.d.ts +4 -4
  118. package/dist/api/types/FileUploadSession.d.ts +12 -11
  119. package/dist/api/types/FileUploadSession.js +1 -0
  120. package/dist/api/types/File_.d.ts +14 -13
  121. package/dist/api/types/File_.js +1 -0
  122. package/dist/api/types/HeatmapCell.d.ts +4 -4
  123. package/dist/api/types/ImportError.d.ts +4 -4
  124. package/dist/api/types/ImportSubmission.d.ts +4 -4
  125. package/dist/api/types/Invite.d.ts +8 -8
  126. package/dist/api/types/Job.d.ts +11 -11
  127. package/dist/api/types/JobSubmission.d.ts +2 -2
  128. package/dist/api/types/Language.d.ts +4 -4
  129. package/dist/api/types/Membership.d.ts +3 -3
  130. package/dist/api/types/MqttToken.d.ts +4 -4
  131. package/dist/api/types/Notification.d.ts +9 -9
  132. package/dist/api/types/NotificationCounts.d.ts +5 -5
  133. package/dist/api/types/NotificationDeadLetter.d.ts +9 -9
  134. package/dist/api/types/NotificationPreferences.d.ts +2 -2
  135. package/dist/api/types/NotificationUnreadCount.d.ts +2 -2
  136. package/dist/api/types/NotificationsArchived.d.ts +2 -2
  137. package/dist/api/types/NotificationsMarkedRead.d.ts +2 -2
  138. package/dist/api/types/Operator.d.ts +4 -4
  139. package/dist/api/types/OperatorPosition.d.ts +5 -5
  140. package/dist/api/types/Organization.d.ts +7 -7
  141. package/dist/api/types/Position.d.ts +6 -6
  142. package/dist/api/types/ProblemDetail.d.ts +1 -1
  143. package/dist/api/types/RealtimeTicket.d.ts +3 -3
  144. package/dist/api/types/ReconcileResponse.d.ts +4 -4
  145. package/dist/api/types/TaskAttemptPhoto.d.ts +7 -7
  146. package/dist/api/types/Timezone.d.ts +4 -4
  147. package/dist/api/types/UploadInitiation.d.ts +6 -6
  148. package/dist/api/types/User.d.ts +5 -5
  149. package/dist/api/types/UserResource.d.ts +4 -4
  150. package/dist/api/types/index.d.ts +1 -0
  151. package/dist/api/types/index.js +1 -0
  152. package/package.json +1 -1
@@ -50,7 +50,7 @@ class AssetsClient {
50
50
  this._options = (0, BaseClient_js_1.normalizeClientOptionsWithAuth)(options);
51
51
  }
52
52
  /**
53
- * Without `q`: the org's assets ordered by `created_at` descending (or an explicit `sort`). With `q`: ranked search across name, VIN, code, plate, serial, call sign, make, model and sub-kind — accent-insensitive and language-agnostic (epic #97). Matching is hybrid: whole words and word-prefixes (type-ahead — `pick` finds `Picker Bot 3`) plus substrings and typos (`ick`, or a misspelled `sprintr`, still match). `q` results are ordered by relevance unless `sort` is given, in which case the search narrows the rows and `sort` orders them. Allowed sort fields: `created_at`, `name`, `plate_number` a single field, `-` prefix for descending. `status` / `kind` accept comma-separated values and narrow every mode. Pagination is bidirectional (`starting_after` / `ending_before`); cursors are bound to the sort that minted them — switching sorts restarts from the first page. `highlight=true` adds a `<mark>`-wrapped match snippet (relevance mode only).
53
+ * Without `q`: the org's assets ordered by `created_at` descending (or an explicit `sort`). With `q`: ranked search across name, VIN, code, plate, serial, call sign, make, model and sub-kind — accent-insensitive and language-agnostic (epic #97). Matching is hybrid: whole words and word-prefixes (type-ahead — `pick` finds `Picker Bot 3`) plus substrings and typos (`ick`, or a misspelled `sprintr`, still match). `q` results are ordered by relevance unless `sort` is given, in which case the search narrows the rows and `sort` orders them. Sort by a single column — the allowed fields and direction grammar are enumerated on the `sort` parameter; `status` and `kind` sort by their domain order (status lifecycle, kind grouping), not the stored code or the tenant-relabeled display string. As filters, `status` / `kind` accept comma-separated values and narrow every mode. Pagination is bidirectional (`starting_after` / `ending_before`); cursors are bound to the sort that minted them — switching sorts restarts from the first page. `highlight=true` adds a `<mark>`-wrapped match snippet (relevance mode only).
54
54
  *
55
55
  * @param {NizamDashboard.ListAssetsRequest} request
56
56
  * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -64,6 +64,8 @@ class AssetsClient {
64
64
  * @example
65
65
  * await client.assets.listAssets({
66
66
  * q: "<string>",
67
+ * created_on_or_after: "2026-05-20",
68
+ * created_on_or_before: "2026-05-20",
67
69
  * starting_after: "Y3Vyc29yX25leHRfMDFKNVE=",
68
70
  * ending_before: "Y3Vyc29yX25leHRfMDFKNVE="
69
71
  * })
@@ -72,13 +74,15 @@ class AssetsClient {
72
74
  return core.HttpResponsePromise.fromPromise(this.__listAssets(request, requestOptions));
73
75
  }
74
76
  async __listAssets(request = {}, requestOptions) {
75
- const { q, highlight, status, kind, sort, limit, starting_after: startingAfter, ending_before: endingBefore, } = request;
77
+ const { q, highlight, status, kind, created_on_or_after: createdOnOrAfter, created_on_or_before: createdOnOrBefore, sort, limit, starting_after: startingAfter, ending_before: endingBefore, } = request;
76
78
  const _queryParams = {
77
79
  q,
78
80
  highlight,
79
- status,
80
- kind,
81
- sort,
81
+ status: Array.isArray(status) ? status.map((item) => item) : status != null ? status : undefined,
82
+ kind: Array.isArray(kind) ? kind.map((item) => item) : kind != null ? kind : undefined,
83
+ created_on_or_after: createdOnOrAfter != null ? createdOnOrAfter : undefined,
84
+ created_on_or_before: createdOnOrBefore != null ? createdOnOrBefore : undefined,
85
+ sort: Array.isArray(sort) ? sort.map((item) => item) : sort != null ? sort : undefined,
82
86
  limit,
83
87
  starting_after: startingAfter,
84
88
  ending_before: endingBefore,
@@ -226,6 +230,142 @@ class AssetsClient {
226
230
  }
227
231
  return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets");
228
232
  }
233
+ /**
234
+ * Returns the lifecycle statuses EVERY asset in the selection may legally move to next — the intersection of each asset's legal-transition set (the same matrix the per-asset `allowed_transitions` field and the transition verbs enforce). The status picker calls this so a bulk change offers only moves legal for the WHOLE selection, instead of offering every status and relying on per-row 409s. Ids that don't resolve to a live asset in your organization are ignored; a selection that shares no common next status (e.g. it includes a terminal sold/lost asset) returns an empty list. It is a read — re-asserting it is free.
235
+ *
236
+ * @param {NizamDashboard.AllowedTransitionsRequest} request
237
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
238
+ *
239
+ * @throws {@link NizamDashboard.BadRequestError}
240
+ * @throws {@link NizamDashboard.UnauthorizedError}
241
+ * @throws {@link NizamDashboard.ForbiddenError}
242
+ * @throws {@link NizamDashboard.UnprocessableEntityError}
243
+ * @throws {@link NizamDashboard.TooManyRequestsError}
244
+ * @throws {@link NizamDashboard.InternalServerError}
245
+ *
246
+ * @example
247
+ * await client.assets.assetAllowedTransitions({
248
+ * ids: ["8f55f0eb-7d3a-4f2c-9c8d-a1b2c3d4e5f6"]
249
+ * })
250
+ */
251
+ assetAllowedTransitions(request, requestOptions) {
252
+ return core.HttpResponsePromise.fromPromise(this.__assetAllowedTransitions(request, requestOptions));
253
+ }
254
+ async __assetAllowedTransitions(request, requestOptions) {
255
+ const _authRequest = await this._options.authProvider.getAuthRequest();
256
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
257
+ const _response = await core.fetcher({
258
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
259
+ (await core.Supplier.get(this._options.environment)) ??
260
+ environments.NizamDashboardEnvironment.Production, "v1/assets/allowed-transitions"),
261
+ method: "POST",
262
+ headers: _headers,
263
+ contentType: "application/json",
264
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
265
+ requestType: "json",
266
+ body: request,
267
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
268
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
269
+ abortSignal: requestOptions?.abortSignal,
270
+ fetchFn: this._options?.fetch,
271
+ logging: this._options.logging,
272
+ });
273
+ if (_response.ok) {
274
+ return { data: _response.body, rawResponse: _response.rawResponse };
275
+ }
276
+ if (_response.error.reason === "status-code") {
277
+ switch (_response.error.statusCode) {
278
+ case 400:
279
+ throw new NizamDashboard.BadRequestError(_response.error.body, _response.rawResponse);
280
+ case 401:
281
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
282
+ case 403:
283
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
284
+ case 422:
285
+ throw new NizamDashboard.UnprocessableEntityError(_response.error.body, _response.rawResponse);
286
+ case 429:
287
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
288
+ case 500:
289
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
290
+ default:
291
+ throw new errors.NizamDashboardError({
292
+ statusCode: _response.error.statusCode,
293
+ body: _response.error.body,
294
+ rawResponse: _response.rawResponse,
295
+ });
296
+ }
297
+ }
298
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets/allowed-transitions");
299
+ }
300
+ /**
301
+ * Generates a CSV / XLSX / JSON file of the selected assets with the chosen columns and returns a short-lived download URL the browser follows to download it. Columns are emitted in the requested order; `kind` and `status` carry their stored code (re-importable), not the tenant's display label. The id count is capped — this exports an explicit selection. POST because generating + storing the file and logging the egress is an audited action, not a cacheable read.
302
+ *
303
+ * @param {NizamDashboard.ExportAssetsRequest} request
304
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
305
+ *
306
+ * @throws {@link NizamDashboard.BadRequestError}
307
+ * @throws {@link NizamDashboard.UnauthorizedError}
308
+ * @throws {@link NizamDashboard.ForbiddenError}
309
+ * @throws {@link NizamDashboard.UnprocessableEntityError}
310
+ * @throws {@link NizamDashboard.TooManyRequestsError}
311
+ * @throws {@link NizamDashboard.InternalServerError}
312
+ *
313
+ * @example
314
+ * await client.assets.exportAssets({
315
+ * format: "xlsx",
316
+ * fields: ["id", "name", "status"],
317
+ * ids: ["8f55f0eb-7d3a-4f2c-9c8d-a1b2c3d4e5f6"]
318
+ * })
319
+ */
320
+ exportAssets(request, requestOptions) {
321
+ return core.HttpResponsePromise.fromPromise(this.__exportAssets(request, requestOptions));
322
+ }
323
+ async __exportAssets(request, requestOptions) {
324
+ const _authRequest = await this._options.authProvider.getAuthRequest();
325
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
326
+ const _response = await core.fetcher({
327
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
328
+ (await core.Supplier.get(this._options.environment)) ??
329
+ environments.NizamDashboardEnvironment.Production, "v1/assets/export"),
330
+ method: "POST",
331
+ headers: _headers,
332
+ contentType: "application/json",
333
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
334
+ requestType: "json",
335
+ body: request,
336
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
337
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
338
+ abortSignal: requestOptions?.abortSignal,
339
+ fetchFn: this._options?.fetch,
340
+ logging: this._options.logging,
341
+ });
342
+ if (_response.ok) {
343
+ return { data: _response.body, rawResponse: _response.rawResponse };
344
+ }
345
+ if (_response.error.reason === "status-code") {
346
+ switch (_response.error.statusCode) {
347
+ case 400:
348
+ throw new NizamDashboard.BadRequestError(_response.error.body, _response.rawResponse);
349
+ case 401:
350
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
351
+ case 403:
352
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
353
+ case 422:
354
+ throw new NizamDashboard.UnprocessableEntityError(_response.error.body, _response.rawResponse);
355
+ case 429:
356
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
357
+ case 500:
358
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
359
+ default:
360
+ throw new errors.NizamDashboardError({
361
+ statusCode: _response.error.statusCode,
362
+ body: _response.error.body,
363
+ rawResponse: _response.rawResponse,
364
+ });
365
+ }
366
+ }
367
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets/export");
368
+ }
229
369
  /**
230
370
  * Returns a correctly-shaped XLSX template (header row + one example row) for the bulk asset import. Fill it in and upload it via POST /v1/imports to import assets in bulk.
231
371
  *
@@ -337,5 +477,604 @@ class AssetsClient {
337
477
  }
338
478
  return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "GET", "/v1/assets/{id}");
339
479
  }
480
+ /**
481
+ * Soft-deletes the asset: it disappears from listings immediately and frees its VIN for re-registration. Assignments and historical records are left untouched. There is no synchronous bulk-delete endpoint — delete a selection by fanning out per-id requests (each is naturally idempotent).
482
+ *
483
+ * @param {NizamDashboard.DeleteAssetRequest} request
484
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
485
+ *
486
+ * @throws {@link NizamDashboard.UnauthorizedError}
487
+ * @throws {@link NizamDashboard.ForbiddenError}
488
+ * @throws {@link NizamDashboard.NotFoundError}
489
+ * @throws {@link NizamDashboard.TooManyRequestsError}
490
+ * @throws {@link NizamDashboard.InternalServerError}
491
+ *
492
+ * @example
493
+ * await client.assets.deleteAsset({
494
+ * id: "00000000-0000-0000-0000-000000000000"
495
+ * })
496
+ */
497
+ deleteAsset(request, requestOptions) {
498
+ return core.HttpResponsePromise.fromPromise(this.__deleteAsset(request, requestOptions));
499
+ }
500
+ async __deleteAsset(request, requestOptions) {
501
+ const { id } = request;
502
+ const _authRequest = await this._options.authProvider.getAuthRequest();
503
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
504
+ const _response = await core.fetcher({
505
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
506
+ (await core.Supplier.get(this._options.environment)) ??
507
+ environments.NizamDashboardEnvironment.Production, `v1/assets/${core.url.encodePathParam(id)}`),
508
+ method: "DELETE",
509
+ headers: _headers,
510
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
511
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
512
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
513
+ abortSignal: requestOptions?.abortSignal,
514
+ fetchFn: this._options?.fetch,
515
+ logging: this._options.logging,
516
+ });
517
+ if (_response.ok) {
518
+ return { data: undefined, rawResponse: _response.rawResponse };
519
+ }
520
+ if (_response.error.reason === "status-code") {
521
+ switch (_response.error.statusCode) {
522
+ case 401:
523
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
524
+ case 403:
525
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
526
+ case 404:
527
+ throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
528
+ case 429:
529
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
530
+ case 500:
531
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
532
+ default:
533
+ throw new errors.NizamDashboardError({
534
+ statusCode: _response.error.statusCode,
535
+ body: _response.error.body,
536
+ rawResponse: _response.rawResponse,
537
+ });
538
+ }
539
+ }
540
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "DELETE", "/v1/assets/{id}");
541
+ }
542
+ /**
543
+ * Set-only partial update of an asset's mutable fields — display name, sub-kind, autonomy level, and the vehicle identity (VIN, plate, make, model, year). Omitted or null fields are left unchanged. An asset's `kind` is immutable and lifecycle `status` moves through dedicated transitions, so neither is editable here.
544
+ *
545
+ * @param {NizamDashboard.UpdateAssetRequest} request
546
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
547
+ *
548
+ * @throws {@link NizamDashboard.UnauthorizedError}
549
+ * @throws {@link NizamDashboard.ForbiddenError}
550
+ * @throws {@link NizamDashboard.NotFoundError}
551
+ * @throws {@link NizamDashboard.ConflictError}
552
+ * @throws {@link NizamDashboard.UnprocessableEntityError}
553
+ * @throws {@link NizamDashboard.TooManyRequestsError}
554
+ * @throws {@link NizamDashboard.InternalServerError}
555
+ *
556
+ * @example
557
+ * await client.assets.updateAsset({
558
+ * id: "00000000-0000-0000-0000-000000000000",
559
+ * name: "Truck 7B"
560
+ * })
561
+ *
562
+ * @example
563
+ * await client.assets.updateAsset({
564
+ * id: "00000000-0000-0000-0000-000000000000",
565
+ * vin: "1HGCM82633A004352",
566
+ * plate_number: "AB-123-CD",
567
+ * make: "Volvo",
568
+ * model: "FH16",
569
+ * year: 2024
570
+ * })
571
+ */
572
+ updateAsset(request, requestOptions) {
573
+ return core.HttpResponsePromise.fromPromise(this.__updateAsset(request, requestOptions));
574
+ }
575
+ async __updateAsset(request, requestOptions) {
576
+ const { id, ..._body } = request;
577
+ const _authRequest = await this._options.authProvider.getAuthRequest();
578
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
579
+ const _response = await core.fetcher({
580
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
581
+ (await core.Supplier.get(this._options.environment)) ??
582
+ environments.NizamDashboardEnvironment.Production, `v1/assets/${core.url.encodePathParam(id)}`),
583
+ method: "PATCH",
584
+ headers: _headers,
585
+ contentType: "application/json",
586
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
587
+ requestType: "json",
588
+ body: _body,
589
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
590
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
591
+ abortSignal: requestOptions?.abortSignal,
592
+ fetchFn: this._options?.fetch,
593
+ logging: this._options.logging,
594
+ });
595
+ if (_response.ok) {
596
+ return { data: _response.body, rawResponse: _response.rawResponse };
597
+ }
598
+ if (_response.error.reason === "status-code") {
599
+ switch (_response.error.statusCode) {
600
+ case 401:
601
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
602
+ case 403:
603
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
604
+ case 404:
605
+ throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
606
+ case 409:
607
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
608
+ case 422:
609
+ throw new NizamDashboard.UnprocessableEntityError(_response.error.body, _response.rawResponse);
610
+ case 429:
611
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
612
+ case 500:
613
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
614
+ default:
615
+ throw new errors.NizamDashboardError({
616
+ statusCode: _response.error.statusCode,
617
+ body: _response.error.body,
618
+ rawResponse: _response.rawResponse,
619
+ });
620
+ }
621
+ }
622
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "PATCH", "/v1/assets/{id}");
623
+ }
624
+ /**
625
+ * Returns the asset to `active` service. Idempotent no-op if already active; an illegal edge (e.g. from a terminal sold/lost asset) → 409 `asset.invalid_transition`. No body — fan out per id for a bulk change.
626
+ *
627
+ * @param {NizamDashboard.ActivateAssetRequest} request
628
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
629
+ *
630
+ * @throws {@link NizamDashboard.UnauthorizedError}
631
+ * @throws {@link NizamDashboard.ForbiddenError}
632
+ * @throws {@link NizamDashboard.NotFoundError}
633
+ * @throws {@link NizamDashboard.ConflictError}
634
+ * @throws {@link NizamDashboard.TooManyRequestsError}
635
+ * @throws {@link NizamDashboard.InternalServerError}
636
+ *
637
+ * @example
638
+ * await client.assets.activateAsset({
639
+ * id: "00000000-0000-0000-0000-000000000000"
640
+ * })
641
+ */
642
+ activateAsset(request, requestOptions) {
643
+ return core.HttpResponsePromise.fromPromise(this.__activateAsset(request, requestOptions));
644
+ }
645
+ async __activateAsset(request, requestOptions) {
646
+ const { id } = request;
647
+ const _authRequest = await this._options.authProvider.getAuthRequest();
648
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
649
+ const _response = await core.fetcher({
650
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
651
+ (await core.Supplier.get(this._options.environment)) ??
652
+ environments.NizamDashboardEnvironment.Production, `v1/assets/${core.url.encodePathParam(id)}/activate`),
653
+ method: "POST",
654
+ headers: _headers,
655
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
656
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
657
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
658
+ abortSignal: requestOptions?.abortSignal,
659
+ fetchFn: this._options?.fetch,
660
+ logging: this._options.logging,
661
+ });
662
+ if (_response.ok) {
663
+ return { data: _response.body, rawResponse: _response.rawResponse };
664
+ }
665
+ if (_response.error.reason === "status-code") {
666
+ switch (_response.error.statusCode) {
667
+ case 401:
668
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
669
+ case 403:
670
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
671
+ case 404:
672
+ throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
673
+ case 409:
674
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
675
+ case 429:
676
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
677
+ case 500:
678
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
679
+ default:
680
+ throw new errors.NizamDashboardError({
681
+ statusCode: _response.error.statusCode,
682
+ body: _response.error.body,
683
+ rawResponse: _response.rawResponse,
684
+ });
685
+ }
686
+ }
687
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets/{id}/activate");
688
+ }
689
+ /**
690
+ * Marks the asset `inactive` (idle but still in-fleet). Idempotent no-op if already inactive; an illegal edge → 409 `asset.invalid_transition`. No body.
691
+ *
692
+ * @param {NizamDashboard.DeactivateAssetRequest} request
693
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
694
+ *
695
+ * @throws {@link NizamDashboard.UnauthorizedError}
696
+ * @throws {@link NizamDashboard.ForbiddenError}
697
+ * @throws {@link NizamDashboard.NotFoundError}
698
+ * @throws {@link NizamDashboard.ConflictError}
699
+ * @throws {@link NizamDashboard.TooManyRequestsError}
700
+ * @throws {@link NizamDashboard.InternalServerError}
701
+ *
702
+ * @example
703
+ * await client.assets.deactivateAsset({
704
+ * id: "00000000-0000-0000-0000-000000000000"
705
+ * })
706
+ */
707
+ deactivateAsset(request, requestOptions) {
708
+ return core.HttpResponsePromise.fromPromise(this.__deactivateAsset(request, requestOptions));
709
+ }
710
+ async __deactivateAsset(request, requestOptions) {
711
+ const { id } = request;
712
+ const _authRequest = await this._options.authProvider.getAuthRequest();
713
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
714
+ const _response = await core.fetcher({
715
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
716
+ (await core.Supplier.get(this._options.environment)) ??
717
+ environments.NizamDashboardEnvironment.Production, `v1/assets/${core.url.encodePathParam(id)}/deactivate`),
718
+ method: "POST",
719
+ headers: _headers,
720
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
721
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
722
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
723
+ abortSignal: requestOptions?.abortSignal,
724
+ fetchFn: this._options?.fetch,
725
+ logging: this._options.logging,
726
+ });
727
+ if (_response.ok) {
728
+ return { data: _response.body, rawResponse: _response.rawResponse };
729
+ }
730
+ if (_response.error.reason === "status-code") {
731
+ switch (_response.error.statusCode) {
732
+ case 401:
733
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
734
+ case 403:
735
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
736
+ case 404:
737
+ throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
738
+ case 409:
739
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
740
+ case 429:
741
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
742
+ case 500:
743
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
744
+ default:
745
+ throw new errors.NizamDashboardError({
746
+ statusCode: _response.error.statusCode,
747
+ body: _response.error.body,
748
+ rawResponse: _response.rawResponse,
749
+ });
750
+ }
751
+ }
752
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets/{id}/deactivate");
753
+ }
754
+ /**
755
+ * Moves the asset into `maintenance`. Idempotent no-op if already in maintenance; an illegal edge → 409 `asset.invalid_transition`. No body.
756
+ *
757
+ * @param {NizamDashboard.EnterAssetMaintenanceRequest} request
758
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
759
+ *
760
+ * @throws {@link NizamDashboard.UnauthorizedError}
761
+ * @throws {@link NizamDashboard.ForbiddenError}
762
+ * @throws {@link NizamDashboard.NotFoundError}
763
+ * @throws {@link NizamDashboard.ConflictError}
764
+ * @throws {@link NizamDashboard.TooManyRequestsError}
765
+ * @throws {@link NizamDashboard.InternalServerError}
766
+ *
767
+ * @example
768
+ * await client.assets.enterAssetMaintenance({
769
+ * id: "00000000-0000-0000-0000-000000000000"
770
+ * })
771
+ */
772
+ enterAssetMaintenance(request, requestOptions) {
773
+ return core.HttpResponsePromise.fromPromise(this.__enterAssetMaintenance(request, requestOptions));
774
+ }
775
+ async __enterAssetMaintenance(request, requestOptions) {
776
+ const { id } = request;
777
+ const _authRequest = await this._options.authProvider.getAuthRequest();
778
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
779
+ const _response = await core.fetcher({
780
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
781
+ (await core.Supplier.get(this._options.environment)) ??
782
+ environments.NizamDashboardEnvironment.Production, `v1/assets/${core.url.encodePathParam(id)}/enter-maintenance`),
783
+ method: "POST",
784
+ headers: _headers,
785
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
786
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
787
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
788
+ abortSignal: requestOptions?.abortSignal,
789
+ fetchFn: this._options?.fetch,
790
+ logging: this._options.logging,
791
+ });
792
+ if (_response.ok) {
793
+ return { data: _response.body, rawResponse: _response.rawResponse };
794
+ }
795
+ if (_response.error.reason === "status-code") {
796
+ switch (_response.error.statusCode) {
797
+ case 401:
798
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
799
+ case 403:
800
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
801
+ case 404:
802
+ throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
803
+ case 409:
804
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
805
+ case 429:
806
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
807
+ case 500:
808
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
809
+ default:
810
+ throw new errors.NizamDashboardError({
811
+ statusCode: _response.error.statusCode,
812
+ body: _response.error.body,
813
+ rawResponse: _response.rawResponse,
814
+ });
815
+ }
816
+ }
817
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets/{id}/enter-maintenance");
818
+ }
819
+ /**
820
+ * Marks the asset `lost` — a terminal state; the asset has left the fleet and accepts no further transitions. Idempotent no-op if already lost; an illegal edge → 409 `asset.invalid_transition`. No body.
821
+ *
822
+ * @param {NizamDashboard.ReportAssetLostRequest} request
823
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
824
+ *
825
+ * @throws {@link NizamDashboard.UnauthorizedError}
826
+ * @throws {@link NizamDashboard.ForbiddenError}
827
+ * @throws {@link NizamDashboard.NotFoundError}
828
+ * @throws {@link NizamDashboard.ConflictError}
829
+ * @throws {@link NizamDashboard.TooManyRequestsError}
830
+ * @throws {@link NizamDashboard.InternalServerError}
831
+ *
832
+ * @example
833
+ * await client.assets.reportAssetLost({
834
+ * id: "00000000-0000-0000-0000-000000000000"
835
+ * })
836
+ */
837
+ reportAssetLost(request, requestOptions) {
838
+ return core.HttpResponsePromise.fromPromise(this.__reportAssetLost(request, requestOptions));
839
+ }
840
+ async __reportAssetLost(request, requestOptions) {
841
+ const { id } = request;
842
+ const _authRequest = await this._options.authProvider.getAuthRequest();
843
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
844
+ const _response = await core.fetcher({
845
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
846
+ (await core.Supplier.get(this._options.environment)) ??
847
+ environments.NizamDashboardEnvironment.Production, `v1/assets/${core.url.encodePathParam(id)}/report-lost`),
848
+ method: "POST",
849
+ headers: _headers,
850
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
851
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
852
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
853
+ abortSignal: requestOptions?.abortSignal,
854
+ fetchFn: this._options?.fetch,
855
+ logging: this._options.logging,
856
+ });
857
+ if (_response.ok) {
858
+ return { data: _response.body, rawResponse: _response.rawResponse };
859
+ }
860
+ if (_response.error.reason === "status-code") {
861
+ switch (_response.error.statusCode) {
862
+ case 401:
863
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
864
+ case 403:
865
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
866
+ case 404:
867
+ throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
868
+ case 409:
869
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
870
+ case 429:
871
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
872
+ case 500:
873
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
874
+ default:
875
+ throw new errors.NizamDashboardError({
876
+ statusCode: _response.error.statusCode,
877
+ body: _response.error.body,
878
+ rawResponse: _response.rawResponse,
879
+ });
880
+ }
881
+ }
882
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets/{id}/report-lost");
883
+ }
884
+ /**
885
+ * Retires the asset (`retired`) — decommissioned but still owned; it may later be reactivated, sold, or reported lost. Idempotent no-op if already retired; an illegal edge → 409 `asset.invalid_transition`. No body.
886
+ *
887
+ * @param {NizamDashboard.RetireAssetRequest} request
888
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
889
+ *
890
+ * @throws {@link NizamDashboard.UnauthorizedError}
891
+ * @throws {@link NizamDashboard.ForbiddenError}
892
+ * @throws {@link NizamDashboard.NotFoundError}
893
+ * @throws {@link NizamDashboard.ConflictError}
894
+ * @throws {@link NizamDashboard.TooManyRequestsError}
895
+ * @throws {@link NizamDashboard.InternalServerError}
896
+ *
897
+ * @example
898
+ * await client.assets.retireAsset({
899
+ * id: "00000000-0000-0000-0000-000000000000"
900
+ * })
901
+ */
902
+ retireAsset(request, requestOptions) {
903
+ return core.HttpResponsePromise.fromPromise(this.__retireAsset(request, requestOptions));
904
+ }
905
+ async __retireAsset(request, requestOptions) {
906
+ const { id } = request;
907
+ const _authRequest = await this._options.authProvider.getAuthRequest();
908
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
909
+ const _response = await core.fetcher({
910
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
911
+ (await core.Supplier.get(this._options.environment)) ??
912
+ environments.NizamDashboardEnvironment.Production, `v1/assets/${core.url.encodePathParam(id)}/retire`),
913
+ method: "POST",
914
+ headers: _headers,
915
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
916
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
917
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
918
+ abortSignal: requestOptions?.abortSignal,
919
+ fetchFn: this._options?.fetch,
920
+ logging: this._options.logging,
921
+ });
922
+ if (_response.ok) {
923
+ return { data: _response.body, rawResponse: _response.rawResponse };
924
+ }
925
+ if (_response.error.reason === "status-code") {
926
+ switch (_response.error.statusCode) {
927
+ case 401:
928
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
929
+ case 403:
930
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
931
+ case 404:
932
+ throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
933
+ case 409:
934
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
935
+ case 429:
936
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
937
+ case 500:
938
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
939
+ default:
940
+ throw new errors.NizamDashboardError({
941
+ statusCode: _response.error.statusCode,
942
+ body: _response.error.body,
943
+ rawResponse: _response.rawResponse,
944
+ });
945
+ }
946
+ }
947
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets/{id}/retire");
948
+ }
949
+ /**
950
+ * Marks the asset `sold` — a terminal state; the asset has left the fleet and accepts no further transitions. Idempotent no-op if already sold; an illegal edge → 409 `asset.invalid_transition`. No body.
951
+ *
952
+ * @param {NizamDashboard.SellAssetRequest} request
953
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
954
+ *
955
+ * @throws {@link NizamDashboard.UnauthorizedError}
956
+ * @throws {@link NizamDashboard.ForbiddenError}
957
+ * @throws {@link NizamDashboard.NotFoundError}
958
+ * @throws {@link NizamDashboard.ConflictError}
959
+ * @throws {@link NizamDashboard.TooManyRequestsError}
960
+ * @throws {@link NizamDashboard.InternalServerError}
961
+ *
962
+ * @example
963
+ * await client.assets.sellAsset({
964
+ * id: "00000000-0000-0000-0000-000000000000"
965
+ * })
966
+ */
967
+ sellAsset(request, requestOptions) {
968
+ return core.HttpResponsePromise.fromPromise(this.__sellAsset(request, requestOptions));
969
+ }
970
+ async __sellAsset(request, requestOptions) {
971
+ const { id } = request;
972
+ const _authRequest = await this._options.authProvider.getAuthRequest();
973
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
974
+ const _response = await core.fetcher({
975
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
976
+ (await core.Supplier.get(this._options.environment)) ??
977
+ environments.NizamDashboardEnvironment.Production, `v1/assets/${core.url.encodePathParam(id)}/sell`),
978
+ method: "POST",
979
+ headers: _headers,
980
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
981
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
982
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
983
+ abortSignal: requestOptions?.abortSignal,
984
+ fetchFn: this._options?.fetch,
985
+ logging: this._options.logging,
986
+ });
987
+ if (_response.ok) {
988
+ return { data: _response.body, rawResponse: _response.rawResponse };
989
+ }
990
+ if (_response.error.reason === "status-code") {
991
+ switch (_response.error.statusCode) {
992
+ case 401:
993
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
994
+ case 403:
995
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
996
+ case 404:
997
+ throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
998
+ case 409:
999
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
1000
+ case 429:
1001
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
1002
+ case 500:
1003
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
1004
+ default:
1005
+ throw new errors.NizamDashboardError({
1006
+ statusCode: _response.error.statusCode,
1007
+ body: _response.error.body,
1008
+ rawResponse: _response.rawResponse,
1009
+ });
1010
+ }
1011
+ }
1012
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets/{id}/sell");
1013
+ }
1014
+ /**
1015
+ * Moves the asset `out_of_service`. Idempotent no-op if already out of service; an illegal edge → 409 `asset.invalid_transition`. No body.
1016
+ *
1017
+ * @param {NizamDashboard.TakeAssetOutOfServiceRequest} request
1018
+ * @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
1019
+ *
1020
+ * @throws {@link NizamDashboard.UnauthorizedError}
1021
+ * @throws {@link NizamDashboard.ForbiddenError}
1022
+ * @throws {@link NizamDashboard.NotFoundError}
1023
+ * @throws {@link NizamDashboard.ConflictError}
1024
+ * @throws {@link NizamDashboard.TooManyRequestsError}
1025
+ * @throws {@link NizamDashboard.InternalServerError}
1026
+ *
1027
+ * @example
1028
+ * await client.assets.takeAssetOutOfService({
1029
+ * id: "00000000-0000-0000-0000-000000000000"
1030
+ * })
1031
+ */
1032
+ takeAssetOutOfService(request, requestOptions) {
1033
+ return core.HttpResponsePromise.fromPromise(this.__takeAssetOutOfService(request, requestOptions));
1034
+ }
1035
+ async __takeAssetOutOfService(request, requestOptions) {
1036
+ const { id } = request;
1037
+ const _authRequest = await this._options.authProvider.getAuthRequest();
1038
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
1039
+ const _response = await core.fetcher({
1040
+ url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
1041
+ (await core.Supplier.get(this._options.environment)) ??
1042
+ environments.NizamDashboardEnvironment.Production, `v1/assets/${core.url.encodePathParam(id)}/take-out-of-service`),
1043
+ method: "POST",
1044
+ headers: _headers,
1045
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
1046
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
1047
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
1048
+ abortSignal: requestOptions?.abortSignal,
1049
+ fetchFn: this._options?.fetch,
1050
+ logging: this._options.logging,
1051
+ });
1052
+ if (_response.ok) {
1053
+ return { data: _response.body, rawResponse: _response.rawResponse };
1054
+ }
1055
+ if (_response.error.reason === "status-code") {
1056
+ switch (_response.error.statusCode) {
1057
+ case 401:
1058
+ throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
1059
+ case 403:
1060
+ throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
1061
+ case 404:
1062
+ throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
1063
+ case 409:
1064
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
1065
+ case 429:
1066
+ throw new NizamDashboard.TooManyRequestsError(_response.error.body, _response.rawResponse);
1067
+ case 500:
1068
+ throw new NizamDashboard.InternalServerError(_response.error.body, _response.rawResponse);
1069
+ default:
1070
+ throw new errors.NizamDashboardError({
1071
+ statusCode: _response.error.statusCode,
1072
+ body: _response.error.body,
1073
+ rawResponse: _response.rawResponse,
1074
+ });
1075
+ }
1076
+ }
1077
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/assets/{id}/take-out-of-service");
1078
+ }
340
1079
  }
341
1080
  exports.AssetsClient = AssetsClient;