@nizam-os/dashboard-sdk 9.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 (172) 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 +241 -1
  11. package/dist/api/resources/assets/client/Client.js +754 -7
  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 +31 -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/assignments/client/Client.d.ts +2 -0
  50. package/dist/api/resources/assignments/client/Client.js +5 -2
  51. package/dist/api/resources/assignments/client/requests/OpenAssignmentRequest.d.ts +4 -0
  52. package/dist/api/resources/files/client/Client.d.ts +3 -1
  53. package/dist/api/resources/files/client/Client.js +11 -6
  54. package/dist/api/resources/files/client/requests/InitiateFileUploadRequest.d.ts +4 -0
  55. package/dist/api/resources/files/client/requests/InitiateFileUploadRequest.js +1 -0
  56. package/dist/api/resources/files/client/requests/ListFilesRequest.d.ts +7 -6
  57. package/dist/api/resources/files/index.d.ts +1 -0
  58. package/dist/api/resources/files/index.js +1 -0
  59. package/dist/api/resources/files/types/ListFilesRequestKindItem.d.ts +11 -0
  60. package/dist/api/resources/files/types/ListFilesRequestKindItem.js +14 -0
  61. package/dist/api/resources/files/types/ListFilesRequestSortItem.d.ts +5 -0
  62. package/dist/api/resources/files/types/ListFilesRequestSortItem.js +8 -0
  63. package/dist/api/resources/files/types/ListFilesRequestStatusItem.d.ts +6 -0
  64. package/dist/api/resources/files/types/ListFilesRequestStatusItem.js +9 -0
  65. package/dist/api/resources/files/types/index.d.ts +3 -0
  66. package/dist/api/resources/files/types/index.js +19 -0
  67. package/dist/api/resources/imports/client/Client.d.ts +2 -0
  68. package/dist/api/resources/imports/client/Client.js +7 -2
  69. package/dist/api/resources/imports/client/requests/CreateImportRequest.d.ts +3 -0
  70. package/dist/api/resources/index.d.ts +7 -0
  71. package/dist/api/resources/index.js +7 -0
  72. package/dist/api/resources/invites/client/Client.d.ts +5 -0
  73. package/dist/api/resources/invites/client/Client.js +12 -2
  74. package/dist/api/resources/invites/client/requests/CreateInviteRequest.d.ts +5 -0
  75. package/dist/api/resources/jobs/client/Client.d.ts +1 -1
  76. package/dist/api/resources/jobs/client/Client.js +2 -2
  77. package/dist/api/resources/jobs/client/requests/ListJobsRequest.d.ts +3 -2
  78. package/dist/api/resources/jobs/index.d.ts +1 -0
  79. package/dist/api/resources/jobs/index.js +1 -0
  80. package/dist/api/resources/jobs/types/ListJobsRequestSortItem.d.ts +5 -0
  81. package/dist/api/resources/jobs/types/ListJobsRequestSortItem.js +8 -0
  82. package/dist/api/resources/jobs/types/index.d.ts +1 -0
  83. package/dist/api/resources/jobs/types/index.js +17 -0
  84. package/dist/api/resources/notifications/client/Client.d.ts +1 -1
  85. package/dist/api/resources/notifications/client/Client.js +2 -2
  86. package/dist/api/resources/notifications/client/requests/ListNotificationsRequest.d.ts +3 -2
  87. package/dist/api/resources/notifications/index.d.ts +1 -0
  88. package/dist/api/resources/notifications/index.js +1 -0
  89. package/dist/api/resources/notifications/types/ListNotificationsRequestSortItem.d.ts +5 -0
  90. package/dist/api/resources/notifications/types/ListNotificationsRequestSortItem.js +8 -0
  91. package/dist/api/resources/notifications/types/index.d.ts +1 -0
  92. package/dist/api/resources/notifications/types/index.js +17 -0
  93. package/dist/api/resources/operators/client/Client.d.ts +21 -11
  94. package/dist/api/resources/operators/client/Client.js +25 -12
  95. package/dist/api/resources/operators/client/requests/CreateOperatorBody.d.ts +37 -0
  96. package/dist/api/resources/operators/client/requests/CreateOperatorBody.js +3 -0
  97. package/dist/api/resources/operators/client/requests/index.d.ts +1 -0
  98. package/dist/api/resources/organizations/client/Client.d.ts +3 -3
  99. package/dist/api/resources/organizations/client/Client.js +7 -6
  100. package/dist/api/resources/organizations/client/requests/CreateOrganizationRequest.d.ts +4 -0
  101. package/dist/api/resources/organizations/client/requests/ListOrganizationsRequest.d.ts +3 -2
  102. package/dist/api/resources/organizations/index.d.ts +1 -0
  103. package/dist/api/resources/organizations/index.js +1 -0
  104. package/dist/api/resources/organizations/types/ListOrganizationsRequestSortItem.d.ts +5 -0
  105. package/dist/api/resources/organizations/types/ListOrganizationsRequestSortItem.js +8 -0
  106. package/dist/api/resources/organizations/types/index.d.ts +1 -0
  107. package/dist/api/resources/organizations/types/index.js +17 -0
  108. package/dist/api/resources/taskAttempts/client/Client.d.ts +2 -0
  109. package/dist/api/resources/taskAttempts/client/Client.js +6 -2
  110. package/dist/api/resources/taskAttempts/client/requests/CaptureTaskAttemptPhotoRequest.d.ts +3 -0
  111. package/dist/api/resources/users/client/Client.d.ts +4 -1
  112. package/dist/api/resources/users/client/Client.js +10 -4
  113. package/dist/api/resources/users/client/requests/InviteUserRequest.d.ts +4 -0
  114. package/dist/api/resources/users/client/requests/ListUsersRequest.d.ts +3 -2
  115. package/dist/api/resources/users/index.d.ts +1 -0
  116. package/dist/api/resources/users/index.js +1 -0
  117. package/dist/api/resources/users/types/ListUsersRequestSortItem.d.ts +7 -0
  118. package/dist/api/resources/users/types/ListUsersRequestSortItem.js +10 -0
  119. package/dist/api/resources/users/types/index.d.ts +1 -0
  120. package/dist/api/resources/users/types/index.js +17 -0
  121. package/dist/api/types/ActiveOrganization.d.ts +2 -2
  122. package/dist/api/types/ActivityResource.d.ts +4 -4
  123. package/dist/api/types/AllowedTransitions.d.ts +28 -0
  124. package/dist/api/types/AllowedTransitions.js +23 -0
  125. package/dist/api/types/ApiFieldError.d.ts +1 -1
  126. package/dist/api/types/Asset.d.ts +26 -4
  127. package/dist/api/types/Asset.js +13 -0
  128. package/dist/api/types/AssetListItem.d.ts +11 -5
  129. package/dist/api/types/Assignment.d.ts +6 -6
  130. package/dist/api/types/BulkJobSubmission.d.ts +3 -3
  131. package/dist/api/types/BusinessCategory.d.ts +3 -3
  132. package/dist/api/types/Country.d.ts +3 -3
  133. package/dist/api/types/Currency.d.ts +5 -5
  134. package/dist/api/types/Device.d.ts +21 -6
  135. package/dist/api/types/Device.js +13 -0
  136. package/dist/api/types/Devices.d.ts +2 -2
  137. package/dist/api/types/FileDownloadUrl.d.ts +4 -4
  138. package/dist/api/types/FileUploadSession.d.ts +12 -11
  139. package/dist/api/types/FileUploadSession.js +1 -0
  140. package/dist/api/types/File_.d.ts +14 -13
  141. package/dist/api/types/File_.js +1 -0
  142. package/dist/api/types/HeatmapCell.d.ts +4 -4
  143. package/dist/api/types/ImportError.d.ts +4 -4
  144. package/dist/api/types/ImportSubmission.d.ts +4 -4
  145. package/dist/api/types/Invite.d.ts +8 -8
  146. package/dist/api/types/Job.d.ts +11 -11
  147. package/dist/api/types/JobSubmission.d.ts +2 -2
  148. package/dist/api/types/Language.d.ts +4 -4
  149. package/dist/api/types/Membership.d.ts +3 -3
  150. package/dist/api/types/MqttToken.d.ts +4 -4
  151. package/dist/api/types/Notification.d.ts +9 -9
  152. package/dist/api/types/NotificationCounts.d.ts +5 -5
  153. package/dist/api/types/NotificationDeadLetter.d.ts +9 -9
  154. package/dist/api/types/NotificationPreferences.d.ts +2 -2
  155. package/dist/api/types/NotificationUnreadCount.d.ts +2 -2
  156. package/dist/api/types/NotificationsArchived.d.ts +2 -2
  157. package/dist/api/types/NotificationsMarkedRead.d.ts +2 -2
  158. package/dist/api/types/Operator.d.ts +4 -4
  159. package/dist/api/types/OperatorPosition.d.ts +5 -5
  160. package/dist/api/types/Organization.d.ts +7 -7
  161. package/dist/api/types/Position.d.ts +6 -6
  162. package/dist/api/types/ProblemDetail.d.ts +1 -1
  163. package/dist/api/types/RealtimeTicket.d.ts +3 -3
  164. package/dist/api/types/ReconcileResponse.d.ts +4 -4
  165. package/dist/api/types/TaskAttemptPhoto.d.ts +7 -7
  166. package/dist/api/types/Timezone.d.ts +4 -4
  167. package/dist/api/types/UploadInitiation.d.ts +6 -6
  168. package/dist/api/types/User.d.ts +5 -5
  169. package/dist/api/types/UserResource.d.ts +4 -4
  170. package/dist/api/types/index.d.ts +1 -0
  171. package/dist/api/types/index.js +1 -0
  172. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ListJobsRequestSortItem = void 0;
5
+ exports.ListJobsRequestSortItem = {
6
+ CreatedAtAsc: "created_at:asc",
7
+ CreatedAtDesc: "created_at:desc",
8
+ };
@@ -0,0 +1 @@
1
+ export * from "./ListJobsRequestSortItem.js";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ListJobsRequestSortItem.js"), exports);
@@ -14,7 +14,7 @@ export declare class NotificationsClient {
14
14
  protected readonly _options: NormalizedClientOptionsWithAuth<NotificationsClient.Options>;
15
15
  constructor(options: NotificationsClient.Options);
16
16
  /**
17
- * The caller's own notifications ordered by `created_at` descending (pass `sort=created_at` for ascending). `status` selects the segment — `all` (default; the active inbox, non-archived), `unread`, `read`, or `archived`. `category` and `kind` accept comma-separated values and AND on top of the segment; `q` matches the notification title/body. `since=` (RFC 3339) returns only items at/after the instant for incremental catch-up after a reconnect. Pagination is bidirectional (`starting_after` / `ending_before`); cursors are bound to the sort direction that minted them.
17
+ * The caller's own notifications ordered by `created_at` descending by default. `status` selects the segment — `all` (default; the active inbox, non-archived), `unread`, `read`, or `archived`. `category` and `kind` accept comma-separated values and AND on top of the segment; `q` matches the notification title/body. `since=` (RFC 3339) returns only items at/after the instant for incremental catch-up after a reconnect. Pagination is bidirectional (`starting_after` / `ending_before`); cursors are bound to the sort direction that minted them.
18
18
  *
19
19
  * @param {NizamDashboard.ListNotificationsRequest} request
20
20
  * @param {NotificationsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -50,7 +50,7 @@ class NotificationsClient {
50
50
  this._options = (0, BaseClient_js_1.normalizeClientOptionsWithAuth)(options);
51
51
  }
52
52
  /**
53
- * The caller's own notifications ordered by `created_at` descending (pass `sort=created_at` for ascending). `status` selects the segment — `all` (default; the active inbox, non-archived), `unread`, `read`, or `archived`. `category` and `kind` accept comma-separated values and AND on top of the segment; `q` matches the notification title/body. `since=` (RFC 3339) returns only items at/after the instant for incremental catch-up after a reconnect. Pagination is bidirectional (`starting_after` / `ending_before`); cursors are bound to the sort direction that minted them.
53
+ * The caller's own notifications ordered by `created_at` descending by default. `status` selects the segment — `all` (default; the active inbox, non-archived), `unread`, `read`, or `archived`. `category` and `kind` accept comma-separated values and AND on top of the segment; `q` matches the notification title/body. `since=` (RFC 3339) returns only items at/after the instant for incremental catch-up after a reconnect. Pagination is bidirectional (`starting_after` / `ending_before`); cursors are bound to the sort direction that minted them.
54
54
  *
55
55
  * @param {NizamDashboard.ListNotificationsRequest} request
56
56
  * @param {NotificationsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -81,7 +81,7 @@ class NotificationsClient {
81
81
  kind,
82
82
  q,
83
83
  since: since != null ? since : undefined,
84
- sort,
84
+ sort: Array.isArray(sort) ? sort.map((item) => item) : sort != null ? sort : undefined,
85
85
  limit,
86
86
  starting_after: startingAfter,
87
87
  ending_before: endingBefore,
@@ -1,3 +1,4 @@
1
+ import type * as NizamDashboard from "../../../../index.js";
1
2
  /**
2
3
  * @example
3
4
  * {
@@ -19,8 +20,8 @@ export interface ListNotificationsRequest {
19
20
  q?: string;
20
21
  /** Only notifications created at/after this RFC 3339 instant. */
21
22
  since?: string;
22
- /** Sort order. Allowed fields: `created_at`. Prefix a field with `-` for descending (e.g. `-created_at`); unknown fields are rejected with `400 validation_failed`. */
23
- sort?: string | string[];
23
+ /** Sort order. Allowed fields: `created_at`. Append `:asc` or `:desc` to each field (direction required, e.g. `created_at:desc`), comma-separated for multi-sort; unknown fields or directions are rejected with `400 validation_failed`. */
24
+ sort?: NizamDashboard.ListNotificationsRequestSortItem | NizamDashboard.ListNotificationsRequestSortItem[];
24
25
  /** Page size. Default 20, maximum 100. Out-of-range values are silently clamped; the response body's `limit` field reflects what was applied. */
25
26
  limit?: number;
26
27
  /** Opaque cursor — return the page starting strictly after this entity in the sort order. Mutually exclusive with `ending_before`. */
@@ -1 +1,2 @@
1
1
  export * from "./client/index.js";
2
+ export * from "./types/index.js";
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./client/index.js"), exports);
18
+ __exportStar(require("./types/index.js"), exports);
@@ -0,0 +1,5 @@
1
+ export declare const ListNotificationsRequestSortItem: {
2
+ readonly CreatedAtAsc: "created_at:asc";
3
+ readonly CreatedAtDesc: "created_at:desc";
4
+ };
5
+ export type ListNotificationsRequestSortItem = (typeof ListNotificationsRequestSortItem)[keyof typeof ListNotificationsRequestSortItem];
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ListNotificationsRequestSortItem = void 0;
5
+ exports.ListNotificationsRequestSortItem = {
6
+ CreatedAtAsc: "created_at:asc",
7
+ CreatedAtDesc: "created_at:desc",
8
+ };
@@ -0,0 +1 @@
1
+ export * from "./ListNotificationsRequestSortItem.js";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ListNotificationsRequestSortItem.js"), exports);
@@ -16,38 +16,48 @@ export declare class OperatorsClient {
16
16
  /**
17
17
  * Creates a new operator (human, autonomous software, or teleoperated). The `kind` discriminator selects the variant.
18
18
  *
19
- * @param {NizamDashboard.CreateOperatorRequest} request
19
+ * @param {NizamDashboard.CreateOperatorBody} request
20
20
  * @param {OperatorsClient.RequestOptions} requestOptions - Request-specific configuration.
21
21
  *
22
22
  * @throws {@link NizamDashboard.BadRequestError}
23
23
  * @throws {@link NizamDashboard.UnauthorizedError}
24
24
  * @throws {@link NizamDashboard.ForbiddenError}
25
+ * @throws {@link NizamDashboard.ConflictError}
25
26
  * @throws {@link NizamDashboard.UnprocessableEntityError}
26
27
  * @throws {@link NizamDashboard.TooManyRequestsError}
27
28
  * @throws {@link NizamDashboard.InternalServerError}
28
29
  *
29
30
  * @example
30
31
  * await client.operators.createOperator({
31
- * kind: "human"
32
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
33
+ * body: {
34
+ * kind: "human"
35
+ * }
32
36
  * })
33
37
  *
34
38
  * @example
35
39
  * await client.operators.createOperator({
36
- * kind: "autonomous",
37
- * vendor: "Waymo",
38
- * product: "Waymo Driver",
39
- * version: "7.3",
40
- * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
40
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
41
+ * body: {
42
+ * kind: "autonomous",
43
+ * vendor: "Waymo",
44
+ * product: "Waymo Driver",
45
+ * version: "7.3",
46
+ * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
47
+ * }
41
48
  * })
42
49
  *
43
50
  * @example
44
51
  * await client.operators.createOperator({
45
- * kind: "teleoperated",
46
- * controller_user_id: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
47
- * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
52
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
53
+ * body: {
54
+ * kind: "teleoperated",
55
+ * controller_user_id: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
56
+ * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
57
+ * }
48
58
  * })
49
59
  */
50
- createOperator(request: NizamDashboard.CreateOperatorRequest, requestOptions?: OperatorsClient.RequestOptions): core.HttpResponsePromise<NizamDashboard.Operator>;
60
+ createOperator(request: NizamDashboard.CreateOperatorBody, requestOptions?: OperatorsClient.RequestOptions): core.HttpResponsePromise<NizamDashboard.Operator>;
51
61
  private __createOperator;
52
62
  /**
53
63
  * @param {NizamDashboard.GetOperatorRequest} request
@@ -52,43 +52,54 @@ class OperatorsClient {
52
52
  /**
53
53
  * Creates a new operator (human, autonomous software, or teleoperated). The `kind` discriminator selects the variant.
54
54
  *
55
- * @param {NizamDashboard.CreateOperatorRequest} request
55
+ * @param {NizamDashboard.CreateOperatorBody} request
56
56
  * @param {OperatorsClient.RequestOptions} requestOptions - Request-specific configuration.
57
57
  *
58
58
  * @throws {@link NizamDashboard.BadRequestError}
59
59
  * @throws {@link NizamDashboard.UnauthorizedError}
60
60
  * @throws {@link NizamDashboard.ForbiddenError}
61
+ * @throws {@link NizamDashboard.ConflictError}
61
62
  * @throws {@link NizamDashboard.UnprocessableEntityError}
62
63
  * @throws {@link NizamDashboard.TooManyRequestsError}
63
64
  * @throws {@link NizamDashboard.InternalServerError}
64
65
  *
65
66
  * @example
66
67
  * await client.operators.createOperator({
67
- * kind: "human"
68
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
69
+ * body: {
70
+ * kind: "human"
71
+ * }
68
72
  * })
69
73
  *
70
74
  * @example
71
75
  * await client.operators.createOperator({
72
- * kind: "autonomous",
73
- * vendor: "Waymo",
74
- * product: "Waymo Driver",
75
- * version: "7.3",
76
- * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
76
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
77
+ * body: {
78
+ * kind: "autonomous",
79
+ * vendor: "Waymo",
80
+ * product: "Waymo Driver",
81
+ * version: "7.3",
82
+ * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
83
+ * }
77
84
  * })
78
85
  *
79
86
  * @example
80
87
  * await client.operators.createOperator({
81
- * kind: "teleoperated",
82
- * controller_user_id: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
83
- * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
88
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
89
+ * body: {
90
+ * kind: "teleoperated",
91
+ * controller_user_id: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
92
+ * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
93
+ * }
84
94
  * })
85
95
  */
86
96
  createOperator(request, requestOptions) {
87
97
  return core.HttpResponsePromise.fromPromise(this.__createOperator(request, requestOptions));
88
98
  }
89
99
  async __createOperator(request, requestOptions) {
100
+ const { "Idempotency-Key": idempotencyKey, body: _body } = request;
90
101
  const _authRequest = await this._options.authProvider.getAuthRequest();
91
- const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
102
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
92
103
  const _response = await core.fetcher({
93
104
  url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
94
105
  (await core.Supplier.get(this._options.environment)) ??
@@ -98,7 +109,7 @@ class OperatorsClient {
98
109
  contentType: "application/json",
99
110
  queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
100
111
  requestType: "json",
101
- body: request,
112
+ body: _body,
102
113
  timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
103
114
  maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
104
115
  abortSignal: requestOptions?.abortSignal,
@@ -116,6 +127,8 @@ class OperatorsClient {
116
127
  throw new NizamDashboard.UnauthorizedError(_response.error.body, _response.rawResponse);
117
128
  case 403:
118
129
  throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
130
+ case 409:
131
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
119
132
  case 422:
120
133
  throw new NizamDashboard.UnprocessableEntityError(_response.error.body, _response.rawResponse);
121
134
  case 429:
@@ -0,0 +1,37 @@
1
+ import type * as NizamDashboard from "../../../../index.js";
2
+ /**
3
+ * @example
4
+ * {
5
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
6
+ * body: {
7
+ * kind: "human"
8
+ * }
9
+ * }
10
+ *
11
+ * @example
12
+ * {
13
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
14
+ * body: {
15
+ * kind: "autonomous",
16
+ * vendor: "Waymo",
17
+ * product: "Waymo Driver",
18
+ * version: "7.3",
19
+ * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
20
+ * }
21
+ * }
22
+ *
23
+ * @example
24
+ * {
25
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
26
+ * body: {
27
+ * kind: "teleoperated",
28
+ * controller_user_id: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
29
+ * responsible_party: "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
30
+ * }
31
+ * }
32
+ */
33
+ export interface CreateOperatorBody {
34
+ /** Optional. Supply a UUID (canonical 8-4-4-4-12 form; lowercase v4 recommended) to make this operation idempotent: the same key on a retry replays the original outcome instead of creating a second resource. 2xx successes and deliberate 4xx domain rejections are cached and replayed for 24h when the request body matches; transient 5xx responses are never cached, so a retry with the same key re-executes. A malformed key is rejected with 400 `idempotency.invalid_key`; reusing a key with a different request body is 409 `idempotency.key_conflict`; a key still in flight is 409 `idempotency.in_progress`. Omit the header and the operation behaves like any other write. */
35
+ "Idempotency-Key"?: string;
36
+ body: NizamDashboard.CreateOperatorRequest;
37
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1,2 @@
1
+ export type { CreateOperatorBody } from "./CreateOperatorBody.js";
1
2
  export type { GetOperatorRequest } from "./GetOperatorRequest.js";
@@ -14,7 +14,7 @@ export declare class OrganizationsClient {
14
14
  protected readonly _options: NormalizedClientOptionsWithAuth<OrganizationsClient.Options>;
15
15
  constructor(options: OrganizationsClient.Options);
16
16
  /**
17
- * Dashboard callers see exactly the organizations they can read — their own memberships plus any cross-tenant read grants (3PL / delegated), resolved via SpiceDB `lookupResources(read)`. Platform staff see every tenant. Allowed sort field: `created_at` (prefix with `-` for descending). RFC 8288 Link header carries `first`, `prev`, `next` rels alongside the body's bidirectional cursors.
17
+ * Dashboard callers see exactly the organizations they can read — their own memberships plus any cross-tenant read grants (3PL / delegated), resolved via SpiceDB `lookupResources(read)`. Platform staff see every tenant. The sortable fields and direction grammar are on the `sort` parameter. RFC 8288 Link header carries `first`, `prev`, `next` rels alongside the body's bidirectional cursors.
18
18
  *
19
19
  * @param {NizamDashboard.ListOrganizationsRequest} request
20
20
  * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -35,8 +35,6 @@ export declare class OrganizationsClient {
35
35
  /**
36
36
  * Creates a brand-new tenant with the calling user as the founding admin. The id is assigned by Keycloak so the same value identifies the organization in both systems. Slug is derived from the name when not supplied.
37
37
  *
38
- * Supports the standard `Idempotency-Key` header — submit a UUID (v4 recommended) per logical attempt (same value on retry); malformed keys are rejected with 400 `idempotency.invalid_key`. Successful responses and 4xx domain rejections replay for matching request bodies; transient 5xx responses are never cached, so retrying with the same key re-executes. Mismatching fingerprints surface as 409 `idempotency.key_conflict`.
39
- *
40
38
  * @param {NizamDashboard.CreateOrganizationRequest} request
41
39
  * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration.
42
40
  *
@@ -50,11 +48,13 @@ export declare class OrganizationsClient {
50
48
  *
51
49
  * @example
52
50
  * await client.organizations.createOrganization({
51
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
53
52
  * name: "Acme Logistics"
54
53
  * })
55
54
  *
56
55
  * @example
57
56
  * await client.organizations.createOrganization({
57
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
58
58
  * name: "Acme Logistics",
59
59
  * slug: "acme-logistics",
60
60
  * primary_domain: "acme.com",
@@ -50,7 +50,7 @@ class OrganizationsClient {
50
50
  this._options = (0, BaseClient_js_1.normalizeClientOptionsWithAuth)(options);
51
51
  }
52
52
  /**
53
- * Dashboard callers see exactly the organizations they can read — their own memberships plus any cross-tenant read grants (3PL / delegated), resolved via SpiceDB `lookupResources(read)`. Platform staff see every tenant. Allowed sort field: `created_at` (prefix with `-` for descending). RFC 8288 Link header carries `first`, `prev`, `next` rels alongside the body's bidirectional cursors.
53
+ * Dashboard callers see exactly the organizations they can read — their own memberships plus any cross-tenant read grants (3PL / delegated), resolved via SpiceDB `lookupResources(read)`. Platform staff see every tenant. The sortable fields and direction grammar are on the `sort` parameter. RFC 8288 Link header carries `first`, `prev`, `next` rels alongside the body's bidirectional cursors.
54
54
  *
55
55
  * @param {NizamDashboard.ListOrganizationsRequest} request
56
56
  * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -72,7 +72,7 @@ class OrganizationsClient {
72
72
  async __listOrganizations(request = {}, requestOptions) {
73
73
  const { sort, limit, starting_after: startingAfter, ending_before: endingBefore } = request;
74
74
  const _queryParams = {
75
- sort,
75
+ sort: Array.isArray(sort) ? sort.map((item) => item) : sort != null ? sort : undefined,
76
76
  limit,
77
77
  starting_after: startingAfter,
78
78
  ending_before: endingBefore,
@@ -125,8 +125,6 @@ class OrganizationsClient {
125
125
  /**
126
126
  * Creates a brand-new tenant with the calling user as the founding admin. The id is assigned by Keycloak so the same value identifies the organization in both systems. Slug is derived from the name when not supplied.
127
127
  *
128
- * Supports the standard `Idempotency-Key` header — submit a UUID (v4 recommended) per logical attempt (same value on retry); malformed keys are rejected with 400 `idempotency.invalid_key`. Successful responses and 4xx domain rejections replay for matching request bodies; transient 5xx responses are never cached, so retrying with the same key re-executes. Mismatching fingerprints surface as 409 `idempotency.key_conflict`.
129
- *
130
128
  * @param {NizamDashboard.CreateOrganizationRequest} request
131
129
  * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration.
132
130
  *
@@ -140,11 +138,13 @@ class OrganizationsClient {
140
138
  *
141
139
  * @example
142
140
  * await client.organizations.createOrganization({
141
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
143
142
  * name: "Acme Logistics"
144
143
  * })
145
144
  *
146
145
  * @example
147
146
  * await client.organizations.createOrganization({
147
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
148
148
  * name: "Acme Logistics",
149
149
  * slug: "acme-logistics",
150
150
  * primary_domain: "acme.com",
@@ -158,8 +158,9 @@ class OrganizationsClient {
158
158
  return core.HttpResponsePromise.fromPromise(this.__createOrganization(request, requestOptions));
159
159
  }
160
160
  async __createOrganization(request, requestOptions) {
161
+ const { "Idempotency-Key": idempotencyKey, ..._body } = request;
161
162
  const _authRequest = await this._options.authProvider.getAuthRequest();
162
- const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
163
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
163
164
  const _response = await core.fetcher({
164
165
  url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
165
166
  (await core.Supplier.get(this._options.environment)) ??
@@ -169,7 +170,7 @@ class OrganizationsClient {
169
170
  contentType: "application/json",
170
171
  queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
171
172
  requestType: "json",
172
- body: request,
173
+ body: _body,
173
174
  timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
174
175
  maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
175
176
  abortSignal: requestOptions?.abortSignal,
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * @example
3
3
  * {
4
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
4
5
  * name: "Acme Logistics"
5
6
  * }
6
7
  *
7
8
  * @example
8
9
  * {
10
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
9
11
  * name: "Acme Logistics",
10
12
  * slug: "acme-logistics",
11
13
  * primary_domain: "acme.com",
@@ -16,6 +18,8 @@
16
18
  * }
17
19
  */
18
20
  export interface CreateOrganizationRequest {
21
+ /** Optional. Supply a UUID (canonical 8-4-4-4-12 form; lowercase v4 recommended) to make this operation idempotent: the same key on a retry replays the original outcome instead of creating a second resource. 2xx successes and deliberate 4xx domain rejections are cached and replayed for 24h when the request body matches; transient 5xx responses are never cached, so a retry with the same key re-executes. A malformed key is rejected with 400 `idempotency.invalid_key`; reusing a key with a different request body is 409 `idempotency.key_conflict`; a key still in flight is 409 `idempotency.in_progress`. Omit the header and the operation behaves like any other write. */
22
+ "Idempotency-Key"?: string;
19
23
  /** Display name of the organization. */
20
24
  name: string;
21
25
  /** Optional URL-safe slug. When omitted, the server derives one from the name. */
@@ -1,3 +1,4 @@
1
+ import type * as NizamDashboard from "../../../../index.js";
1
2
  /**
2
3
  * @example
3
4
  * {
@@ -6,8 +7,8 @@
6
7
  * }
7
8
  */
8
9
  export interface ListOrganizationsRequest {
9
- /** Sort order. Allowed fields: `created_at`. Prefix a field with `-` for descending (e.g. `-created_at`); unknown fields are rejected with `400 validation_failed`. */
10
- sort?: string | string[];
10
+ /** Sort order. Allowed fields: `created_at`. Append `:asc` or `:desc` to each field (direction required, e.g. `created_at:desc`), comma-separated for multi-sort; unknown fields or directions are rejected with `400 validation_failed`. */
11
+ sort?: NizamDashboard.ListOrganizationsRequestSortItem | NizamDashboard.ListOrganizationsRequestSortItem[];
11
12
  /** Page size. Default 20, maximum 100. Out-of-range values are silently clamped; the response body's `limit` field reflects what was applied. */
12
13
  limit?: number;
13
14
  /** Opaque cursor — return the page starting strictly after this entity in the sort order. Mutually exclusive with `ending_before`. */
@@ -1 +1,2 @@
1
1
  export * from "./client/index.js";
2
+ export * from "./types/index.js";
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./client/index.js"), exports);
18
+ __exportStar(require("./types/index.js"), exports);
@@ -0,0 +1,5 @@
1
+ export declare const ListOrganizationsRequestSortItem: {
2
+ readonly CreatedAtAsc: "created_at:asc";
3
+ readonly CreatedAtDesc: "created_at:desc";
4
+ };
5
+ export type ListOrganizationsRequestSortItem = (typeof ListOrganizationsRequestSortItem)[keyof typeof ListOrganizationsRequestSortItem];
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ListOrganizationsRequestSortItem = void 0;
5
+ exports.ListOrganizationsRequestSortItem = {
6
+ CreatedAtAsc: "created_at:asc",
7
+ CreatedAtDesc: "created_at:desc",
8
+ };
@@ -0,0 +1 @@
1
+ export * from "./ListOrganizationsRequestSortItem.js";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ListOrganizationsRequestSortItem.js"), exports);
@@ -42,6 +42,7 @@ export declare class TaskAttemptsClient {
42
42
  * @throws {@link NizamDashboard.UnauthorizedError}
43
43
  * @throws {@link NizamDashboard.ForbiddenError}
44
44
  * @throws {@link NizamDashboard.NotFoundError}
45
+ * @throws {@link NizamDashboard.ConflictError}
45
46
  * @throws {@link NizamDashboard.ContentTooLargeError}
46
47
  * @throws {@link NizamDashboard.UnprocessableEntityError}
47
48
  * @throws {@link NizamDashboard.TooManyRequestsError}
@@ -49,6 +50,7 @@ export declare class TaskAttemptsClient {
49
50
  *
50
51
  * @example
51
52
  * await client.taskAttempts.captureTaskAttemptPhoto({
53
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
52
54
  * attemptId: "00000000-0000-0000-0000-000000000000",
53
55
  * filename: "delivery-door.jpg",
54
56
  * content_type: "image/jpeg",
@@ -132,6 +132,7 @@ class TaskAttemptsClient {
132
132
  * @throws {@link NizamDashboard.UnauthorizedError}
133
133
  * @throws {@link NizamDashboard.ForbiddenError}
134
134
  * @throws {@link NizamDashboard.NotFoundError}
135
+ * @throws {@link NizamDashboard.ConflictError}
135
136
  * @throws {@link NizamDashboard.ContentTooLargeError}
136
137
  * @throws {@link NizamDashboard.UnprocessableEntityError}
137
138
  * @throws {@link NizamDashboard.TooManyRequestsError}
@@ -139,6 +140,7 @@ class TaskAttemptsClient {
139
140
  *
140
141
  * @example
141
142
  * await client.taskAttempts.captureTaskAttemptPhoto({
143
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
142
144
  * attemptId: "00000000-0000-0000-0000-000000000000",
143
145
  * filename: "delivery-door.jpg",
144
146
  * content_type: "image/jpeg",
@@ -154,9 +156,9 @@ class TaskAttemptsClient {
154
156
  return core.HttpResponsePromise.fromPromise(this.__captureTaskAttemptPhoto(request, requestOptions));
155
157
  }
156
158
  async __captureTaskAttemptPhoto(request, requestOptions) {
157
- const { attemptId, ..._body } = request;
159
+ const { attemptId, "Idempotency-Key": idempotencyKey, ..._body } = request;
158
160
  const _authRequest = await this._options.authProvider.getAuthRequest();
159
- const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, requestOptions?.headers);
161
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, this._options?.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)({ "Idempotency-Key": idempotencyKey }), requestOptions?.headers);
160
162
  const _response = await core.fetcher({
161
163
  url: core.url.join((await core.Supplier.get(this._options.baseUrl)) ??
162
164
  (await core.Supplier.get(this._options.environment)) ??
@@ -186,6 +188,8 @@ class TaskAttemptsClient {
186
188
  throw new NizamDashboard.ForbiddenError(_response.error.body, _response.rawResponse);
187
189
  case 404:
188
190
  throw new NizamDashboard.NotFoundError(_response.error.body, _response.rawResponse);
191
+ case 409:
192
+ throw new NizamDashboard.ConflictError(_response.error.body, _response.rawResponse);
189
193
  case 413:
190
194
  throw new NizamDashboard.ContentTooLargeError(_response.error.body, _response.rawResponse);
191
195
  case 422:
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @example
3
3
  * {
4
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
4
5
  * attemptId: "00000000-0000-0000-0000-000000000000",
5
6
  * filename: "delivery-door.jpg",
6
7
  * content_type: "image/jpeg",
@@ -14,6 +15,8 @@
14
15
  */
15
16
  export interface CaptureTaskAttemptPhotoRequest {
16
17
  attemptId: string;
18
+ /** Optional. Supply a UUID (canonical 8-4-4-4-12 form; lowercase v4 recommended) to make this operation idempotent: the same key on a retry replays the original outcome instead of creating a second resource. 2xx successes and deliberate 4xx domain rejections are cached and replayed for 24h when the request body matches; transient 5xx responses are never cached, so a retry with the same key re-executes. A malformed key is rejected with 400 `idempotency.invalid_key`; reusing a key with a different request body is 409 `idempotency.key_conflict`; a key still in flight is 409 `idempotency.in_progress`. Omit the header and the operation behaves like any other write. */
19
+ "Idempotency-Key"?: string;
17
20
  /** Original filename. */
18
21
  filename: string;
19
22
  /** Declared MIME type — POD photos accept image/jpeg, image/png, image/webp, image/heic, image/heif. */
@@ -63,7 +63,7 @@ export declare class UsersClient {
63
63
  initiateProfilePictureUpload(request: NizamDashboard.InitiateProfilePictureUploadRequest, requestOptions?: UsersClient.RequestOptions): core.HttpResponsePromise<NizamDashboard.UploadInitiation>;
64
64
  private __initiateProfilePictureUpload;
65
65
  /**
66
- * Dashboard sees co-members of the caller's active organization (tenant-scoped via the organization_users join). Platform staff bypass RLS and see across tenants. Allowed sort fields: `created_at`, `name` (prefix with `-` for descending). RFC 8288 Link header carries `first`, `prev`, `next` rels alongside the body's bidirectional cursors.
66
+ * Dashboard sees co-members of the caller's active organization (tenant-scoped via the organization_users join). Platform staff bypass RLS and see across tenants. The sortable fields and direction grammar are on the `sort` parameter. RFC 8288 Link header carries `first`, `prev`, `next` rels alongside the body's bidirectional cursors.
67
67
  *
68
68
  * @param {NizamDashboard.ListUsersRequest} request
69
69
  * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -88,6 +88,7 @@ export declare class UsersClient {
88
88
  * @param {NizamDashboard.InviteUserRequest} request
89
89
  * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
90
90
  *
91
+ * @throws {@link NizamDashboard.BadRequestError}
91
92
  * @throws {@link NizamDashboard.UnauthorizedError}
92
93
  * @throws {@link NizamDashboard.ForbiddenError}
93
94
  * @throws {@link NizamDashboard.ConflictError}
@@ -97,12 +98,14 @@ export declare class UsersClient {
97
98
  *
98
99
  * @example
99
100
  * await client.users.inviteUser({
101
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
100
102
  * email: "newhire@acme.example",
101
103
  * name: "New Hire"
102
104
  * })
103
105
  *
104
106
  * @example
105
107
  * await client.users.inviteUser({
108
+ * "Idempotency-Key": "9f1e6d2a-7c3b-4e5f-8a91-0b2c3d4e5f60",
106
109
  * email: "newhire@acme.example"
107
110
  * })
108
111
  */