@blezgo/api-sdk 0.1.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 (175) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +27 -0
  3. package/dist/account/client.d.ts +3 -0
  4. package/dist/account/client.d.ts.map +1 -0
  5. package/dist/account/client.js +3 -0
  6. package/dist/account/client.js.map +1 -0
  7. package/dist/account/generated.d.ts +2648 -0
  8. package/dist/account/generated.d.ts.map +1 -0
  9. package/dist/account/generated.js +6 -0
  10. package/dist/account/generated.js.map +1 -0
  11. package/dist/account/index.d.ts +2 -0
  12. package/dist/account/index.d.ts.map +1 -0
  13. package/dist/account/index.js +2 -0
  14. package/dist/account/index.js.map +1 -0
  15. package/dist/admin/client.d.ts +3 -0
  16. package/dist/admin/client.d.ts.map +1 -0
  17. package/dist/admin/client.js +3 -0
  18. package/dist/admin/client.js.map +1 -0
  19. package/dist/admin/generated.d.ts +956 -0
  20. package/dist/admin/generated.d.ts.map +1 -0
  21. package/dist/admin/generated.js +6 -0
  22. package/dist/admin/generated.js.map +1 -0
  23. package/dist/admin/index.d.ts +2 -0
  24. package/dist/admin/index.d.ts.map +1 -0
  25. package/dist/admin/index.js +2 -0
  26. package/dist/admin/index.js.map +1 -0
  27. package/dist/authentication/client.d.ts +3 -0
  28. package/dist/authentication/client.d.ts.map +1 -0
  29. package/dist/authentication/client.js +3 -0
  30. package/dist/authentication/client.js.map +1 -0
  31. package/dist/authentication/generated.d.ts +746 -0
  32. package/dist/authentication/generated.d.ts.map +1 -0
  33. package/dist/authentication/generated.js +6 -0
  34. package/dist/authentication/generated.js.map +1 -0
  35. package/dist/authentication/index.d.ts +2 -0
  36. package/dist/authentication/index.d.ts.map +1 -0
  37. package/dist/authentication/index.js +2 -0
  38. package/dist/authentication/index.js.map +1 -0
  39. package/dist/cache/client.d.ts +3 -0
  40. package/dist/cache/client.d.ts.map +1 -0
  41. package/dist/cache/client.js +3 -0
  42. package/dist/cache/client.js.map +1 -0
  43. package/dist/cache/generated.d.ts +3355 -0
  44. package/dist/cache/generated.d.ts.map +1 -0
  45. package/dist/cache/generated.js +6 -0
  46. package/dist/cache/generated.js.map +1 -0
  47. package/dist/cache/index.d.ts +2 -0
  48. package/dist/cache/index.d.ts.map +1 -0
  49. package/dist/cache/index.js +2 -0
  50. package/dist/cache/index.js.map +1 -0
  51. package/dist/config/client.d.ts +3 -0
  52. package/dist/config/client.d.ts.map +1 -0
  53. package/dist/config/client.js +3 -0
  54. package/dist/config/client.js.map +1 -0
  55. package/dist/config/generated.d.ts +1150 -0
  56. package/dist/config/generated.d.ts.map +1 -0
  57. package/dist/config/generated.js +6 -0
  58. package/dist/config/generated.js.map +1 -0
  59. package/dist/config/index.d.ts +2 -0
  60. package/dist/config/index.d.ts.map +1 -0
  61. package/dist/config/index.js +2 -0
  62. package/dist/config/index.js.map +1 -0
  63. package/dist/dashboard/client.d.ts +3 -0
  64. package/dist/dashboard/client.d.ts.map +1 -0
  65. package/dist/dashboard/client.js +3 -0
  66. package/dist/dashboard/client.js.map +1 -0
  67. package/dist/dashboard/generated.d.ts +4831 -0
  68. package/dist/dashboard/generated.d.ts.map +1 -0
  69. package/dist/dashboard/generated.js +6 -0
  70. package/dist/dashboard/generated.js.map +1 -0
  71. package/dist/dashboard/index.d.ts +2 -0
  72. package/dist/dashboard/index.d.ts.map +1 -0
  73. package/dist/dashboard/index.js +2 -0
  74. package/dist/dashboard/index.js.map +1 -0
  75. package/dist/errors/client.d.ts +3 -0
  76. package/dist/errors/client.d.ts.map +1 -0
  77. package/dist/errors/client.js +3 -0
  78. package/dist/errors/client.js.map +1 -0
  79. package/dist/errors/generated.d.ts +340 -0
  80. package/dist/errors/generated.d.ts.map +1 -0
  81. package/dist/errors/generated.js +6 -0
  82. package/dist/errors/generated.js.map +1 -0
  83. package/dist/errors/index.d.ts +2 -0
  84. package/dist/errors/index.d.ts.map +1 -0
  85. package/dist/errors/index.js +2 -0
  86. package/dist/errors/index.js.map +1 -0
  87. package/dist/index.d.ts +15 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +19 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/internationalization/client.d.ts +3 -0
  92. package/dist/internationalization/client.d.ts.map +1 -0
  93. package/dist/internationalization/client.js +3 -0
  94. package/dist/internationalization/client.js.map +1 -0
  95. package/dist/internationalization/generated.d.ts +587 -0
  96. package/dist/internationalization/generated.d.ts.map +1 -0
  97. package/dist/internationalization/generated.js +6 -0
  98. package/dist/internationalization/generated.js.map +1 -0
  99. package/dist/internationalization/index.d.ts +2 -0
  100. package/dist/internationalization/index.d.ts.map +1 -0
  101. package/dist/internationalization/index.js +2 -0
  102. package/dist/internationalization/index.js.map +1 -0
  103. package/dist/invitations/client.d.ts +3 -0
  104. package/dist/invitations/client.d.ts.map +1 -0
  105. package/dist/invitations/client.js +3 -0
  106. package/dist/invitations/client.js.map +1 -0
  107. package/dist/invitations/generated.d.ts +4019 -0
  108. package/dist/invitations/generated.d.ts.map +1 -0
  109. package/dist/invitations/generated.js +6 -0
  110. package/dist/invitations/generated.js.map +1 -0
  111. package/dist/invitations/index.d.ts +2 -0
  112. package/dist/invitations/index.d.ts.map +1 -0
  113. package/dist/invitations/index.js +2 -0
  114. package/dist/invitations/index.js.map +1 -0
  115. package/dist/registration/client.d.ts +3 -0
  116. package/dist/registration/client.d.ts.map +1 -0
  117. package/dist/registration/client.js +3 -0
  118. package/dist/registration/client.js.map +1 -0
  119. package/dist/registration/generated.d.ts +1010 -0
  120. package/dist/registration/generated.d.ts.map +1 -0
  121. package/dist/registration/generated.js +6 -0
  122. package/dist/registration/generated.js.map +1 -0
  123. package/dist/registration/index.d.ts +2 -0
  124. package/dist/registration/index.d.ts.map +1 -0
  125. package/dist/registration/index.js +2 -0
  126. package/dist/registration/index.js.map +1 -0
  127. package/dist/role/client.d.ts +3 -0
  128. package/dist/role/client.d.ts.map +1 -0
  129. package/dist/role/client.js +3 -0
  130. package/dist/role/client.js.map +1 -0
  131. package/dist/role/generated.d.ts +6324 -0
  132. package/dist/role/generated.d.ts.map +1 -0
  133. package/dist/role/generated.js +6 -0
  134. package/dist/role/generated.js.map +1 -0
  135. package/dist/role/index.d.ts +2 -0
  136. package/dist/role/index.d.ts.map +1 -0
  137. package/dist/role/index.js +2 -0
  138. package/dist/role/index.js.map +1 -0
  139. package/dist/tenant/client.d.ts +3 -0
  140. package/dist/tenant/client.d.ts.map +1 -0
  141. package/dist/tenant/client.js +3 -0
  142. package/dist/tenant/client.js.map +1 -0
  143. package/dist/tenant/generated.d.ts +8273 -0
  144. package/dist/tenant/generated.d.ts.map +1 -0
  145. package/dist/tenant/generated.js +6 -0
  146. package/dist/tenant/generated.js.map +1 -0
  147. package/dist/tenant/index.d.ts +2 -0
  148. package/dist/tenant/index.d.ts.map +1 -0
  149. package/dist/tenant/index.js +2 -0
  150. package/dist/tenant/index.js.map +1 -0
  151. package/dist/tokens/client.d.ts +3 -0
  152. package/dist/tokens/client.d.ts.map +1 -0
  153. package/dist/tokens/client.js +3 -0
  154. package/dist/tokens/client.js.map +1 -0
  155. package/dist/tokens/generated.d.ts +528 -0
  156. package/dist/tokens/generated.d.ts.map +1 -0
  157. package/dist/tokens/generated.js +6 -0
  158. package/dist/tokens/generated.js.map +1 -0
  159. package/dist/tokens/index.d.ts +2 -0
  160. package/dist/tokens/index.d.ts.map +1 -0
  161. package/dist/tokens/index.js +2 -0
  162. package/dist/tokens/index.js.map +1 -0
  163. package/dist/user/client.d.ts +3 -0
  164. package/dist/user/client.d.ts.map +1 -0
  165. package/dist/user/client.js +3 -0
  166. package/dist/user/client.js.map +1 -0
  167. package/dist/user/generated.d.ts +4350 -0
  168. package/dist/user/generated.d.ts.map +1 -0
  169. package/dist/user/generated.js +6 -0
  170. package/dist/user/generated.js.map +1 -0
  171. package/dist/user/index.d.ts +2 -0
  172. package/dist/user/index.d.ts.map +1 -0
  173. package/dist/user/index.js +2 -0
  174. package/dist/user/index.js.map +1 -0
  175. package/package.json +39 -0
@@ -0,0 +1,4831 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export interface paths {
6
+ "/v1/dashboards/admin/templates": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /**
14
+ * List Templates
15
+ * @description List all dashboard templates for the organization.
16
+ *
17
+ * **For**: Admins browsing available dashboard templates
18
+ * **Purpose**: Get paginated list of templates with filtering
19
+ *
20
+ * **Flow**:
21
+ * 1. Retrieves templates for organization
22
+ * 2. Filters by status if specified
23
+ * 3. Returns paginated results
24
+ * 4. Includes template metadata (name, creation date, status)
25
+ *
26
+ * **Query Parameters**:
27
+ * - status: Filter by status (active, archived, deleted) - default: active
28
+ * - limit: Number of results per page (1-500) - default: 100
29
+ * - offset: Pagination offset (0+) - default: 0
30
+ *
31
+ * **Authentication**: Required (JWT token with dashboard_template.view.all permission)
32
+ * **Headers**:
33
+ * - Authorization: Bearer <token>
34
+ *
35
+ * **Response**: Paginated list with:
36
+ * - templates: Array of template summaries
37
+ * - total_count: Total templates matching filter
38
+ * - limit: Items per page
39
+ * - offset: Current offset
40
+ *
41
+ * **Validation**:
42
+ * - Status must be: active, archived, or deleted
43
+ * - Limit must be between 1 and 500
44
+ */
45
+ get: operations["listDashboardTemplates"];
46
+ put?: never;
47
+ /**
48
+ * Create Template
49
+ * @description Create a new dashboard template for the organization.
50
+ *
51
+ * **For**: Admins creating custom dashboard templates
52
+ * **Purpose**: Create reusable dashboard templates for organization
53
+ *
54
+ * **Example Request Body**:
55
+ * ```json
56
+ * {
57
+ * "template_name": "Executive Dashboard",
58
+ * "layout_config": {
59
+ * "schema_version": "1.0",
60
+ * "grid_columns": 12,
61
+ * "widgets": [...]
62
+ * }
63
+ * }
64
+ * ```
65
+ *
66
+ * **Flow**:
67
+ * 1. Validates template name is unique within organization
68
+ * 2. Validates layout_config schema version
69
+ * 3. Validates widget references exist in widget library
70
+ * 4. Creates template record with external ID (dash_xxx)
71
+ * 5. Returns template ID and details
72
+ *
73
+ * **Required Fields**: template_name, layout_config (with schema_version)
74
+ * **Authentication**: Required (JWT token with dashboard_template.create.all permission)
75
+ * **Headers**:
76
+ * - Authorization: Bearer <token>
77
+ *
78
+ * **Response**: Template ID, external ID, and creation timestamp
79
+ * **Validation**:
80
+ * - Template name must be unique per organization
81
+ * - Layout config must include schema_version
82
+ * - All widget references must exist in library
83
+ */
84
+ post: operations["createDashboardTemplate"];
85
+ delete?: never;
86
+ options?: never;
87
+ head?: never;
88
+ patch?: never;
89
+ trace?: never;
90
+ };
91
+ "/v1/dashboards/admin/templates/{template_id}": {
92
+ parameters: {
93
+ query?: never;
94
+ header?: never;
95
+ path?: never;
96
+ cookie?: never;
97
+ };
98
+ /**
99
+ * Get Template
100
+ * @description Get a specific dashboard template by ID.
101
+ *
102
+ * **For**: Admins viewing template details
103
+ * **Purpose**: Retrieve complete template configuration including layout
104
+ *
105
+ * **Flow**:
106
+ * 1. Validates template ID format (dash_xxx)
107
+ * 2. Retrieves template details from database
108
+ * 3. Returns template with layout configuration
109
+ * 4. Includes widget definitions and metadata
110
+ *
111
+ * **Path Parameters**: template_id (dashboard template external ID like dash_xxx)
112
+ * **Authentication**: Required (JWT token with dashboard_template.view.all permission)
113
+ * **Headers**:
114
+ * - Authorization: Bearer <token>
115
+ *
116
+ * **Response**: Complete template object with:
117
+ * - template_id: External ID
118
+ * - template_name: Template name
119
+ * - layout_config: Full layout configuration with widgets
120
+ * - status: Template status (active, archived, deleted)
121
+ * - created_at, updated_at: Timestamps
122
+ *
123
+ * **Validation**:
124
+ * - Template must exist
125
+ * - Template ID must be valid format (dash_xxx)
126
+ */
127
+ get: operations["getDashboardTemplate"];
128
+ put?: never;
129
+ post?: never;
130
+ /**
131
+ * Delete Template
132
+ * @description Soft delete a dashboard template.
133
+ *
134
+ * **For**: Admins removing dashboard templates
135
+ * **Purpose**: Remove template from active use (preserves data)
136
+ *
137
+ * **Flow**:
138
+ * 1. Validates template exists and belongs to organization
139
+ * 2. Checks for active role assignments
140
+ * 3. Checks for dependent templates (parent relationships)
141
+ * 4. Marks template as deleted (soft delete)
142
+ * 5. Records deletion reason if provided
143
+ * 6. Returns deletion confirmation
144
+ *
145
+ * **Path Parameters**: template_id (dashboard template external ID like dash_xxx)
146
+ * **Request Body**: Optional deletion reason
147
+ * **Authentication**: Required (JWT token with dashboard_template.delete.all permission)
148
+ * **Headers**:
149
+ * - Authorization: Bearer <token>
150
+ *
151
+ * **Response**: Deletion confirmation with:
152
+ * - template_id: Deleted template ID
153
+ * - deleted: True
154
+ * - deleted_at: Deletion timestamp
155
+ *
156
+ * **Validation**:
157
+ * - Template must exist and belong to organization
158
+ * - Cannot delete if template has active role assignments
159
+ * - Cannot delete if template is parent to other templates
160
+ * - Soft delete preserves data for audit purposes
161
+ */
162
+ delete: operations["deleteDashboardTemplate"];
163
+ options?: never;
164
+ head?: never;
165
+ /**
166
+ * Update Template
167
+ * @description Update an existing dashboard template.
168
+ *
169
+ * **For**: Admins modifying dashboard templates
170
+ * **Purpose**: Modify template configuration, layout, or settings
171
+ *
172
+ * **Flow**:
173
+ * 1. Validates template exists and belongs to organization
174
+ * 2. Validates update fields are allowed
175
+ * 3. If layout_config updated, validates schema version and widgets
176
+ * 4. Updates template record
177
+ * 5. Returns updated template details
178
+ *
179
+ * **Path Parameters**: template_id (dashboard template external ID like dash_xxx)
180
+ * **Request Body**: Partial update (only include fields to change)
181
+ * **Authentication**: Required (JWT token with dashboard_template.edit.all permission)
182
+ * **Headers**:
183
+ * - Authorization: Bearer <token>
184
+ *
185
+ * **Response**: Updated template with:
186
+ * - template_id: External ID
187
+ * - template_name: Updated name (if changed)
188
+ * - updated_at: Update timestamp
189
+ *
190
+ * **Validation**:
191
+ * - Template must exist and belong to organization
192
+ * - If template_name updated, must be unique
193
+ * - If layout_config updated, must include schema_version
194
+ * - All widget references must exist in library
195
+ */
196
+ patch: operations["updateDashboardTemplate"];
197
+ trace?: never;
198
+ };
199
+ "/v1/dashboards/admin/role-assignments": {
200
+ parameters: {
201
+ query?: never;
202
+ header?: never;
203
+ path?: never;
204
+ cookie?: never;
205
+ };
206
+ /**
207
+ * List Role Assignments
208
+ * @description List all dashboard role assignments for the organization.
209
+ *
210
+ * **For**: Admins viewing role-based dashboard configuration
211
+ * **Purpose**: View which dashboards are assigned to which roles
212
+ *
213
+ * **Flow**:
214
+ * 1. Retrieves all role assignments for organization
215
+ * 2. Includes template details for each assignment
216
+ * 3. Includes role information
217
+ * 4. Returns sorted list by priority (highest first)
218
+ *
219
+ * **Authentication**: Required (JWT token with dashboard_role_assignment.view.all permission)
220
+ * **Headers**:
221
+ * - Authorization: Bearer <token>
222
+ *
223
+ * **Response**: List of assignments with:
224
+ * - assignment_id: Internal assignment ID
225
+ * - template_id: Dashboard template external ID
226
+ * - template_name: Dashboard name
227
+ * - user_role_id: Role ID
228
+ * - priority: Assignment priority
229
+ * - created_at: Assignment creation timestamp
230
+ *
231
+ * **Validation**:
232
+ * - User must have dashboard_role_assignment.view.all permission
233
+ */
234
+ get: operations["listRoleAssignments"];
235
+ put?: never;
236
+ /**
237
+ * Assign Template To Role
238
+ * @description Assign a dashboard template to a user role.
239
+ *
240
+ * **For**: Admins configuring role-based dashboard assignments
241
+ * **Purpose**: Configure which dashboard users see based on their role
242
+ *
243
+ * **Example Request Body**:
244
+ * ```json
245
+ * {
246
+ * "template_id": "dash_3W4X5Y6zA7B8cd9E",
247
+ * "user_role_id": 5,
248
+ * "priority": 10
249
+ * }
250
+ * ```
251
+ *
252
+ * **Flow**:
253
+ * 1. Validates template exists and belongs to organization
254
+ * 2. Validates user role exists in organization
255
+ * 3. Checks for duplicate assignment (template + role combination)
256
+ * 4. Creates role assignment with specified priority
257
+ * 5. Logs audit trail for assignment
258
+ * 6. Returns assignment confirmation
259
+ *
260
+ * **Required Fields**: template_id, user_role_id
261
+ * **Optional Fields**: priority (default: 0)
262
+ * **Authentication**: Required (JWT token with dashboard_role_assignment.create.all permission)
263
+ * **Headers**:
264
+ * - Authorization: Bearer <token>
265
+ *
266
+ * **Response**: Assignment ID and details
267
+ * **Validation**:
268
+ * - Template must exist and belong to organization
269
+ * - Role must exist in organization
270
+ * - Priority determines resolution order (higher priority wins)
271
+ * - When a user has multiple roles, highest priority assignment is used
272
+ */
273
+ post: operations["createDashboardRoleAssignment"];
274
+ delete?: never;
275
+ options?: never;
276
+ head?: never;
277
+ patch?: never;
278
+ trace?: never;
279
+ };
280
+ "/v1/dashboards/admin/role-assignments/{assignment_id}": {
281
+ parameters: {
282
+ query?: never;
283
+ header?: never;
284
+ path?: never;
285
+ cookie?: never;
286
+ };
287
+ get?: never;
288
+ put?: never;
289
+ post?: never;
290
+ /**
291
+ * Remove Role Assignment
292
+ * @description Remove a dashboard role assignment.
293
+ *
294
+ * **For**: Admins managing role-based dashboard assignments
295
+ * **Purpose**: Unassign a dashboard from a role
296
+ *
297
+ * **Flow**:
298
+ * 1. Validates assignment exists and belongs to organization
299
+ * 2. Captures assignment state for audit trail
300
+ * 3. Deletes role assignment record
301
+ * 4. Logs audit action with before/after state
302
+ * 5. Returns deletion confirmation
303
+ *
304
+ * **Path Parameters**: assignment_id (assignment record internal ID)
305
+ * **Authentication**: Required (JWT token with dashboard_role_assignment.delete.all permission)
306
+ * **Headers**:
307
+ * - Authorization: Bearer <token>
308
+ *
309
+ * **Response**: Assignment ID and deletion confirmation
310
+ * **Validation**:
311
+ * - Assignment must exist
312
+ * - Assignment must belong to organization
313
+ * - Audit logging is mandatory (RBAC requirement)
314
+ *
315
+ * **Effect**: Role will no longer have this dashboard assigned
316
+ * **Note**: Users with this role will fall back to next priority level in dashboard resolution
317
+ */
318
+ delete: operations["deleteRoleAssignment"];
319
+ options?: never;
320
+ head?: never;
321
+ patch?: never;
322
+ trace?: never;
323
+ };
324
+ "/v1/dashboards/admin/widgets": {
325
+ parameters: {
326
+ query?: never;
327
+ header?: never;
328
+ path?: never;
329
+ cookie?: never;
330
+ };
331
+ /**
332
+ * List Available Widgets
333
+ * @description List all available widgets for the organization.
334
+ *
335
+ * **For**: Admins browsing widget library
336
+ * **Purpose**: Get complete widget library (global platform + org-specific custom widgets)
337
+ *
338
+ * **Flow**:
339
+ * 1. Retrieves global platform widgets (is_global=TRUE)
340
+ * 2. Retrieves organization-specific custom widgets
341
+ * 3. Combines both lists
342
+ * 4. Returns sorted widget library
343
+ *
344
+ * **Authentication**: Required (JWT token with dashboard_widget.view.all permission)
345
+ * **Headers**:
346
+ * - Authorization: Bearer <token>
347
+ *
348
+ * **Response**: Widget library with:
349
+ * - widgets: Array of widget definitions
350
+ * - total_count: Total widgets available
351
+ * - Each widget includes: widget_id, widget_key, widget_name, widget_type, is_global
352
+ *
353
+ * **Validation**:
354
+ * - User must have dashboard_widget.view.all permission
355
+ */
356
+ get: operations["listAvailableWidgets"];
357
+ put?: never;
358
+ /**
359
+ * Create Custom Widget
360
+ * @description Create a custom widget for the organization.
361
+ *
362
+ * **For**: Admins creating organization-specific widgets
363
+ * **Purpose**: Add custom widgets to org widget library
364
+ *
365
+ * **Example Request Body**:
366
+ * ```json
367
+ * {
368
+ * "widget_key": "custom_metric",
369
+ * "widget_name": "Custom Metric",
370
+ * "widget_type": "metric",
371
+ * "provider_key": "CustomDataProvider.get_metric",
372
+ * "default_config": {"date_range": "30d"}
373
+ * }
374
+ * ```
375
+ *
376
+ * **Flow**:
377
+ * 1. Validates widget_key is unique within organization
378
+ * 2. Validates widget_type is valid (metric, chart, table, list, alert)
379
+ * 3. Validates provider_key format (ProviderClass.method_name)
380
+ * 4. Creates widget record with external ID (wdg_xxx)
381
+ * 5. Registers widget in library
382
+ * 6. Returns widget ID and details
383
+ *
384
+ * **Required Fields**: widget_key, widget_name, widget_type, provider_key
385
+ * **Optional Fields**: default_config, description, icon
386
+ * **Provider Key Format**: ProviderClass.method_name
387
+ * **Authentication**: Required (JWT token with dashboard_widget.manage.all permission)
388
+ * **Headers**:
389
+ * - Authorization: Bearer <token>
390
+ *
391
+ * **Response**: Widget ID, external ID, and creation confirmation
392
+ * **Validation**:
393
+ * - widget_key must be unique per organization
394
+ * - widget_type must be: metric, chart, table, list, or alert
395
+ * - provider_key must reference valid data provider method
396
+ */
397
+ post: operations["createCustomWidget"];
398
+ delete?: never;
399
+ options?: never;
400
+ head?: never;
401
+ patch?: never;
402
+ trace?: never;
403
+ };
404
+ "/v1/dashboards/admin/widgets/{widget_id}": {
405
+ parameters: {
406
+ query?: never;
407
+ header?: never;
408
+ path?: never;
409
+ cookie?: never;
410
+ };
411
+ get?: never;
412
+ put?: never;
413
+ post?: never;
414
+ /**
415
+ * Delete Custom Widget
416
+ * @description Delete a custom widget (soft delete).
417
+ *
418
+ * **For**: Admins removing organization-specific widgets
419
+ * **Purpose**: Remove custom widget from library
420
+ *
421
+ * **Flow**:
422
+ * 1. Validates widget exists and belongs to organization
423
+ * 2. Checks widget is NOT global (only org widgets can be deleted)
424
+ * 3. Marks widget as deleted (soft delete)
425
+ * 4. Returns deletion confirmation
426
+ *
427
+ * **Path Parameters**: widget_id (widget external ID like wdg_xxx)
428
+ * **Authentication**: Required (JWT token with dashboard_widget.manage.all permission)
429
+ * **Headers**:
430
+ * - Authorization: Bearer <token>
431
+ *
432
+ * **Response**: Deletion confirmation with:
433
+ * - widget_id: Deleted widget ID
434
+ * - deleted: True
435
+ *
436
+ * **Validation**:
437
+ * - Widget must exist and belong to organization
438
+ * - Cannot delete global platform widgets (is_global=TRUE)
439
+ * - Soft delete preserves data for audit purposes
440
+ *
441
+ * **Note**: Dashboards using this widget will need to be updated manually
442
+ */
443
+ delete: operations["deleteCustomWidget"];
444
+ options?: never;
445
+ head?: never;
446
+ /**
447
+ * Update Custom Widget
448
+ * @description Update a custom widget.
449
+ *
450
+ * **For**: Admins modifying organization-specific widgets
451
+ * **Purpose**: Modify custom widget configuration
452
+ *
453
+ * **Flow**:
454
+ * 1. Validates widget exists and belongs to organization
455
+ * 2. Checks widget is NOT global (only org widgets can be updated)
456
+ * 3. Validates update fields
457
+ * 4. Updates widget record
458
+ * 5. Returns updated widget details
459
+ *
460
+ * **Path Parameters**: widget_id (widget external ID like wdg_xxx)
461
+ * **Request Body**: Partial update (only include fields to change)
462
+ * **Authentication**: Required (JWT token with dashboard_widget.manage.all permission)
463
+ * **Headers**:
464
+ * - Authorization: Bearer <token>
465
+ *
466
+ * **Response**: Updated widget with:
467
+ * - widget_id: External ID
468
+ * - widget_key, widget_name: Updated values
469
+ * - updated_at: Update timestamp
470
+ *
471
+ * **Validation**:
472
+ * - Widget must exist and belong to organization
473
+ * - Cannot update global platform widgets (is_global=TRUE)
474
+ * - If widget_key updated, must be unique
475
+ * - If provider_key updated, must be valid format
476
+ *
477
+ * **Note**: Global platform widgets are immutable
478
+ */
479
+ patch: operations["updateCustomWidget"];
480
+ trace?: never;
481
+ };
482
+ "/v1/me/dashboard": {
483
+ parameters: {
484
+ query?: never;
485
+ header?: never;
486
+ path?: never;
487
+ cookie?: never;
488
+ };
489
+ /**
490
+ * Get My Dashboard
491
+ * @description Get the user's dashboard with 5-step priority resolution.
492
+ *
493
+ * **For**: Users accessing their personalized dashboard
494
+ * **Purpose**: Retrieve dashboard configuration with automatic priority resolution
495
+ *
496
+ * **Flow**:
497
+ * 1. Applies 5-step priority resolution (see below)
498
+ * 2. Retrieves dashboard template
499
+ * 3. Applies user customizations if any
500
+ * 4. Updates last_viewed_at timestamp
501
+ * 5. Returns complete dashboard configuration
502
+ *
503
+ * **Resolution Order** (highest to lowest priority):
504
+ * 1. User Preference (custom template selection)
505
+ * 2. Sub-Tenant Override (if parent allows)
506
+ * 3. Role Assignment (highest priority role)
507
+ * 4. Org Default Template (is_default=TRUE)
508
+ * 5. Platform Global Template (is_global=TRUE)
509
+ *
510
+ * **Authentication**: Required (JWT token with dashboard.view.own permission)
511
+ * **Headers**:
512
+ * - Authorization: Bearer <token>
513
+ *
514
+ * **Response**: Dashboard configuration with:
515
+ * - dashboard_id: Template ID used
516
+ * - dashboard_name: Template name
517
+ * - is_customized: Whether user has customizations
518
+ * - inheritance_chain: Resolution path taken
519
+ * - layout_config: Dashboard layout with widgets
520
+ * - last_viewed_at: Last access timestamp
521
+ *
522
+ * **Side Effects**: Updates last_viewed_at timestamp for analytics
523
+ *
524
+ * **Validation**:
525
+ * - User must be authenticated
526
+ * - Falls back through priority chain until dashboard found
527
+ */
528
+ get: operations["getDashboard"];
529
+ put?: never;
530
+ post?: never;
531
+ delete?: never;
532
+ options?: never;
533
+ head?: never;
534
+ /**
535
+ * Customize Dashboard
536
+ * @description Save user dashboard customizations.
537
+ *
538
+ * **For**: Users personalizing their dashboard layout
539
+ * **Purpose**: Persist user-specific dashboard modifications
540
+ *
541
+ * **Example Request Body**:
542
+ * ```json
543
+ * {
544
+ * "schema_version": "1.0",
545
+ * "hidden_widgets": ["wdg_abc123"],
546
+ * "widget_overrides": {
547
+ * "wdg_def456": {
548
+ * "position": {"row": 1, "col": 0, "width": 6, "height": 3},
549
+ * "config": {"date_range": "7d"}
550
+ * }
551
+ * }
552
+ * }
553
+ * ```
554
+ *
555
+ * **Flow**:
556
+ * 1. Validates schema version is "1.0"
557
+ * 2. Validates widget references exist
558
+ * 3. Saves customization to user preferences
559
+ * 4. Returns confirmation
560
+ *
561
+ * **Customization Options**:
562
+ * - hidden_widgets: List of widget IDs to hide
563
+ * - widget_overrides: Modify widget position/config
564
+ * - added_widgets: Add custom widgets
565
+ *
566
+ * **Required Fields**: schema_version
567
+ * **Optional Fields**: hidden_widgets, widget_overrides, added_widgets
568
+ * **Authentication**: Required (JWT token with dashboard.customize.own permission)
569
+ * **Headers**:
570
+ * - Authorization: Bearer <token>
571
+ *
572
+ * **Response**: Customization confirmation
573
+ * **Validation**:
574
+ * - Schema version must be "1.0"
575
+ * - All widget references must exist in library
576
+ * - Widget positions must not overlap (validation happens client-side)
577
+ */
578
+ patch: operations["updateDashboard"];
579
+ trace?: never;
580
+ };
581
+ "/v1/me/dashboard/resets": {
582
+ parameters: {
583
+ query?: never;
584
+ header?: never;
585
+ path?: never;
586
+ cookie?: never;
587
+ };
588
+ get?: never;
589
+ put?: never;
590
+ /**
591
+ * Reset Dashboard
592
+ * @description Reset dashboard to default (remove all customizations).
593
+ *
594
+ * **For**: Users reverting to default dashboard layout
595
+ * **Purpose**: Restore dashboard to org/role default settings
596
+ *
597
+ * **Flow**:
598
+ * 1. Deletes all user customizations
599
+ * 2. Clears user preference settings
600
+ * 3. Returns confirmation
601
+ * 4. Next GET request will resolve through priority chain
602
+ *
603
+ * **Authentication**: Required (JWT token with dashboard.customize.own permission)
604
+ * **Headers**:
605
+ * - Authorization: Bearer <token>
606
+ *
607
+ * **Response**: Reset confirmation
608
+ * **Effect**:
609
+ * - Deletes all user customizations (hidden widgets, overrides)
610
+ * - Next GET will resolve to role/org/global default
611
+ * - Preserves last_viewed_at history for analytics
612
+ *
613
+ * **Validation**:
614
+ * - User must be authenticated
615
+ * - No request body required
616
+ */
617
+ post: operations["resetDashboard"];
618
+ delete?: never;
619
+ options?: never;
620
+ head?: never;
621
+ patch?: never;
622
+ trace?: never;
623
+ };
624
+ "/v1/me/dashboard/exports": {
625
+ parameters: {
626
+ query?: never;
627
+ header?: never;
628
+ path?: never;
629
+ cookie?: never;
630
+ };
631
+ get?: never;
632
+ put?: never;
633
+ /**
634
+ * Export Dashboard
635
+ * @description Export dashboard to PDF or Excel.
636
+ *
637
+ * **For**: Users exporting their dashboard data
638
+ * **Purpose**: Generate downloadable dashboard report
639
+ *
640
+ * **Example Request Body**:
641
+ * ```json
642
+ * {
643
+ * "format": "pdf",
644
+ * "include_data": true
645
+ * }
646
+ * ```
647
+ *
648
+ * **Flow** (Planned for Phase 8):
649
+ * 1. Retrieves user dashboard configuration
650
+ * 2. Fetches current widget data
651
+ * 3. Generates export file in requested format
652
+ * 4. Returns download URL or file stream
653
+ *
654
+ * **Supported Formats**:
655
+ * - pdf: PDF document with dashboard layout
656
+ * - excel: Excel spreadsheet with widget data
657
+ *
658
+ * **Required Fields**: format
659
+ * **Optional Fields**: include_data
660
+ * **Authentication**: Required (JWT token with dashboard.export.own permission)
661
+ * **Headers**:
662
+ * - Authorization: Bearer <token>
663
+ *
664
+ * **Response**: Export details (currently placeholder)
665
+ * **Note**: This is a placeholder implementation. Phase 8 will add actual export logic.
666
+ *
667
+ * **Validation**:
668
+ * - Format must be: pdf or excel
669
+ * - User must have access to dashboard
670
+ */
671
+ post: operations["exportDashboard"];
672
+ delete?: never;
673
+ options?: never;
674
+ head?: never;
675
+ patch?: never;
676
+ trace?: never;
677
+ };
678
+ "/v1/me/dashboard/widgets/{widget_key}": {
679
+ parameters: {
680
+ query?: never;
681
+ header?: never;
682
+ path?: never;
683
+ cookie?: never;
684
+ };
685
+ /**
686
+ * Get Widget Data
687
+ * @description Get data for a specific widget (SINGLE CANONICAL PATH).
688
+ *
689
+ * **For**: Users fetching widget data for dashboard display
690
+ * **Purpose**: Fetch widget data with automatic caching and permission filtering
691
+ *
692
+ * **Flow**:
693
+ * 1. Checks cache for widget data (cache key includes config)
694
+ * 2. If cache HIT: Returns cached data
695
+ * 3. If cache MISS: Calls data provider, caches result, returns data
696
+ * 4. Applies user permissions filtering
697
+ * 5. Returns widget data
698
+ *
699
+ * **Path Parameters**: widget_key (e.g., 'total_revenue', 'order_count', 'top_products')
700
+ * **Query Parameters**:
701
+ * - date_range: Predefined range (today, 7d, 30d, 90d, 1y, all) - optional
702
+ * - start_date: Custom start date (ISO: YYYY-MM-DD) - optional
703
+ * - end_date: Custom end date (ISO: YYYY-MM-DD) - optional
704
+ * - limit: Result limit for list widgets (1-1000) - default: 10
705
+ * - company_id: Filter by company - optional
706
+ * - space_id: Filter by space - optional
707
+ *
708
+ * **Authentication**: Required (JWT token with dashboard.view.own permission)
709
+ * **Headers**:
710
+ * - Authorization: Bearer <token>
711
+ *
712
+ * **Response**: Widget data with type-specific structure
713
+ * **Cache Behavior**:
714
+ * - Cache HIT: Returns cached data (TTL varies by widget type)
715
+ * - Cache MISS: Fetches fresh data, caches it, returns data
716
+ * - cache_status is NOT included in response (internal optimization)
717
+ *
718
+ * **Widget Types & Cache TTL**:
719
+ * - metric: 60 seconds
720
+ * - chart: 5 minutes (300s)
721
+ * - table: 30 seconds
722
+ * - list: 60 seconds
723
+ * - alert: 2 minutes (120s)
724
+ *
725
+ * **Example**: `/v1/dashboards/widgets/total_revenue?date_range=30d&company_id=5`
726
+ *
727
+ * **Validation**:
728
+ * - Widget must exist in library
729
+ * - User must have permission to view widget data
730
+ * - Date range or start/end dates can be specified (not both)
731
+ */
732
+ get: operations["getWidget"];
733
+ put?: never;
734
+ post?: never;
735
+ delete?: never;
736
+ options?: never;
737
+ head?: never;
738
+ patch?: never;
739
+ trace?: never;
740
+ };
741
+ "/v1/me/dashboard/widgets/{widget_key}/cache": {
742
+ parameters: {
743
+ query?: never;
744
+ header?: never;
745
+ path?: never;
746
+ cookie?: never;
747
+ };
748
+ get?: never;
749
+ put?: never;
750
+ post?: never;
751
+ /**
752
+ * Refresh Widget Cache
753
+ * @description Force refresh widget cache (invalidate and fetch fresh data).
754
+ *
755
+ * **For**: Users requesting real-time widget data
756
+ * **Purpose**: Get latest data bypassing cache
757
+ *
758
+ * **Flow**:
759
+ * 1. Invalidates existing cache entry for widget+config
760
+ * 2. Fetches fresh data from data provider
761
+ * 3. Stores fresh data in cache with TTL
762
+ * 4. Returns fresh data to user
763
+ *
764
+ * **Path Parameters**: widget_key (widget identifier)
765
+ * **Query Parameters**: Same as GET endpoint
766
+ * - date_range, start_date, end_date, limit, company_id, space_id
767
+ *
768
+ * **Authentication**: Required (JWT token with dashboard.view.own permission)
769
+ * **Headers**:
770
+ * - Authorization: Bearer <token>
771
+ *
772
+ * **Response**: Fresh widget data
773
+ * **Use Cases**:
774
+ * - Real-time updates needed (after placing order, payment, etc.)
775
+ * - Suspicious cached data
776
+ * - After manual data modification
777
+ * - User explicitly requests refresh
778
+ *
779
+ * **Validation**:
780
+ * - Widget must exist in library
781
+ * - User must have permission to view widget
782
+ * - Same validation as GET endpoint
783
+ *
784
+ * **Note**: Use sparingly to avoid database load. Regular GET requests use cache efficiently.
785
+ */
786
+ delete: operations["invalidateWidgetCache"];
787
+ options?: never;
788
+ head?: never;
789
+ patch?: never;
790
+ trace?: never;
791
+ };
792
+ }
793
+ export type webhooks = Record<string, never>;
794
+ export interface components {
795
+ schemas: {
796
+ /**
797
+ * TemplateCreateRequest
798
+ * @description Request model for creating dashboard template
799
+ * @example {
800
+ * "allow_child_override": true,
801
+ * "description": "Dashboard for executives with key metrics",
802
+ * "is_default": false,
803
+ * "layout_config": {
804
+ * "grid_columns": 12,
805
+ * "schema_version": "1.0",
806
+ * "widgets": [
807
+ * {
808
+ * "config": {
809
+ * "date_range": "30d"
810
+ * },
811
+ * "position": {
812
+ * "col": 0,
813
+ * "height": 2,
814
+ * "row": 0,
815
+ * "width": 4
816
+ * },
817
+ * "widget_id": "wdg_abc123",
818
+ * "widget_key": "total_revenue"
819
+ * }
820
+ * ]
821
+ * },
822
+ * "template_name": "Executive Dashboard",
823
+ * "template_type": "custom"
824
+ * }
825
+ */
826
+ TemplateCreateRequest: {
827
+ /**
828
+ * Template Name
829
+ * @description Template name
830
+ */
831
+ template_name: string;
832
+ /**
833
+ * Template Type
834
+ * @description Template type: global, org_default, custom
835
+ * @default custom
836
+ */
837
+ template_type: string;
838
+ /**
839
+ * Description
840
+ * @description Template description
841
+ */
842
+ description?: string | null;
843
+ /**
844
+ * Layout Config
845
+ * @description Dashboard layout configuration
846
+ */
847
+ layout_config: {
848
+ [key: string]: unknown;
849
+ };
850
+ /**
851
+ * Is Default
852
+ * @description Set as org default template
853
+ * @default false
854
+ */
855
+ is_default: boolean;
856
+ /**
857
+ * Is Global
858
+ * @description Global template (platform-wide)
859
+ * @default false
860
+ */
861
+ is_global: boolean;
862
+ /**
863
+ * Allow Child Override
864
+ * @description Allow child tenants to override
865
+ * @default true
866
+ */
867
+ allow_child_override: boolean;
868
+ /**
869
+ * Inherit From Template Id
870
+ * @description Parent template ID for inheritance
871
+ */
872
+ inherit_from_template_id?: number | null;
873
+ };
874
+ /**
875
+ * DeleteTemplateRequest
876
+ * @description Request model for deleting dashboard template
877
+ */
878
+ DeleteTemplateRequest: {
879
+ /**
880
+ * Deleted Reason
881
+ * @description Reason for deletion
882
+ */
883
+ deleted_reason?: string | null;
884
+ };
885
+ Extensions: {
886
+ /** @example GENERIC_ERROR */
887
+ message_code?: string;
888
+ /** @example [] */
889
+ invalid_params?: components["schemas"]["InvalidParam"][];
890
+ extra_data?: Record<string, never> | null;
891
+ /** @example Detailed debug information */
892
+ debug?: string | null;
893
+ };
894
+ /**
895
+ * WidgetCreateRequest
896
+ * @description Request model for creating custom widget
897
+ * @example {
898
+ * "default_config": {
899
+ * "date_range": "30d"
900
+ * },
901
+ * "description": "Custom metric for tracking KPIs",
902
+ * "provider_key": "CustomDataProvider.get_metric",
903
+ * "required_permissions": [
904
+ * "analytics_view"
905
+ * ],
906
+ * "supported_sizes": [
907
+ * "small",
908
+ * "medium"
909
+ * ],
910
+ * "widget_category": "custom",
911
+ * "widget_key": "custom_metric",
912
+ * "widget_name": "Custom Metric",
913
+ * "widget_type": "metric"
914
+ * }
915
+ */
916
+ WidgetCreateRequest: {
917
+ /**
918
+ * Widget Key
919
+ * @description Unique widget key (e.g., 'total_revenue')
920
+ */
921
+ widget_key: string;
922
+ /**
923
+ * Widget Name
924
+ * @description Display name
925
+ */
926
+ widget_name: string;
927
+ /**
928
+ * Widget Type
929
+ * @description Widget type: metric, chart, table, list, alert
930
+ */
931
+ widget_type: string;
932
+ /**
933
+ * Widget Category
934
+ * @description Category: analytics, sales, operations, custom
935
+ * @default custom
936
+ */
937
+ widget_category: string;
938
+ /**
939
+ * Provider Key
940
+ * @description Data provider binding (e.g., 'RevenueDataProvider.get_total_revenue')
941
+ */
942
+ provider_key: string;
943
+ /**
944
+ * Description
945
+ * @description Widget description
946
+ */
947
+ description?: string | null;
948
+ /**
949
+ * Default Config
950
+ * @description Default configuration
951
+ */
952
+ default_config?: {
953
+ [key: string]: unknown;
954
+ } | null;
955
+ /**
956
+ * Required Permissions
957
+ * @description Required permissions to view
958
+ */
959
+ required_permissions?: string[] | null;
960
+ /**
961
+ * Supported Sizes
962
+ * @description Supported widget sizes
963
+ */
964
+ supported_sizes?: string[] | null;
965
+ };
966
+ /**
967
+ * RoleAssignmentRequest
968
+ * @description Request model for assigning dashboard to role
969
+ * @example {
970
+ * "priority": 10,
971
+ * "template_id": "dash_3W4X5Y6zA7B8cd9E",
972
+ * "user_role_id": 5
973
+ * }
974
+ */
975
+ RoleAssignmentRequest: {
976
+ /**
977
+ * Template Id
978
+ * @description Dashboard template external ID (dash_xxx)
979
+ */
980
+ template_id: string;
981
+ /**
982
+ * User Role Id
983
+ * @description User role ID to assign template to
984
+ */
985
+ user_role_id: number;
986
+ /**
987
+ * Priority
988
+ * @description Priority for multi-role users (higher = higher priority)
989
+ * @default 0
990
+ */
991
+ priority: number;
992
+ };
993
+ /**
994
+ * WidgetUpdateRequest
995
+ * @description Request model for updating custom widget
996
+ */
997
+ WidgetUpdateRequest: {
998
+ /** Widget Name */
999
+ widget_name?: string | null;
1000
+ /** Description */
1001
+ description?: string | null;
1002
+ /** Default Config */
1003
+ default_config?: {
1004
+ [key: string]: unknown;
1005
+ } | null;
1006
+ /** Required Permissions */
1007
+ required_permissions?: string[] | null;
1008
+ /** Supported Sizes */
1009
+ supported_sizes?: string[] | null;
1010
+ /**
1011
+ * Status
1012
+ * @description Status: active, inactive, deleted
1013
+ */
1014
+ status?: string | null;
1015
+ };
1016
+ /**
1017
+ * @example {
1018
+ * "status": "success",
1019
+ * "message": "Operation successful",
1020
+ * "message_code": "api_suc_20001",
1021
+ * "data": {},
1022
+ * "metadata": {
1023
+ * "timestamp": "2026-03-26T10:00:00.000Z",
1024
+ * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
1025
+ * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
1026
+ * "version": "v1",
1027
+ * "executionTime": 42,
1028
+ * "language": "en-US"
1029
+ * }
1030
+ * }
1031
+ */
1032
+ StandardResponse: {
1033
+ /** @example success */
1034
+ status?: string;
1035
+ data?: Record<string, never> | null;
1036
+ /** @example Operation successful */
1037
+ message?: string | null;
1038
+ /** @example api_suc_20001 */
1039
+ message_code?: string | null;
1040
+ metadata?: Record<string, never> | null;
1041
+ error?: components["schemas"]["ErrorResponse"];
1042
+ };
1043
+ /**
1044
+ * CustomizationRequest
1045
+ * @description Request model for saving dashboard customizations
1046
+ * @example {
1047
+ * "added_widgets": [],
1048
+ * "hidden_widgets": [
1049
+ * "wdg_abc123"
1050
+ * ],
1051
+ * "schema_version": "1.0",
1052
+ * "widget_overrides": {
1053
+ * "wdg_def456": {
1054
+ * "config": {
1055
+ * "date_range": "7d"
1056
+ * },
1057
+ * "position": {
1058
+ * "col": 0,
1059
+ * "height": 3,
1060
+ * "row": 1,
1061
+ * "width": 6
1062
+ * }
1063
+ * }
1064
+ * }
1065
+ * }
1066
+ */
1067
+ CustomizationRequest: {
1068
+ /**
1069
+ * Schema Version
1070
+ * @description Schema version
1071
+ * @default 1.0
1072
+ */
1073
+ schema_version: string;
1074
+ /**
1075
+ * Hidden Widgets
1076
+ * @description Widget IDs to hide
1077
+ */
1078
+ hidden_widgets?: string[] | null;
1079
+ /**
1080
+ * Widget Overrides
1081
+ * @description Widget-specific overrides (position, config)
1082
+ */
1083
+ widget_overrides?: {
1084
+ [key: string]: {
1085
+ [key: string]: unknown;
1086
+ };
1087
+ } | null;
1088
+ /**
1089
+ * Added Widgets
1090
+ * @description Custom widgets added by user
1091
+ */
1092
+ added_widgets?: {
1093
+ [key: string]: unknown;
1094
+ }[] | null;
1095
+ };
1096
+ InvalidParam: {
1097
+ /** @example items[0].quantity */
1098
+ field?: string;
1099
+ /** @example Input should be greater than or equal to 1 */
1100
+ error?: string;
1101
+ };
1102
+ ErrorResponse: {
1103
+ /** @example about:blank */
1104
+ type?: string;
1105
+ /** @example GENERIC_ERROR */
1106
+ code?: string;
1107
+ /** @example Client Error */
1108
+ title?: string;
1109
+ /** @example 400 */
1110
+ status?: number;
1111
+ /** @example An error occurred */
1112
+ detail?: string;
1113
+ /** @example /v1/cart/items */
1114
+ instance?: string;
1115
+ extensions?: components["schemas"]["Extensions"];
1116
+ };
1117
+ /**
1118
+ * ExportRequest
1119
+ * @description Request model for exporting dashboard
1120
+ */
1121
+ ExportRequest: {
1122
+ /**
1123
+ * Format
1124
+ * @description Export format: pdf, excel
1125
+ * @default pdf
1126
+ */
1127
+ format: string;
1128
+ /**
1129
+ * Include Data
1130
+ * @description Include widget data in export
1131
+ * @default true
1132
+ */
1133
+ include_data: boolean;
1134
+ };
1135
+ /**
1136
+ * TemplateUpdateRequest
1137
+ * @description Request model for updating dashboard template
1138
+ */
1139
+ TemplateUpdateRequest: {
1140
+ /** Template Name */
1141
+ template_name?: string | null;
1142
+ /** Description */
1143
+ description?: string | null;
1144
+ /** Layout Config */
1145
+ layout_config?: {
1146
+ [key: string]: unknown;
1147
+ } | null;
1148
+ /** Is Default */
1149
+ is_default?: boolean | null;
1150
+ /** Allow Child Override */
1151
+ allow_child_override?: boolean | null;
1152
+ /**
1153
+ * Status
1154
+ * @description Status: active, archived
1155
+ */
1156
+ status?: string | null;
1157
+ };
1158
+ };
1159
+ responses: never;
1160
+ parameters: never;
1161
+ requestBodies: never;
1162
+ headers: never;
1163
+ pathItems: never;
1164
+ }
1165
+ export type $defs = Record<string, never>;
1166
+ export interface operations {
1167
+ listDashboardTemplates: {
1168
+ parameters: {
1169
+ query?: {
1170
+ /** @description Filter by status */
1171
+ status?: string;
1172
+ /** @description Page number (1-based) */
1173
+ page?: number;
1174
+ /** @description Items per page (1–500, default 100) */
1175
+ limit?: number;
1176
+ };
1177
+ header?: {
1178
+ authorization?: string | null;
1179
+ };
1180
+ path?: never;
1181
+ cookie?: never;
1182
+ };
1183
+ requestBody?: never;
1184
+ responses: {
1185
+ /** @description Successful Response */
1186
+ 200: {
1187
+ headers: {
1188
+ [name: string]: unknown;
1189
+ };
1190
+ content: {
1191
+ "application/json": components["schemas"]["StandardResponse"];
1192
+ };
1193
+ };
1194
+ /** @description Bad Request */
1195
+ 400: {
1196
+ headers: {
1197
+ [name: string]: unknown;
1198
+ };
1199
+ content: {
1200
+ /**
1201
+ * @example {
1202
+ * "status": "error",
1203
+ * "message": "An error occurred",
1204
+ * "message_code": "GENERIC_ERROR",
1205
+ * "metadata": {
1206
+ * "timestamp": "2025-08-05T18:38:57Z",
1207
+ * "requestId": "uuid",
1208
+ * "traceId": "uuid",
1209
+ * "version": "v1",
1210
+ * "executionTime": 0,
1211
+ * "language": "en-US",
1212
+ * "links": [
1213
+ * {
1214
+ * "rel": "self",
1215
+ * "href": "/v1/cart/items",
1216
+ * "method": "POST"
1217
+ * }
1218
+ * ]
1219
+ * },
1220
+ * "error": {
1221
+ * "type": "https://{your-domain}/errors/client-error",
1222
+ * "code": "GENERIC_ERROR",
1223
+ * "title": "Client Error",
1224
+ * "status": 400,
1225
+ * "detail": "An error occurred",
1226
+ * "instance": "/v1/cart/items",
1227
+ * "extensions": {
1228
+ * "message_code": "GENERIC_ERROR",
1229
+ * "invalid_params": []
1230
+ * }
1231
+ * }
1232
+ * }
1233
+ */
1234
+ "application/json": components["schemas"]["StandardResponse"];
1235
+ };
1236
+ };
1237
+ /** @description Unprocessable Entity */
1238
+ 422: {
1239
+ headers: {
1240
+ [name: string]: unknown;
1241
+ };
1242
+ content: {
1243
+ /**
1244
+ * @example {
1245
+ * "status": "error",
1246
+ * "message": "One or more input fields are invalid",
1247
+ * "message_code": "INVALID_INPUT",
1248
+ * "metadata": {
1249
+ * "timestamp": "2025-08-05T18:38:57Z",
1250
+ * "requestId": "uuid",
1251
+ * "traceId": "uuid",
1252
+ * "version": "v1",
1253
+ * "executionTime": 0,
1254
+ * "language": "en-US",
1255
+ * "links": [
1256
+ * {
1257
+ * "rel": "self",
1258
+ * "href": "/v1/cart/items",
1259
+ * "method": "POST"
1260
+ * }
1261
+ * ]
1262
+ * },
1263
+ * "error": {
1264
+ * "type": "https://{your-domain}/errors/invalid-input",
1265
+ * "code": "INVALID_INPUT",
1266
+ * "title": "Invalid Input",
1267
+ * "status": 422,
1268
+ * "detail": "One or more input fields are invalid",
1269
+ * "instance": "/v1/cart/items",
1270
+ * "extensions": {
1271
+ * "message_code": "INVALID_INPUT",
1272
+ * "invalid_params": [
1273
+ * {
1274
+ * "field": "items[0].quantity",
1275
+ * "error": "Input should be greater than or equal to 1"
1276
+ * }
1277
+ * ]
1278
+ * }
1279
+ * }
1280
+ * }
1281
+ */
1282
+ "application/json": components["schemas"]["StandardResponse"];
1283
+ };
1284
+ };
1285
+ /** @description Too Many Requests */
1286
+ 429: {
1287
+ headers: {
1288
+ [name: string]: unknown;
1289
+ };
1290
+ content: {
1291
+ /**
1292
+ * @example {
1293
+ * "status": "error",
1294
+ * "message": "Too many requests",
1295
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1296
+ * "metadata": {
1297
+ * "timestamp": "2025-08-05T18:38:57Z",
1298
+ * "requestId": "uuid",
1299
+ * "traceId": "uuid",
1300
+ * "version": "v1",
1301
+ * "executionTime": 0,
1302
+ * "language": "en-US",
1303
+ * "links": [
1304
+ * {
1305
+ * "rel": "self",
1306
+ * "href": "/v1/cart/items",
1307
+ * "method": "POST"
1308
+ * }
1309
+ * ]
1310
+ * },
1311
+ * "error": {
1312
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
1313
+ * "code": "RATE_LIMIT_EXCEEDED",
1314
+ * "title": "Rate Limit Exceeded",
1315
+ * "status": 429,
1316
+ * "detail": "Too many requests",
1317
+ * "instance": "/v1/cart/items",
1318
+ * "extensions": {
1319
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1320
+ * "invalid_params": []
1321
+ * }
1322
+ * }
1323
+ * }
1324
+ */
1325
+ "application/json": components["schemas"]["StandardResponse"];
1326
+ };
1327
+ };
1328
+ /** @description Internal Server Error */
1329
+ 500: {
1330
+ headers: {
1331
+ [name: string]: unknown;
1332
+ };
1333
+ content: {
1334
+ /**
1335
+ * @example {
1336
+ * "status": "error",
1337
+ * "message": "An unexpected error occurred",
1338
+ * "message_code": "SERVER_ERROR",
1339
+ * "metadata": {
1340
+ * "timestamp": "2025-08-05T18:38:57Z",
1341
+ * "requestId": "uuid",
1342
+ * "traceId": "uuid",
1343
+ * "version": "v1",
1344
+ * "executionTime": 0,
1345
+ * "language": "en-US",
1346
+ * "links": [
1347
+ * {
1348
+ * "rel": "self",
1349
+ * "href": "/v1/cart/items",
1350
+ * "method": "POST"
1351
+ * }
1352
+ * ]
1353
+ * },
1354
+ * "error": {
1355
+ * "type": "https://{your-domain}/errors/server-error",
1356
+ * "code": "SERVER_ERROR",
1357
+ * "title": "Server Error",
1358
+ * "status": 500,
1359
+ * "detail": "An unexpected error occurred",
1360
+ * "instance": "/v1/cart/items",
1361
+ * "extensions": {
1362
+ * "message_code": "SERVER_ERROR",
1363
+ * "invalid_params": []
1364
+ * }
1365
+ * }
1366
+ * }
1367
+ */
1368
+ "application/json": components["schemas"]["StandardResponse"];
1369
+ };
1370
+ };
1371
+ };
1372
+ };
1373
+ createDashboardTemplate: {
1374
+ parameters: {
1375
+ query?: never;
1376
+ header?: {
1377
+ authorization?: string | null;
1378
+ };
1379
+ path?: never;
1380
+ cookie?: never;
1381
+ };
1382
+ requestBody: {
1383
+ content: {
1384
+ "application/json": components["schemas"]["TemplateCreateRequest"];
1385
+ };
1386
+ };
1387
+ responses: {
1388
+ /** @description Successful Response */
1389
+ 201: {
1390
+ headers: {
1391
+ [name: string]: unknown;
1392
+ };
1393
+ content: {
1394
+ "application/json": components["schemas"]["StandardResponse"];
1395
+ };
1396
+ };
1397
+ /** @description Bad Request */
1398
+ 400: {
1399
+ headers: {
1400
+ [name: string]: unknown;
1401
+ };
1402
+ content: {
1403
+ /**
1404
+ * @example {
1405
+ * "status": "error",
1406
+ * "message": "An error occurred",
1407
+ * "message_code": "GENERIC_ERROR",
1408
+ * "metadata": {
1409
+ * "timestamp": "2025-08-05T18:38:57Z",
1410
+ * "requestId": "uuid",
1411
+ * "traceId": "uuid",
1412
+ * "version": "v1",
1413
+ * "executionTime": 0,
1414
+ * "language": "en-US",
1415
+ * "links": [
1416
+ * {
1417
+ * "rel": "self",
1418
+ * "href": "/v1/cart/items",
1419
+ * "method": "POST"
1420
+ * }
1421
+ * ]
1422
+ * },
1423
+ * "error": {
1424
+ * "type": "https://{your-domain}/errors/client-error",
1425
+ * "code": "GENERIC_ERROR",
1426
+ * "title": "Client Error",
1427
+ * "status": 400,
1428
+ * "detail": "An error occurred",
1429
+ * "instance": "/v1/cart/items",
1430
+ * "extensions": {
1431
+ * "message_code": "GENERIC_ERROR",
1432
+ * "invalid_params": []
1433
+ * }
1434
+ * }
1435
+ * }
1436
+ */
1437
+ "application/json": components["schemas"]["StandardResponse"];
1438
+ };
1439
+ };
1440
+ /** @description Unprocessable Entity */
1441
+ 422: {
1442
+ headers: {
1443
+ [name: string]: unknown;
1444
+ };
1445
+ content: {
1446
+ /**
1447
+ * @example {
1448
+ * "status": "error",
1449
+ * "message": "One or more input fields are invalid",
1450
+ * "message_code": "INVALID_INPUT",
1451
+ * "metadata": {
1452
+ * "timestamp": "2025-08-05T18:38:57Z",
1453
+ * "requestId": "uuid",
1454
+ * "traceId": "uuid",
1455
+ * "version": "v1",
1456
+ * "executionTime": 0,
1457
+ * "language": "en-US",
1458
+ * "links": [
1459
+ * {
1460
+ * "rel": "self",
1461
+ * "href": "/v1/cart/items",
1462
+ * "method": "POST"
1463
+ * }
1464
+ * ]
1465
+ * },
1466
+ * "error": {
1467
+ * "type": "https://{your-domain}/errors/invalid-input",
1468
+ * "code": "INVALID_INPUT",
1469
+ * "title": "Invalid Input",
1470
+ * "status": 422,
1471
+ * "detail": "One or more input fields are invalid",
1472
+ * "instance": "/v1/cart/items",
1473
+ * "extensions": {
1474
+ * "message_code": "INVALID_INPUT",
1475
+ * "invalid_params": [
1476
+ * {
1477
+ * "field": "items[0].quantity",
1478
+ * "error": "Input should be greater than or equal to 1"
1479
+ * }
1480
+ * ]
1481
+ * }
1482
+ * }
1483
+ * }
1484
+ */
1485
+ "application/json": components["schemas"]["StandardResponse"];
1486
+ };
1487
+ };
1488
+ /** @description Too Many Requests */
1489
+ 429: {
1490
+ headers: {
1491
+ [name: string]: unknown;
1492
+ };
1493
+ content: {
1494
+ /**
1495
+ * @example {
1496
+ * "status": "error",
1497
+ * "message": "Too many requests",
1498
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1499
+ * "metadata": {
1500
+ * "timestamp": "2025-08-05T18:38:57Z",
1501
+ * "requestId": "uuid",
1502
+ * "traceId": "uuid",
1503
+ * "version": "v1",
1504
+ * "executionTime": 0,
1505
+ * "language": "en-US",
1506
+ * "links": [
1507
+ * {
1508
+ * "rel": "self",
1509
+ * "href": "/v1/cart/items",
1510
+ * "method": "POST"
1511
+ * }
1512
+ * ]
1513
+ * },
1514
+ * "error": {
1515
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
1516
+ * "code": "RATE_LIMIT_EXCEEDED",
1517
+ * "title": "Rate Limit Exceeded",
1518
+ * "status": 429,
1519
+ * "detail": "Too many requests",
1520
+ * "instance": "/v1/cart/items",
1521
+ * "extensions": {
1522
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1523
+ * "invalid_params": []
1524
+ * }
1525
+ * }
1526
+ * }
1527
+ */
1528
+ "application/json": components["schemas"]["StandardResponse"];
1529
+ };
1530
+ };
1531
+ /** @description Internal Server Error */
1532
+ 500: {
1533
+ headers: {
1534
+ [name: string]: unknown;
1535
+ };
1536
+ content: {
1537
+ /**
1538
+ * @example {
1539
+ * "status": "error",
1540
+ * "message": "An unexpected error occurred",
1541
+ * "message_code": "SERVER_ERROR",
1542
+ * "metadata": {
1543
+ * "timestamp": "2025-08-05T18:38:57Z",
1544
+ * "requestId": "uuid",
1545
+ * "traceId": "uuid",
1546
+ * "version": "v1",
1547
+ * "executionTime": 0,
1548
+ * "language": "en-US",
1549
+ * "links": [
1550
+ * {
1551
+ * "rel": "self",
1552
+ * "href": "/v1/cart/items",
1553
+ * "method": "POST"
1554
+ * }
1555
+ * ]
1556
+ * },
1557
+ * "error": {
1558
+ * "type": "https://{your-domain}/errors/server-error",
1559
+ * "code": "SERVER_ERROR",
1560
+ * "title": "Server Error",
1561
+ * "status": 500,
1562
+ * "detail": "An unexpected error occurred",
1563
+ * "instance": "/v1/cart/items",
1564
+ * "extensions": {
1565
+ * "message_code": "SERVER_ERROR",
1566
+ * "invalid_params": []
1567
+ * }
1568
+ * }
1569
+ * }
1570
+ */
1571
+ "application/json": components["schemas"]["StandardResponse"];
1572
+ };
1573
+ };
1574
+ };
1575
+ };
1576
+ getDashboardTemplate: {
1577
+ parameters: {
1578
+ query?: never;
1579
+ header?: {
1580
+ authorization?: string | null;
1581
+ };
1582
+ path: {
1583
+ template_id: string;
1584
+ };
1585
+ cookie?: never;
1586
+ };
1587
+ requestBody?: never;
1588
+ responses: {
1589
+ /** @description Successful Response */
1590
+ 200: {
1591
+ headers: {
1592
+ [name: string]: unknown;
1593
+ };
1594
+ content: {
1595
+ "application/json": components["schemas"]["StandardResponse"];
1596
+ };
1597
+ };
1598
+ /** @description Bad Request */
1599
+ 400: {
1600
+ headers: {
1601
+ [name: string]: unknown;
1602
+ };
1603
+ content: {
1604
+ /**
1605
+ * @example {
1606
+ * "status": "error",
1607
+ * "message": "An error occurred",
1608
+ * "message_code": "GENERIC_ERROR",
1609
+ * "metadata": {
1610
+ * "timestamp": "2025-08-05T18:38:57Z",
1611
+ * "requestId": "uuid",
1612
+ * "traceId": "uuid",
1613
+ * "version": "v1",
1614
+ * "executionTime": 0,
1615
+ * "language": "en-US",
1616
+ * "links": [
1617
+ * {
1618
+ * "rel": "self",
1619
+ * "href": "/v1/cart/items",
1620
+ * "method": "POST"
1621
+ * }
1622
+ * ]
1623
+ * },
1624
+ * "error": {
1625
+ * "type": "https://{your-domain}/errors/client-error",
1626
+ * "code": "GENERIC_ERROR",
1627
+ * "title": "Client Error",
1628
+ * "status": 400,
1629
+ * "detail": "An error occurred",
1630
+ * "instance": "/v1/cart/items",
1631
+ * "extensions": {
1632
+ * "message_code": "GENERIC_ERROR",
1633
+ * "invalid_params": []
1634
+ * }
1635
+ * }
1636
+ * }
1637
+ */
1638
+ "application/json": components["schemas"]["StandardResponse"];
1639
+ };
1640
+ };
1641
+ /** @description Unprocessable Entity */
1642
+ 422: {
1643
+ headers: {
1644
+ [name: string]: unknown;
1645
+ };
1646
+ content: {
1647
+ /**
1648
+ * @example {
1649
+ * "status": "error",
1650
+ * "message": "One or more input fields are invalid",
1651
+ * "message_code": "INVALID_INPUT",
1652
+ * "metadata": {
1653
+ * "timestamp": "2025-08-05T18:38:57Z",
1654
+ * "requestId": "uuid",
1655
+ * "traceId": "uuid",
1656
+ * "version": "v1",
1657
+ * "executionTime": 0,
1658
+ * "language": "en-US",
1659
+ * "links": [
1660
+ * {
1661
+ * "rel": "self",
1662
+ * "href": "/v1/cart/items",
1663
+ * "method": "POST"
1664
+ * }
1665
+ * ]
1666
+ * },
1667
+ * "error": {
1668
+ * "type": "https://{your-domain}/errors/invalid-input",
1669
+ * "code": "INVALID_INPUT",
1670
+ * "title": "Invalid Input",
1671
+ * "status": 422,
1672
+ * "detail": "One or more input fields are invalid",
1673
+ * "instance": "/v1/cart/items",
1674
+ * "extensions": {
1675
+ * "message_code": "INVALID_INPUT",
1676
+ * "invalid_params": [
1677
+ * {
1678
+ * "field": "items[0].quantity",
1679
+ * "error": "Input should be greater than or equal to 1"
1680
+ * }
1681
+ * ]
1682
+ * }
1683
+ * }
1684
+ * }
1685
+ */
1686
+ "application/json": components["schemas"]["StandardResponse"];
1687
+ };
1688
+ };
1689
+ /** @description Too Many Requests */
1690
+ 429: {
1691
+ headers: {
1692
+ [name: string]: unknown;
1693
+ };
1694
+ content: {
1695
+ /**
1696
+ * @example {
1697
+ * "status": "error",
1698
+ * "message": "Too many requests",
1699
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1700
+ * "metadata": {
1701
+ * "timestamp": "2025-08-05T18:38:57Z",
1702
+ * "requestId": "uuid",
1703
+ * "traceId": "uuid",
1704
+ * "version": "v1",
1705
+ * "executionTime": 0,
1706
+ * "language": "en-US",
1707
+ * "links": [
1708
+ * {
1709
+ * "rel": "self",
1710
+ * "href": "/v1/cart/items",
1711
+ * "method": "POST"
1712
+ * }
1713
+ * ]
1714
+ * },
1715
+ * "error": {
1716
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
1717
+ * "code": "RATE_LIMIT_EXCEEDED",
1718
+ * "title": "Rate Limit Exceeded",
1719
+ * "status": 429,
1720
+ * "detail": "Too many requests",
1721
+ * "instance": "/v1/cart/items",
1722
+ * "extensions": {
1723
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1724
+ * "invalid_params": []
1725
+ * }
1726
+ * }
1727
+ * }
1728
+ */
1729
+ "application/json": components["schemas"]["StandardResponse"];
1730
+ };
1731
+ };
1732
+ /** @description Internal Server Error */
1733
+ 500: {
1734
+ headers: {
1735
+ [name: string]: unknown;
1736
+ };
1737
+ content: {
1738
+ /**
1739
+ * @example {
1740
+ * "status": "error",
1741
+ * "message": "An unexpected error occurred",
1742
+ * "message_code": "SERVER_ERROR",
1743
+ * "metadata": {
1744
+ * "timestamp": "2025-08-05T18:38:57Z",
1745
+ * "requestId": "uuid",
1746
+ * "traceId": "uuid",
1747
+ * "version": "v1",
1748
+ * "executionTime": 0,
1749
+ * "language": "en-US",
1750
+ * "links": [
1751
+ * {
1752
+ * "rel": "self",
1753
+ * "href": "/v1/cart/items",
1754
+ * "method": "POST"
1755
+ * }
1756
+ * ]
1757
+ * },
1758
+ * "error": {
1759
+ * "type": "https://{your-domain}/errors/server-error",
1760
+ * "code": "SERVER_ERROR",
1761
+ * "title": "Server Error",
1762
+ * "status": 500,
1763
+ * "detail": "An unexpected error occurred",
1764
+ * "instance": "/v1/cart/items",
1765
+ * "extensions": {
1766
+ * "message_code": "SERVER_ERROR",
1767
+ * "invalid_params": []
1768
+ * }
1769
+ * }
1770
+ * }
1771
+ */
1772
+ "application/json": components["schemas"]["StandardResponse"];
1773
+ };
1774
+ };
1775
+ };
1776
+ };
1777
+ deleteDashboardTemplate: {
1778
+ parameters: {
1779
+ query?: never;
1780
+ header?: {
1781
+ authorization?: string | null;
1782
+ };
1783
+ path: {
1784
+ template_id: string;
1785
+ };
1786
+ cookie?: never;
1787
+ };
1788
+ requestBody?: {
1789
+ content: {
1790
+ "application/json": components["schemas"]["DeleteTemplateRequest"];
1791
+ };
1792
+ };
1793
+ responses: {
1794
+ /** @description Successful Response */
1795
+ 200: {
1796
+ headers: {
1797
+ [name: string]: unknown;
1798
+ };
1799
+ content: {
1800
+ "application/json": components["schemas"]["StandardResponse"];
1801
+ };
1802
+ };
1803
+ /** @description Bad Request */
1804
+ 400: {
1805
+ headers: {
1806
+ [name: string]: unknown;
1807
+ };
1808
+ content: {
1809
+ /**
1810
+ * @example {
1811
+ * "status": "error",
1812
+ * "message": "An error occurred",
1813
+ * "message_code": "GENERIC_ERROR",
1814
+ * "metadata": {
1815
+ * "timestamp": "2025-08-05T18:38:57Z",
1816
+ * "requestId": "uuid",
1817
+ * "traceId": "uuid",
1818
+ * "version": "v1",
1819
+ * "executionTime": 0,
1820
+ * "language": "en-US",
1821
+ * "links": [
1822
+ * {
1823
+ * "rel": "self",
1824
+ * "href": "/v1/cart/items",
1825
+ * "method": "POST"
1826
+ * }
1827
+ * ]
1828
+ * },
1829
+ * "error": {
1830
+ * "type": "https://{your-domain}/errors/client-error",
1831
+ * "code": "GENERIC_ERROR",
1832
+ * "title": "Client Error",
1833
+ * "status": 400,
1834
+ * "detail": "An error occurred",
1835
+ * "instance": "/v1/cart/items",
1836
+ * "extensions": {
1837
+ * "message_code": "GENERIC_ERROR",
1838
+ * "invalid_params": []
1839
+ * }
1840
+ * }
1841
+ * }
1842
+ */
1843
+ "application/json": components["schemas"]["StandardResponse"];
1844
+ };
1845
+ };
1846
+ /** @description Unprocessable Entity */
1847
+ 422: {
1848
+ headers: {
1849
+ [name: string]: unknown;
1850
+ };
1851
+ content: {
1852
+ /**
1853
+ * @example {
1854
+ * "status": "error",
1855
+ * "message": "One or more input fields are invalid",
1856
+ * "message_code": "INVALID_INPUT",
1857
+ * "metadata": {
1858
+ * "timestamp": "2025-08-05T18:38:57Z",
1859
+ * "requestId": "uuid",
1860
+ * "traceId": "uuid",
1861
+ * "version": "v1",
1862
+ * "executionTime": 0,
1863
+ * "language": "en-US",
1864
+ * "links": [
1865
+ * {
1866
+ * "rel": "self",
1867
+ * "href": "/v1/cart/items",
1868
+ * "method": "POST"
1869
+ * }
1870
+ * ]
1871
+ * },
1872
+ * "error": {
1873
+ * "type": "https://{your-domain}/errors/invalid-input",
1874
+ * "code": "INVALID_INPUT",
1875
+ * "title": "Invalid Input",
1876
+ * "status": 422,
1877
+ * "detail": "One or more input fields are invalid",
1878
+ * "instance": "/v1/cart/items",
1879
+ * "extensions": {
1880
+ * "message_code": "INVALID_INPUT",
1881
+ * "invalid_params": [
1882
+ * {
1883
+ * "field": "items[0].quantity",
1884
+ * "error": "Input should be greater than or equal to 1"
1885
+ * }
1886
+ * ]
1887
+ * }
1888
+ * }
1889
+ * }
1890
+ */
1891
+ "application/json": components["schemas"]["StandardResponse"];
1892
+ };
1893
+ };
1894
+ /** @description Too Many Requests */
1895
+ 429: {
1896
+ headers: {
1897
+ [name: string]: unknown;
1898
+ };
1899
+ content: {
1900
+ /**
1901
+ * @example {
1902
+ * "status": "error",
1903
+ * "message": "Too many requests",
1904
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1905
+ * "metadata": {
1906
+ * "timestamp": "2025-08-05T18:38:57Z",
1907
+ * "requestId": "uuid",
1908
+ * "traceId": "uuid",
1909
+ * "version": "v1",
1910
+ * "executionTime": 0,
1911
+ * "language": "en-US",
1912
+ * "links": [
1913
+ * {
1914
+ * "rel": "self",
1915
+ * "href": "/v1/cart/items",
1916
+ * "method": "POST"
1917
+ * }
1918
+ * ]
1919
+ * },
1920
+ * "error": {
1921
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
1922
+ * "code": "RATE_LIMIT_EXCEEDED",
1923
+ * "title": "Rate Limit Exceeded",
1924
+ * "status": 429,
1925
+ * "detail": "Too many requests",
1926
+ * "instance": "/v1/cart/items",
1927
+ * "extensions": {
1928
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1929
+ * "invalid_params": []
1930
+ * }
1931
+ * }
1932
+ * }
1933
+ */
1934
+ "application/json": components["schemas"]["StandardResponse"];
1935
+ };
1936
+ };
1937
+ /** @description Internal Server Error */
1938
+ 500: {
1939
+ headers: {
1940
+ [name: string]: unknown;
1941
+ };
1942
+ content: {
1943
+ /**
1944
+ * @example {
1945
+ * "status": "error",
1946
+ * "message": "An unexpected error occurred",
1947
+ * "message_code": "SERVER_ERROR",
1948
+ * "metadata": {
1949
+ * "timestamp": "2025-08-05T18:38:57Z",
1950
+ * "requestId": "uuid",
1951
+ * "traceId": "uuid",
1952
+ * "version": "v1",
1953
+ * "executionTime": 0,
1954
+ * "language": "en-US",
1955
+ * "links": [
1956
+ * {
1957
+ * "rel": "self",
1958
+ * "href": "/v1/cart/items",
1959
+ * "method": "POST"
1960
+ * }
1961
+ * ]
1962
+ * },
1963
+ * "error": {
1964
+ * "type": "https://{your-domain}/errors/server-error",
1965
+ * "code": "SERVER_ERROR",
1966
+ * "title": "Server Error",
1967
+ * "status": 500,
1968
+ * "detail": "An unexpected error occurred",
1969
+ * "instance": "/v1/cart/items",
1970
+ * "extensions": {
1971
+ * "message_code": "SERVER_ERROR",
1972
+ * "invalid_params": []
1973
+ * }
1974
+ * }
1975
+ * }
1976
+ */
1977
+ "application/json": components["schemas"]["StandardResponse"];
1978
+ };
1979
+ };
1980
+ };
1981
+ };
1982
+ updateDashboardTemplate: {
1983
+ parameters: {
1984
+ query?: never;
1985
+ header?: {
1986
+ authorization?: string | null;
1987
+ };
1988
+ path: {
1989
+ template_id: string;
1990
+ };
1991
+ cookie?: never;
1992
+ };
1993
+ requestBody: {
1994
+ content: {
1995
+ "application/json": components["schemas"]["TemplateUpdateRequest"];
1996
+ };
1997
+ };
1998
+ responses: {
1999
+ /** @description Successful Response */
2000
+ 200: {
2001
+ headers: {
2002
+ [name: string]: unknown;
2003
+ };
2004
+ content: {
2005
+ "application/json": components["schemas"]["StandardResponse"];
2006
+ };
2007
+ };
2008
+ /** @description Bad Request */
2009
+ 400: {
2010
+ headers: {
2011
+ [name: string]: unknown;
2012
+ };
2013
+ content: {
2014
+ /**
2015
+ * @example {
2016
+ * "status": "error",
2017
+ * "message": "An error occurred",
2018
+ * "message_code": "GENERIC_ERROR",
2019
+ * "metadata": {
2020
+ * "timestamp": "2025-08-05T18:38:57Z",
2021
+ * "requestId": "uuid",
2022
+ * "traceId": "uuid",
2023
+ * "version": "v1",
2024
+ * "executionTime": 0,
2025
+ * "language": "en-US",
2026
+ * "links": [
2027
+ * {
2028
+ * "rel": "self",
2029
+ * "href": "/v1/cart/items",
2030
+ * "method": "POST"
2031
+ * }
2032
+ * ]
2033
+ * },
2034
+ * "error": {
2035
+ * "type": "https://{your-domain}/errors/client-error",
2036
+ * "code": "GENERIC_ERROR",
2037
+ * "title": "Client Error",
2038
+ * "status": 400,
2039
+ * "detail": "An error occurred",
2040
+ * "instance": "/v1/cart/items",
2041
+ * "extensions": {
2042
+ * "message_code": "GENERIC_ERROR",
2043
+ * "invalid_params": []
2044
+ * }
2045
+ * }
2046
+ * }
2047
+ */
2048
+ "application/json": components["schemas"]["StandardResponse"];
2049
+ };
2050
+ };
2051
+ /** @description Unprocessable Entity */
2052
+ 422: {
2053
+ headers: {
2054
+ [name: string]: unknown;
2055
+ };
2056
+ content: {
2057
+ /**
2058
+ * @example {
2059
+ * "status": "error",
2060
+ * "message": "One or more input fields are invalid",
2061
+ * "message_code": "INVALID_INPUT",
2062
+ * "metadata": {
2063
+ * "timestamp": "2025-08-05T18:38:57Z",
2064
+ * "requestId": "uuid",
2065
+ * "traceId": "uuid",
2066
+ * "version": "v1",
2067
+ * "executionTime": 0,
2068
+ * "language": "en-US",
2069
+ * "links": [
2070
+ * {
2071
+ * "rel": "self",
2072
+ * "href": "/v1/cart/items",
2073
+ * "method": "POST"
2074
+ * }
2075
+ * ]
2076
+ * },
2077
+ * "error": {
2078
+ * "type": "https://{your-domain}/errors/invalid-input",
2079
+ * "code": "INVALID_INPUT",
2080
+ * "title": "Invalid Input",
2081
+ * "status": 422,
2082
+ * "detail": "One or more input fields are invalid",
2083
+ * "instance": "/v1/cart/items",
2084
+ * "extensions": {
2085
+ * "message_code": "INVALID_INPUT",
2086
+ * "invalid_params": [
2087
+ * {
2088
+ * "field": "items[0].quantity",
2089
+ * "error": "Input should be greater than or equal to 1"
2090
+ * }
2091
+ * ]
2092
+ * }
2093
+ * }
2094
+ * }
2095
+ */
2096
+ "application/json": components["schemas"]["StandardResponse"];
2097
+ };
2098
+ };
2099
+ /** @description Too Many Requests */
2100
+ 429: {
2101
+ headers: {
2102
+ [name: string]: unknown;
2103
+ };
2104
+ content: {
2105
+ /**
2106
+ * @example {
2107
+ * "status": "error",
2108
+ * "message": "Too many requests",
2109
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2110
+ * "metadata": {
2111
+ * "timestamp": "2025-08-05T18:38:57Z",
2112
+ * "requestId": "uuid",
2113
+ * "traceId": "uuid",
2114
+ * "version": "v1",
2115
+ * "executionTime": 0,
2116
+ * "language": "en-US",
2117
+ * "links": [
2118
+ * {
2119
+ * "rel": "self",
2120
+ * "href": "/v1/cart/items",
2121
+ * "method": "POST"
2122
+ * }
2123
+ * ]
2124
+ * },
2125
+ * "error": {
2126
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
2127
+ * "code": "RATE_LIMIT_EXCEEDED",
2128
+ * "title": "Rate Limit Exceeded",
2129
+ * "status": 429,
2130
+ * "detail": "Too many requests",
2131
+ * "instance": "/v1/cart/items",
2132
+ * "extensions": {
2133
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2134
+ * "invalid_params": []
2135
+ * }
2136
+ * }
2137
+ * }
2138
+ */
2139
+ "application/json": components["schemas"]["StandardResponse"];
2140
+ };
2141
+ };
2142
+ /** @description Internal Server Error */
2143
+ 500: {
2144
+ headers: {
2145
+ [name: string]: unknown;
2146
+ };
2147
+ content: {
2148
+ /**
2149
+ * @example {
2150
+ * "status": "error",
2151
+ * "message": "An unexpected error occurred",
2152
+ * "message_code": "SERVER_ERROR",
2153
+ * "metadata": {
2154
+ * "timestamp": "2025-08-05T18:38:57Z",
2155
+ * "requestId": "uuid",
2156
+ * "traceId": "uuid",
2157
+ * "version": "v1",
2158
+ * "executionTime": 0,
2159
+ * "language": "en-US",
2160
+ * "links": [
2161
+ * {
2162
+ * "rel": "self",
2163
+ * "href": "/v1/cart/items",
2164
+ * "method": "POST"
2165
+ * }
2166
+ * ]
2167
+ * },
2168
+ * "error": {
2169
+ * "type": "https://{your-domain}/errors/server-error",
2170
+ * "code": "SERVER_ERROR",
2171
+ * "title": "Server Error",
2172
+ * "status": 500,
2173
+ * "detail": "An unexpected error occurred",
2174
+ * "instance": "/v1/cart/items",
2175
+ * "extensions": {
2176
+ * "message_code": "SERVER_ERROR",
2177
+ * "invalid_params": []
2178
+ * }
2179
+ * }
2180
+ * }
2181
+ */
2182
+ "application/json": components["schemas"]["StandardResponse"];
2183
+ };
2184
+ };
2185
+ };
2186
+ };
2187
+ listRoleAssignments: {
2188
+ parameters: {
2189
+ query?: never;
2190
+ header?: {
2191
+ authorization?: string | null;
2192
+ };
2193
+ path?: never;
2194
+ cookie?: never;
2195
+ };
2196
+ requestBody?: never;
2197
+ responses: {
2198
+ /** @description Successful Response */
2199
+ 200: {
2200
+ headers: {
2201
+ [name: string]: unknown;
2202
+ };
2203
+ content: {
2204
+ "application/json": components["schemas"]["StandardResponse"];
2205
+ };
2206
+ };
2207
+ /** @description Bad Request */
2208
+ 400: {
2209
+ headers: {
2210
+ [name: string]: unknown;
2211
+ };
2212
+ content: {
2213
+ /**
2214
+ * @example {
2215
+ * "status": "error",
2216
+ * "message": "An error occurred",
2217
+ * "message_code": "GENERIC_ERROR",
2218
+ * "metadata": {
2219
+ * "timestamp": "2025-08-05T18:38:57Z",
2220
+ * "requestId": "uuid",
2221
+ * "traceId": "uuid",
2222
+ * "version": "v1",
2223
+ * "executionTime": 0,
2224
+ * "language": "en-US",
2225
+ * "links": [
2226
+ * {
2227
+ * "rel": "self",
2228
+ * "href": "/v1/cart/items",
2229
+ * "method": "POST"
2230
+ * }
2231
+ * ]
2232
+ * },
2233
+ * "error": {
2234
+ * "type": "https://{your-domain}/errors/client-error",
2235
+ * "code": "GENERIC_ERROR",
2236
+ * "title": "Client Error",
2237
+ * "status": 400,
2238
+ * "detail": "An error occurred",
2239
+ * "instance": "/v1/cart/items",
2240
+ * "extensions": {
2241
+ * "message_code": "GENERIC_ERROR",
2242
+ * "invalid_params": []
2243
+ * }
2244
+ * }
2245
+ * }
2246
+ */
2247
+ "application/json": components["schemas"]["StandardResponse"];
2248
+ };
2249
+ };
2250
+ /** @description Unprocessable Entity */
2251
+ 422: {
2252
+ headers: {
2253
+ [name: string]: unknown;
2254
+ };
2255
+ content: {
2256
+ /**
2257
+ * @example {
2258
+ * "status": "error",
2259
+ * "message": "One or more input fields are invalid",
2260
+ * "message_code": "INVALID_INPUT",
2261
+ * "metadata": {
2262
+ * "timestamp": "2025-08-05T18:38:57Z",
2263
+ * "requestId": "uuid",
2264
+ * "traceId": "uuid",
2265
+ * "version": "v1",
2266
+ * "executionTime": 0,
2267
+ * "language": "en-US",
2268
+ * "links": [
2269
+ * {
2270
+ * "rel": "self",
2271
+ * "href": "/v1/cart/items",
2272
+ * "method": "POST"
2273
+ * }
2274
+ * ]
2275
+ * },
2276
+ * "error": {
2277
+ * "type": "https://{your-domain}/errors/invalid-input",
2278
+ * "code": "INVALID_INPUT",
2279
+ * "title": "Invalid Input",
2280
+ * "status": 422,
2281
+ * "detail": "One or more input fields are invalid",
2282
+ * "instance": "/v1/cart/items",
2283
+ * "extensions": {
2284
+ * "message_code": "INVALID_INPUT",
2285
+ * "invalid_params": [
2286
+ * {
2287
+ * "field": "items[0].quantity",
2288
+ * "error": "Input should be greater than or equal to 1"
2289
+ * }
2290
+ * ]
2291
+ * }
2292
+ * }
2293
+ * }
2294
+ */
2295
+ "application/json": components["schemas"]["StandardResponse"];
2296
+ };
2297
+ };
2298
+ /** @description Too Many Requests */
2299
+ 429: {
2300
+ headers: {
2301
+ [name: string]: unknown;
2302
+ };
2303
+ content: {
2304
+ /**
2305
+ * @example {
2306
+ * "status": "error",
2307
+ * "message": "Too many requests",
2308
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2309
+ * "metadata": {
2310
+ * "timestamp": "2025-08-05T18:38:57Z",
2311
+ * "requestId": "uuid",
2312
+ * "traceId": "uuid",
2313
+ * "version": "v1",
2314
+ * "executionTime": 0,
2315
+ * "language": "en-US",
2316
+ * "links": [
2317
+ * {
2318
+ * "rel": "self",
2319
+ * "href": "/v1/cart/items",
2320
+ * "method": "POST"
2321
+ * }
2322
+ * ]
2323
+ * },
2324
+ * "error": {
2325
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
2326
+ * "code": "RATE_LIMIT_EXCEEDED",
2327
+ * "title": "Rate Limit Exceeded",
2328
+ * "status": 429,
2329
+ * "detail": "Too many requests",
2330
+ * "instance": "/v1/cart/items",
2331
+ * "extensions": {
2332
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2333
+ * "invalid_params": []
2334
+ * }
2335
+ * }
2336
+ * }
2337
+ */
2338
+ "application/json": components["schemas"]["StandardResponse"];
2339
+ };
2340
+ };
2341
+ /** @description Internal Server Error */
2342
+ 500: {
2343
+ headers: {
2344
+ [name: string]: unknown;
2345
+ };
2346
+ content: {
2347
+ /**
2348
+ * @example {
2349
+ * "status": "error",
2350
+ * "message": "An unexpected error occurred",
2351
+ * "message_code": "SERVER_ERROR",
2352
+ * "metadata": {
2353
+ * "timestamp": "2025-08-05T18:38:57Z",
2354
+ * "requestId": "uuid",
2355
+ * "traceId": "uuid",
2356
+ * "version": "v1",
2357
+ * "executionTime": 0,
2358
+ * "language": "en-US",
2359
+ * "links": [
2360
+ * {
2361
+ * "rel": "self",
2362
+ * "href": "/v1/cart/items",
2363
+ * "method": "POST"
2364
+ * }
2365
+ * ]
2366
+ * },
2367
+ * "error": {
2368
+ * "type": "https://{your-domain}/errors/server-error",
2369
+ * "code": "SERVER_ERROR",
2370
+ * "title": "Server Error",
2371
+ * "status": 500,
2372
+ * "detail": "An unexpected error occurred",
2373
+ * "instance": "/v1/cart/items",
2374
+ * "extensions": {
2375
+ * "message_code": "SERVER_ERROR",
2376
+ * "invalid_params": []
2377
+ * }
2378
+ * }
2379
+ * }
2380
+ */
2381
+ "application/json": components["schemas"]["StandardResponse"];
2382
+ };
2383
+ };
2384
+ };
2385
+ };
2386
+ createDashboardRoleAssignment: {
2387
+ parameters: {
2388
+ query?: never;
2389
+ header?: {
2390
+ authorization?: string | null;
2391
+ };
2392
+ path?: never;
2393
+ cookie?: never;
2394
+ };
2395
+ requestBody: {
2396
+ content: {
2397
+ "application/json": components["schemas"]["RoleAssignmentRequest"];
2398
+ };
2399
+ };
2400
+ responses: {
2401
+ /** @description Successful Response */
2402
+ 201: {
2403
+ headers: {
2404
+ [name: string]: unknown;
2405
+ };
2406
+ content: {
2407
+ "application/json": components["schemas"]["StandardResponse"];
2408
+ };
2409
+ };
2410
+ /** @description Bad Request */
2411
+ 400: {
2412
+ headers: {
2413
+ [name: string]: unknown;
2414
+ };
2415
+ content: {
2416
+ /**
2417
+ * @example {
2418
+ * "status": "error",
2419
+ * "message": "An error occurred",
2420
+ * "message_code": "GENERIC_ERROR",
2421
+ * "metadata": {
2422
+ * "timestamp": "2025-08-05T18:38:57Z",
2423
+ * "requestId": "uuid",
2424
+ * "traceId": "uuid",
2425
+ * "version": "v1",
2426
+ * "executionTime": 0,
2427
+ * "language": "en-US",
2428
+ * "links": [
2429
+ * {
2430
+ * "rel": "self",
2431
+ * "href": "/v1/cart/items",
2432
+ * "method": "POST"
2433
+ * }
2434
+ * ]
2435
+ * },
2436
+ * "error": {
2437
+ * "type": "https://{your-domain}/errors/client-error",
2438
+ * "code": "GENERIC_ERROR",
2439
+ * "title": "Client Error",
2440
+ * "status": 400,
2441
+ * "detail": "An error occurred",
2442
+ * "instance": "/v1/cart/items",
2443
+ * "extensions": {
2444
+ * "message_code": "GENERIC_ERROR",
2445
+ * "invalid_params": []
2446
+ * }
2447
+ * }
2448
+ * }
2449
+ */
2450
+ "application/json": components["schemas"]["StandardResponse"];
2451
+ };
2452
+ };
2453
+ /** @description Unprocessable Entity */
2454
+ 422: {
2455
+ headers: {
2456
+ [name: string]: unknown;
2457
+ };
2458
+ content: {
2459
+ /**
2460
+ * @example {
2461
+ * "status": "error",
2462
+ * "message": "One or more input fields are invalid",
2463
+ * "message_code": "INVALID_INPUT",
2464
+ * "metadata": {
2465
+ * "timestamp": "2025-08-05T18:38:57Z",
2466
+ * "requestId": "uuid",
2467
+ * "traceId": "uuid",
2468
+ * "version": "v1",
2469
+ * "executionTime": 0,
2470
+ * "language": "en-US",
2471
+ * "links": [
2472
+ * {
2473
+ * "rel": "self",
2474
+ * "href": "/v1/cart/items",
2475
+ * "method": "POST"
2476
+ * }
2477
+ * ]
2478
+ * },
2479
+ * "error": {
2480
+ * "type": "https://{your-domain}/errors/invalid-input",
2481
+ * "code": "INVALID_INPUT",
2482
+ * "title": "Invalid Input",
2483
+ * "status": 422,
2484
+ * "detail": "One or more input fields are invalid",
2485
+ * "instance": "/v1/cart/items",
2486
+ * "extensions": {
2487
+ * "message_code": "INVALID_INPUT",
2488
+ * "invalid_params": [
2489
+ * {
2490
+ * "field": "items[0].quantity",
2491
+ * "error": "Input should be greater than or equal to 1"
2492
+ * }
2493
+ * ]
2494
+ * }
2495
+ * }
2496
+ * }
2497
+ */
2498
+ "application/json": components["schemas"]["StandardResponse"];
2499
+ };
2500
+ };
2501
+ /** @description Too Many Requests */
2502
+ 429: {
2503
+ headers: {
2504
+ [name: string]: unknown;
2505
+ };
2506
+ content: {
2507
+ /**
2508
+ * @example {
2509
+ * "status": "error",
2510
+ * "message": "Too many requests",
2511
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2512
+ * "metadata": {
2513
+ * "timestamp": "2025-08-05T18:38:57Z",
2514
+ * "requestId": "uuid",
2515
+ * "traceId": "uuid",
2516
+ * "version": "v1",
2517
+ * "executionTime": 0,
2518
+ * "language": "en-US",
2519
+ * "links": [
2520
+ * {
2521
+ * "rel": "self",
2522
+ * "href": "/v1/cart/items",
2523
+ * "method": "POST"
2524
+ * }
2525
+ * ]
2526
+ * },
2527
+ * "error": {
2528
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
2529
+ * "code": "RATE_LIMIT_EXCEEDED",
2530
+ * "title": "Rate Limit Exceeded",
2531
+ * "status": 429,
2532
+ * "detail": "Too many requests",
2533
+ * "instance": "/v1/cart/items",
2534
+ * "extensions": {
2535
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2536
+ * "invalid_params": []
2537
+ * }
2538
+ * }
2539
+ * }
2540
+ */
2541
+ "application/json": components["schemas"]["StandardResponse"];
2542
+ };
2543
+ };
2544
+ /** @description Internal Server Error */
2545
+ 500: {
2546
+ headers: {
2547
+ [name: string]: unknown;
2548
+ };
2549
+ content: {
2550
+ /**
2551
+ * @example {
2552
+ * "status": "error",
2553
+ * "message": "An unexpected error occurred",
2554
+ * "message_code": "SERVER_ERROR",
2555
+ * "metadata": {
2556
+ * "timestamp": "2025-08-05T18:38:57Z",
2557
+ * "requestId": "uuid",
2558
+ * "traceId": "uuid",
2559
+ * "version": "v1",
2560
+ * "executionTime": 0,
2561
+ * "language": "en-US",
2562
+ * "links": [
2563
+ * {
2564
+ * "rel": "self",
2565
+ * "href": "/v1/cart/items",
2566
+ * "method": "POST"
2567
+ * }
2568
+ * ]
2569
+ * },
2570
+ * "error": {
2571
+ * "type": "https://{your-domain}/errors/server-error",
2572
+ * "code": "SERVER_ERROR",
2573
+ * "title": "Server Error",
2574
+ * "status": 500,
2575
+ * "detail": "An unexpected error occurred",
2576
+ * "instance": "/v1/cart/items",
2577
+ * "extensions": {
2578
+ * "message_code": "SERVER_ERROR",
2579
+ * "invalid_params": []
2580
+ * }
2581
+ * }
2582
+ * }
2583
+ */
2584
+ "application/json": components["schemas"]["StandardResponse"];
2585
+ };
2586
+ };
2587
+ };
2588
+ };
2589
+ deleteRoleAssignment: {
2590
+ parameters: {
2591
+ query?: never;
2592
+ header?: {
2593
+ authorization?: string | null;
2594
+ };
2595
+ path: {
2596
+ assignment_id: number;
2597
+ };
2598
+ cookie?: never;
2599
+ };
2600
+ requestBody?: never;
2601
+ responses: {
2602
+ /** @description Successful Response */
2603
+ 200: {
2604
+ headers: {
2605
+ [name: string]: unknown;
2606
+ };
2607
+ content: {
2608
+ "application/json": components["schemas"]["StandardResponse"];
2609
+ };
2610
+ };
2611
+ /** @description Bad Request */
2612
+ 400: {
2613
+ headers: {
2614
+ [name: string]: unknown;
2615
+ };
2616
+ content: {
2617
+ /**
2618
+ * @example {
2619
+ * "status": "error",
2620
+ * "message": "An error occurred",
2621
+ * "message_code": "GENERIC_ERROR",
2622
+ * "metadata": {
2623
+ * "timestamp": "2025-08-05T18:38:57Z",
2624
+ * "requestId": "uuid",
2625
+ * "traceId": "uuid",
2626
+ * "version": "v1",
2627
+ * "executionTime": 0,
2628
+ * "language": "en-US",
2629
+ * "links": [
2630
+ * {
2631
+ * "rel": "self",
2632
+ * "href": "/v1/cart/items",
2633
+ * "method": "POST"
2634
+ * }
2635
+ * ]
2636
+ * },
2637
+ * "error": {
2638
+ * "type": "https://{your-domain}/errors/client-error",
2639
+ * "code": "GENERIC_ERROR",
2640
+ * "title": "Client Error",
2641
+ * "status": 400,
2642
+ * "detail": "An error occurred",
2643
+ * "instance": "/v1/cart/items",
2644
+ * "extensions": {
2645
+ * "message_code": "GENERIC_ERROR",
2646
+ * "invalid_params": []
2647
+ * }
2648
+ * }
2649
+ * }
2650
+ */
2651
+ "application/json": components["schemas"]["StandardResponse"];
2652
+ };
2653
+ };
2654
+ /** @description Unprocessable Entity */
2655
+ 422: {
2656
+ headers: {
2657
+ [name: string]: unknown;
2658
+ };
2659
+ content: {
2660
+ /**
2661
+ * @example {
2662
+ * "status": "error",
2663
+ * "message": "One or more input fields are invalid",
2664
+ * "message_code": "INVALID_INPUT",
2665
+ * "metadata": {
2666
+ * "timestamp": "2025-08-05T18:38:57Z",
2667
+ * "requestId": "uuid",
2668
+ * "traceId": "uuid",
2669
+ * "version": "v1",
2670
+ * "executionTime": 0,
2671
+ * "language": "en-US",
2672
+ * "links": [
2673
+ * {
2674
+ * "rel": "self",
2675
+ * "href": "/v1/cart/items",
2676
+ * "method": "POST"
2677
+ * }
2678
+ * ]
2679
+ * },
2680
+ * "error": {
2681
+ * "type": "https://{your-domain}/errors/invalid-input",
2682
+ * "code": "INVALID_INPUT",
2683
+ * "title": "Invalid Input",
2684
+ * "status": 422,
2685
+ * "detail": "One or more input fields are invalid",
2686
+ * "instance": "/v1/cart/items",
2687
+ * "extensions": {
2688
+ * "message_code": "INVALID_INPUT",
2689
+ * "invalid_params": [
2690
+ * {
2691
+ * "field": "items[0].quantity",
2692
+ * "error": "Input should be greater than or equal to 1"
2693
+ * }
2694
+ * ]
2695
+ * }
2696
+ * }
2697
+ * }
2698
+ */
2699
+ "application/json": components["schemas"]["StandardResponse"];
2700
+ };
2701
+ };
2702
+ /** @description Too Many Requests */
2703
+ 429: {
2704
+ headers: {
2705
+ [name: string]: unknown;
2706
+ };
2707
+ content: {
2708
+ /**
2709
+ * @example {
2710
+ * "status": "error",
2711
+ * "message": "Too many requests",
2712
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2713
+ * "metadata": {
2714
+ * "timestamp": "2025-08-05T18:38:57Z",
2715
+ * "requestId": "uuid",
2716
+ * "traceId": "uuid",
2717
+ * "version": "v1",
2718
+ * "executionTime": 0,
2719
+ * "language": "en-US",
2720
+ * "links": [
2721
+ * {
2722
+ * "rel": "self",
2723
+ * "href": "/v1/cart/items",
2724
+ * "method": "POST"
2725
+ * }
2726
+ * ]
2727
+ * },
2728
+ * "error": {
2729
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
2730
+ * "code": "RATE_LIMIT_EXCEEDED",
2731
+ * "title": "Rate Limit Exceeded",
2732
+ * "status": 429,
2733
+ * "detail": "Too many requests",
2734
+ * "instance": "/v1/cart/items",
2735
+ * "extensions": {
2736
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2737
+ * "invalid_params": []
2738
+ * }
2739
+ * }
2740
+ * }
2741
+ */
2742
+ "application/json": components["schemas"]["StandardResponse"];
2743
+ };
2744
+ };
2745
+ /** @description Internal Server Error */
2746
+ 500: {
2747
+ headers: {
2748
+ [name: string]: unknown;
2749
+ };
2750
+ content: {
2751
+ /**
2752
+ * @example {
2753
+ * "status": "error",
2754
+ * "message": "An unexpected error occurred",
2755
+ * "message_code": "SERVER_ERROR",
2756
+ * "metadata": {
2757
+ * "timestamp": "2025-08-05T18:38:57Z",
2758
+ * "requestId": "uuid",
2759
+ * "traceId": "uuid",
2760
+ * "version": "v1",
2761
+ * "executionTime": 0,
2762
+ * "language": "en-US",
2763
+ * "links": [
2764
+ * {
2765
+ * "rel": "self",
2766
+ * "href": "/v1/cart/items",
2767
+ * "method": "POST"
2768
+ * }
2769
+ * ]
2770
+ * },
2771
+ * "error": {
2772
+ * "type": "https://{your-domain}/errors/server-error",
2773
+ * "code": "SERVER_ERROR",
2774
+ * "title": "Server Error",
2775
+ * "status": 500,
2776
+ * "detail": "An unexpected error occurred",
2777
+ * "instance": "/v1/cart/items",
2778
+ * "extensions": {
2779
+ * "message_code": "SERVER_ERROR",
2780
+ * "invalid_params": []
2781
+ * }
2782
+ * }
2783
+ * }
2784
+ */
2785
+ "application/json": components["schemas"]["StandardResponse"];
2786
+ };
2787
+ };
2788
+ };
2789
+ };
2790
+ listAvailableWidgets: {
2791
+ parameters: {
2792
+ query?: never;
2793
+ header?: {
2794
+ authorization?: string | null;
2795
+ };
2796
+ path?: never;
2797
+ cookie?: never;
2798
+ };
2799
+ requestBody?: never;
2800
+ responses: {
2801
+ /** @description Successful Response */
2802
+ 200: {
2803
+ headers: {
2804
+ [name: string]: unknown;
2805
+ };
2806
+ content: {
2807
+ "application/json": components["schemas"]["StandardResponse"];
2808
+ };
2809
+ };
2810
+ /** @description Bad Request */
2811
+ 400: {
2812
+ headers: {
2813
+ [name: string]: unknown;
2814
+ };
2815
+ content: {
2816
+ /**
2817
+ * @example {
2818
+ * "status": "error",
2819
+ * "message": "An error occurred",
2820
+ * "message_code": "GENERIC_ERROR",
2821
+ * "metadata": {
2822
+ * "timestamp": "2025-08-05T18:38:57Z",
2823
+ * "requestId": "uuid",
2824
+ * "traceId": "uuid",
2825
+ * "version": "v1",
2826
+ * "executionTime": 0,
2827
+ * "language": "en-US",
2828
+ * "links": [
2829
+ * {
2830
+ * "rel": "self",
2831
+ * "href": "/v1/cart/items",
2832
+ * "method": "POST"
2833
+ * }
2834
+ * ]
2835
+ * },
2836
+ * "error": {
2837
+ * "type": "https://{your-domain}/errors/client-error",
2838
+ * "code": "GENERIC_ERROR",
2839
+ * "title": "Client Error",
2840
+ * "status": 400,
2841
+ * "detail": "An error occurred",
2842
+ * "instance": "/v1/cart/items",
2843
+ * "extensions": {
2844
+ * "message_code": "GENERIC_ERROR",
2845
+ * "invalid_params": []
2846
+ * }
2847
+ * }
2848
+ * }
2849
+ */
2850
+ "application/json": components["schemas"]["StandardResponse"];
2851
+ };
2852
+ };
2853
+ /** @description Unprocessable Entity */
2854
+ 422: {
2855
+ headers: {
2856
+ [name: string]: unknown;
2857
+ };
2858
+ content: {
2859
+ /**
2860
+ * @example {
2861
+ * "status": "error",
2862
+ * "message": "One or more input fields are invalid",
2863
+ * "message_code": "INVALID_INPUT",
2864
+ * "metadata": {
2865
+ * "timestamp": "2025-08-05T18:38:57Z",
2866
+ * "requestId": "uuid",
2867
+ * "traceId": "uuid",
2868
+ * "version": "v1",
2869
+ * "executionTime": 0,
2870
+ * "language": "en-US",
2871
+ * "links": [
2872
+ * {
2873
+ * "rel": "self",
2874
+ * "href": "/v1/cart/items",
2875
+ * "method": "POST"
2876
+ * }
2877
+ * ]
2878
+ * },
2879
+ * "error": {
2880
+ * "type": "https://{your-domain}/errors/invalid-input",
2881
+ * "code": "INVALID_INPUT",
2882
+ * "title": "Invalid Input",
2883
+ * "status": 422,
2884
+ * "detail": "One or more input fields are invalid",
2885
+ * "instance": "/v1/cart/items",
2886
+ * "extensions": {
2887
+ * "message_code": "INVALID_INPUT",
2888
+ * "invalid_params": [
2889
+ * {
2890
+ * "field": "items[0].quantity",
2891
+ * "error": "Input should be greater than or equal to 1"
2892
+ * }
2893
+ * ]
2894
+ * }
2895
+ * }
2896
+ * }
2897
+ */
2898
+ "application/json": components["schemas"]["StandardResponse"];
2899
+ };
2900
+ };
2901
+ /** @description Too Many Requests */
2902
+ 429: {
2903
+ headers: {
2904
+ [name: string]: unknown;
2905
+ };
2906
+ content: {
2907
+ /**
2908
+ * @example {
2909
+ * "status": "error",
2910
+ * "message": "Too many requests",
2911
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2912
+ * "metadata": {
2913
+ * "timestamp": "2025-08-05T18:38:57Z",
2914
+ * "requestId": "uuid",
2915
+ * "traceId": "uuid",
2916
+ * "version": "v1",
2917
+ * "executionTime": 0,
2918
+ * "language": "en-US",
2919
+ * "links": [
2920
+ * {
2921
+ * "rel": "self",
2922
+ * "href": "/v1/cart/items",
2923
+ * "method": "POST"
2924
+ * }
2925
+ * ]
2926
+ * },
2927
+ * "error": {
2928
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
2929
+ * "code": "RATE_LIMIT_EXCEEDED",
2930
+ * "title": "Rate Limit Exceeded",
2931
+ * "status": 429,
2932
+ * "detail": "Too many requests",
2933
+ * "instance": "/v1/cart/items",
2934
+ * "extensions": {
2935
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2936
+ * "invalid_params": []
2937
+ * }
2938
+ * }
2939
+ * }
2940
+ */
2941
+ "application/json": components["schemas"]["StandardResponse"];
2942
+ };
2943
+ };
2944
+ /** @description Internal Server Error */
2945
+ 500: {
2946
+ headers: {
2947
+ [name: string]: unknown;
2948
+ };
2949
+ content: {
2950
+ /**
2951
+ * @example {
2952
+ * "status": "error",
2953
+ * "message": "An unexpected error occurred",
2954
+ * "message_code": "SERVER_ERROR",
2955
+ * "metadata": {
2956
+ * "timestamp": "2025-08-05T18:38:57Z",
2957
+ * "requestId": "uuid",
2958
+ * "traceId": "uuid",
2959
+ * "version": "v1",
2960
+ * "executionTime": 0,
2961
+ * "language": "en-US",
2962
+ * "links": [
2963
+ * {
2964
+ * "rel": "self",
2965
+ * "href": "/v1/cart/items",
2966
+ * "method": "POST"
2967
+ * }
2968
+ * ]
2969
+ * },
2970
+ * "error": {
2971
+ * "type": "https://{your-domain}/errors/server-error",
2972
+ * "code": "SERVER_ERROR",
2973
+ * "title": "Server Error",
2974
+ * "status": 500,
2975
+ * "detail": "An unexpected error occurred",
2976
+ * "instance": "/v1/cart/items",
2977
+ * "extensions": {
2978
+ * "message_code": "SERVER_ERROR",
2979
+ * "invalid_params": []
2980
+ * }
2981
+ * }
2982
+ * }
2983
+ */
2984
+ "application/json": components["schemas"]["StandardResponse"];
2985
+ };
2986
+ };
2987
+ };
2988
+ };
2989
+ createCustomWidget: {
2990
+ parameters: {
2991
+ query?: never;
2992
+ header?: {
2993
+ authorization?: string | null;
2994
+ };
2995
+ path?: never;
2996
+ cookie?: never;
2997
+ };
2998
+ requestBody: {
2999
+ content: {
3000
+ "application/json": components["schemas"]["WidgetCreateRequest"];
3001
+ };
3002
+ };
3003
+ responses: {
3004
+ /** @description Successful Response */
3005
+ 201: {
3006
+ headers: {
3007
+ [name: string]: unknown;
3008
+ };
3009
+ content: {
3010
+ "application/json": components["schemas"]["StandardResponse"];
3011
+ };
3012
+ };
3013
+ /** @description Bad Request */
3014
+ 400: {
3015
+ headers: {
3016
+ [name: string]: unknown;
3017
+ };
3018
+ content: {
3019
+ /**
3020
+ * @example {
3021
+ * "status": "error",
3022
+ * "message": "An error occurred",
3023
+ * "message_code": "GENERIC_ERROR",
3024
+ * "metadata": {
3025
+ * "timestamp": "2025-08-05T18:38:57Z",
3026
+ * "requestId": "uuid",
3027
+ * "traceId": "uuid",
3028
+ * "version": "v1",
3029
+ * "executionTime": 0,
3030
+ * "language": "en-US",
3031
+ * "links": [
3032
+ * {
3033
+ * "rel": "self",
3034
+ * "href": "/v1/cart/items",
3035
+ * "method": "POST"
3036
+ * }
3037
+ * ]
3038
+ * },
3039
+ * "error": {
3040
+ * "type": "https://{your-domain}/errors/client-error",
3041
+ * "code": "GENERIC_ERROR",
3042
+ * "title": "Client Error",
3043
+ * "status": 400,
3044
+ * "detail": "An error occurred",
3045
+ * "instance": "/v1/cart/items",
3046
+ * "extensions": {
3047
+ * "message_code": "GENERIC_ERROR",
3048
+ * "invalid_params": []
3049
+ * }
3050
+ * }
3051
+ * }
3052
+ */
3053
+ "application/json": components["schemas"]["StandardResponse"];
3054
+ };
3055
+ };
3056
+ /** @description Unprocessable Entity */
3057
+ 422: {
3058
+ headers: {
3059
+ [name: string]: unknown;
3060
+ };
3061
+ content: {
3062
+ /**
3063
+ * @example {
3064
+ * "status": "error",
3065
+ * "message": "One or more input fields are invalid",
3066
+ * "message_code": "INVALID_INPUT",
3067
+ * "metadata": {
3068
+ * "timestamp": "2025-08-05T18:38:57Z",
3069
+ * "requestId": "uuid",
3070
+ * "traceId": "uuid",
3071
+ * "version": "v1",
3072
+ * "executionTime": 0,
3073
+ * "language": "en-US",
3074
+ * "links": [
3075
+ * {
3076
+ * "rel": "self",
3077
+ * "href": "/v1/cart/items",
3078
+ * "method": "POST"
3079
+ * }
3080
+ * ]
3081
+ * },
3082
+ * "error": {
3083
+ * "type": "https://{your-domain}/errors/invalid-input",
3084
+ * "code": "INVALID_INPUT",
3085
+ * "title": "Invalid Input",
3086
+ * "status": 422,
3087
+ * "detail": "One or more input fields are invalid",
3088
+ * "instance": "/v1/cart/items",
3089
+ * "extensions": {
3090
+ * "message_code": "INVALID_INPUT",
3091
+ * "invalid_params": [
3092
+ * {
3093
+ * "field": "items[0].quantity",
3094
+ * "error": "Input should be greater than or equal to 1"
3095
+ * }
3096
+ * ]
3097
+ * }
3098
+ * }
3099
+ * }
3100
+ */
3101
+ "application/json": components["schemas"]["StandardResponse"];
3102
+ };
3103
+ };
3104
+ /** @description Too Many Requests */
3105
+ 429: {
3106
+ headers: {
3107
+ [name: string]: unknown;
3108
+ };
3109
+ content: {
3110
+ /**
3111
+ * @example {
3112
+ * "status": "error",
3113
+ * "message": "Too many requests",
3114
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3115
+ * "metadata": {
3116
+ * "timestamp": "2025-08-05T18:38:57Z",
3117
+ * "requestId": "uuid",
3118
+ * "traceId": "uuid",
3119
+ * "version": "v1",
3120
+ * "executionTime": 0,
3121
+ * "language": "en-US",
3122
+ * "links": [
3123
+ * {
3124
+ * "rel": "self",
3125
+ * "href": "/v1/cart/items",
3126
+ * "method": "POST"
3127
+ * }
3128
+ * ]
3129
+ * },
3130
+ * "error": {
3131
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
3132
+ * "code": "RATE_LIMIT_EXCEEDED",
3133
+ * "title": "Rate Limit Exceeded",
3134
+ * "status": 429,
3135
+ * "detail": "Too many requests",
3136
+ * "instance": "/v1/cart/items",
3137
+ * "extensions": {
3138
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3139
+ * "invalid_params": []
3140
+ * }
3141
+ * }
3142
+ * }
3143
+ */
3144
+ "application/json": components["schemas"]["StandardResponse"];
3145
+ };
3146
+ };
3147
+ /** @description Internal Server Error */
3148
+ 500: {
3149
+ headers: {
3150
+ [name: string]: unknown;
3151
+ };
3152
+ content: {
3153
+ /**
3154
+ * @example {
3155
+ * "status": "error",
3156
+ * "message": "An unexpected error occurred",
3157
+ * "message_code": "SERVER_ERROR",
3158
+ * "metadata": {
3159
+ * "timestamp": "2025-08-05T18:38:57Z",
3160
+ * "requestId": "uuid",
3161
+ * "traceId": "uuid",
3162
+ * "version": "v1",
3163
+ * "executionTime": 0,
3164
+ * "language": "en-US",
3165
+ * "links": [
3166
+ * {
3167
+ * "rel": "self",
3168
+ * "href": "/v1/cart/items",
3169
+ * "method": "POST"
3170
+ * }
3171
+ * ]
3172
+ * },
3173
+ * "error": {
3174
+ * "type": "https://{your-domain}/errors/server-error",
3175
+ * "code": "SERVER_ERROR",
3176
+ * "title": "Server Error",
3177
+ * "status": 500,
3178
+ * "detail": "An unexpected error occurred",
3179
+ * "instance": "/v1/cart/items",
3180
+ * "extensions": {
3181
+ * "message_code": "SERVER_ERROR",
3182
+ * "invalid_params": []
3183
+ * }
3184
+ * }
3185
+ * }
3186
+ */
3187
+ "application/json": components["schemas"]["StandardResponse"];
3188
+ };
3189
+ };
3190
+ };
3191
+ };
3192
+ deleteCustomWidget: {
3193
+ parameters: {
3194
+ query?: never;
3195
+ header?: {
3196
+ authorization?: string | null;
3197
+ };
3198
+ path: {
3199
+ widget_id: string;
3200
+ };
3201
+ cookie?: never;
3202
+ };
3203
+ requestBody?: never;
3204
+ responses: {
3205
+ /** @description Successful Response */
3206
+ 200: {
3207
+ headers: {
3208
+ [name: string]: unknown;
3209
+ };
3210
+ content: {
3211
+ "application/json": components["schemas"]["StandardResponse"];
3212
+ };
3213
+ };
3214
+ /** @description Bad Request */
3215
+ 400: {
3216
+ headers: {
3217
+ [name: string]: unknown;
3218
+ };
3219
+ content: {
3220
+ /**
3221
+ * @example {
3222
+ * "status": "error",
3223
+ * "message": "An error occurred",
3224
+ * "message_code": "GENERIC_ERROR",
3225
+ * "metadata": {
3226
+ * "timestamp": "2025-08-05T18:38:57Z",
3227
+ * "requestId": "uuid",
3228
+ * "traceId": "uuid",
3229
+ * "version": "v1",
3230
+ * "executionTime": 0,
3231
+ * "language": "en-US",
3232
+ * "links": [
3233
+ * {
3234
+ * "rel": "self",
3235
+ * "href": "/v1/cart/items",
3236
+ * "method": "POST"
3237
+ * }
3238
+ * ]
3239
+ * },
3240
+ * "error": {
3241
+ * "type": "https://{your-domain}/errors/client-error",
3242
+ * "code": "GENERIC_ERROR",
3243
+ * "title": "Client Error",
3244
+ * "status": 400,
3245
+ * "detail": "An error occurred",
3246
+ * "instance": "/v1/cart/items",
3247
+ * "extensions": {
3248
+ * "message_code": "GENERIC_ERROR",
3249
+ * "invalid_params": []
3250
+ * }
3251
+ * }
3252
+ * }
3253
+ */
3254
+ "application/json": components["schemas"]["StandardResponse"];
3255
+ };
3256
+ };
3257
+ /** @description Unprocessable Entity */
3258
+ 422: {
3259
+ headers: {
3260
+ [name: string]: unknown;
3261
+ };
3262
+ content: {
3263
+ /**
3264
+ * @example {
3265
+ * "status": "error",
3266
+ * "message": "One or more input fields are invalid",
3267
+ * "message_code": "INVALID_INPUT",
3268
+ * "metadata": {
3269
+ * "timestamp": "2025-08-05T18:38:57Z",
3270
+ * "requestId": "uuid",
3271
+ * "traceId": "uuid",
3272
+ * "version": "v1",
3273
+ * "executionTime": 0,
3274
+ * "language": "en-US",
3275
+ * "links": [
3276
+ * {
3277
+ * "rel": "self",
3278
+ * "href": "/v1/cart/items",
3279
+ * "method": "POST"
3280
+ * }
3281
+ * ]
3282
+ * },
3283
+ * "error": {
3284
+ * "type": "https://{your-domain}/errors/invalid-input",
3285
+ * "code": "INVALID_INPUT",
3286
+ * "title": "Invalid Input",
3287
+ * "status": 422,
3288
+ * "detail": "One or more input fields are invalid",
3289
+ * "instance": "/v1/cart/items",
3290
+ * "extensions": {
3291
+ * "message_code": "INVALID_INPUT",
3292
+ * "invalid_params": [
3293
+ * {
3294
+ * "field": "items[0].quantity",
3295
+ * "error": "Input should be greater than or equal to 1"
3296
+ * }
3297
+ * ]
3298
+ * }
3299
+ * }
3300
+ * }
3301
+ */
3302
+ "application/json": components["schemas"]["StandardResponse"];
3303
+ };
3304
+ };
3305
+ /** @description Too Many Requests */
3306
+ 429: {
3307
+ headers: {
3308
+ [name: string]: unknown;
3309
+ };
3310
+ content: {
3311
+ /**
3312
+ * @example {
3313
+ * "status": "error",
3314
+ * "message": "Too many requests",
3315
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3316
+ * "metadata": {
3317
+ * "timestamp": "2025-08-05T18:38:57Z",
3318
+ * "requestId": "uuid",
3319
+ * "traceId": "uuid",
3320
+ * "version": "v1",
3321
+ * "executionTime": 0,
3322
+ * "language": "en-US",
3323
+ * "links": [
3324
+ * {
3325
+ * "rel": "self",
3326
+ * "href": "/v1/cart/items",
3327
+ * "method": "POST"
3328
+ * }
3329
+ * ]
3330
+ * },
3331
+ * "error": {
3332
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
3333
+ * "code": "RATE_LIMIT_EXCEEDED",
3334
+ * "title": "Rate Limit Exceeded",
3335
+ * "status": 429,
3336
+ * "detail": "Too many requests",
3337
+ * "instance": "/v1/cart/items",
3338
+ * "extensions": {
3339
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3340
+ * "invalid_params": []
3341
+ * }
3342
+ * }
3343
+ * }
3344
+ */
3345
+ "application/json": components["schemas"]["StandardResponse"];
3346
+ };
3347
+ };
3348
+ /** @description Internal Server Error */
3349
+ 500: {
3350
+ headers: {
3351
+ [name: string]: unknown;
3352
+ };
3353
+ content: {
3354
+ /**
3355
+ * @example {
3356
+ * "status": "error",
3357
+ * "message": "An unexpected error occurred",
3358
+ * "message_code": "SERVER_ERROR",
3359
+ * "metadata": {
3360
+ * "timestamp": "2025-08-05T18:38:57Z",
3361
+ * "requestId": "uuid",
3362
+ * "traceId": "uuid",
3363
+ * "version": "v1",
3364
+ * "executionTime": 0,
3365
+ * "language": "en-US",
3366
+ * "links": [
3367
+ * {
3368
+ * "rel": "self",
3369
+ * "href": "/v1/cart/items",
3370
+ * "method": "POST"
3371
+ * }
3372
+ * ]
3373
+ * },
3374
+ * "error": {
3375
+ * "type": "https://{your-domain}/errors/server-error",
3376
+ * "code": "SERVER_ERROR",
3377
+ * "title": "Server Error",
3378
+ * "status": 500,
3379
+ * "detail": "An unexpected error occurred",
3380
+ * "instance": "/v1/cart/items",
3381
+ * "extensions": {
3382
+ * "message_code": "SERVER_ERROR",
3383
+ * "invalid_params": []
3384
+ * }
3385
+ * }
3386
+ * }
3387
+ */
3388
+ "application/json": components["schemas"]["StandardResponse"];
3389
+ };
3390
+ };
3391
+ };
3392
+ };
3393
+ updateCustomWidget: {
3394
+ parameters: {
3395
+ query?: never;
3396
+ header?: {
3397
+ authorization?: string | null;
3398
+ };
3399
+ path: {
3400
+ widget_id: string;
3401
+ };
3402
+ cookie?: never;
3403
+ };
3404
+ requestBody: {
3405
+ content: {
3406
+ "application/json": components["schemas"]["WidgetUpdateRequest"];
3407
+ };
3408
+ };
3409
+ responses: {
3410
+ /** @description Successful Response */
3411
+ 200: {
3412
+ headers: {
3413
+ [name: string]: unknown;
3414
+ };
3415
+ content: {
3416
+ "application/json": components["schemas"]["StandardResponse"];
3417
+ };
3418
+ };
3419
+ /** @description Bad Request */
3420
+ 400: {
3421
+ headers: {
3422
+ [name: string]: unknown;
3423
+ };
3424
+ content: {
3425
+ /**
3426
+ * @example {
3427
+ * "status": "error",
3428
+ * "message": "An error occurred",
3429
+ * "message_code": "GENERIC_ERROR",
3430
+ * "metadata": {
3431
+ * "timestamp": "2025-08-05T18:38:57Z",
3432
+ * "requestId": "uuid",
3433
+ * "traceId": "uuid",
3434
+ * "version": "v1",
3435
+ * "executionTime": 0,
3436
+ * "language": "en-US",
3437
+ * "links": [
3438
+ * {
3439
+ * "rel": "self",
3440
+ * "href": "/v1/cart/items",
3441
+ * "method": "POST"
3442
+ * }
3443
+ * ]
3444
+ * },
3445
+ * "error": {
3446
+ * "type": "https://{your-domain}/errors/client-error",
3447
+ * "code": "GENERIC_ERROR",
3448
+ * "title": "Client Error",
3449
+ * "status": 400,
3450
+ * "detail": "An error occurred",
3451
+ * "instance": "/v1/cart/items",
3452
+ * "extensions": {
3453
+ * "message_code": "GENERIC_ERROR",
3454
+ * "invalid_params": []
3455
+ * }
3456
+ * }
3457
+ * }
3458
+ */
3459
+ "application/json": components["schemas"]["StandardResponse"];
3460
+ };
3461
+ };
3462
+ /** @description Unprocessable Entity */
3463
+ 422: {
3464
+ headers: {
3465
+ [name: string]: unknown;
3466
+ };
3467
+ content: {
3468
+ /**
3469
+ * @example {
3470
+ * "status": "error",
3471
+ * "message": "One or more input fields are invalid",
3472
+ * "message_code": "INVALID_INPUT",
3473
+ * "metadata": {
3474
+ * "timestamp": "2025-08-05T18:38:57Z",
3475
+ * "requestId": "uuid",
3476
+ * "traceId": "uuid",
3477
+ * "version": "v1",
3478
+ * "executionTime": 0,
3479
+ * "language": "en-US",
3480
+ * "links": [
3481
+ * {
3482
+ * "rel": "self",
3483
+ * "href": "/v1/cart/items",
3484
+ * "method": "POST"
3485
+ * }
3486
+ * ]
3487
+ * },
3488
+ * "error": {
3489
+ * "type": "https://{your-domain}/errors/invalid-input",
3490
+ * "code": "INVALID_INPUT",
3491
+ * "title": "Invalid Input",
3492
+ * "status": 422,
3493
+ * "detail": "One or more input fields are invalid",
3494
+ * "instance": "/v1/cart/items",
3495
+ * "extensions": {
3496
+ * "message_code": "INVALID_INPUT",
3497
+ * "invalid_params": [
3498
+ * {
3499
+ * "field": "items[0].quantity",
3500
+ * "error": "Input should be greater than or equal to 1"
3501
+ * }
3502
+ * ]
3503
+ * }
3504
+ * }
3505
+ * }
3506
+ */
3507
+ "application/json": components["schemas"]["StandardResponse"];
3508
+ };
3509
+ };
3510
+ /** @description Too Many Requests */
3511
+ 429: {
3512
+ headers: {
3513
+ [name: string]: unknown;
3514
+ };
3515
+ content: {
3516
+ /**
3517
+ * @example {
3518
+ * "status": "error",
3519
+ * "message": "Too many requests",
3520
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3521
+ * "metadata": {
3522
+ * "timestamp": "2025-08-05T18:38:57Z",
3523
+ * "requestId": "uuid",
3524
+ * "traceId": "uuid",
3525
+ * "version": "v1",
3526
+ * "executionTime": 0,
3527
+ * "language": "en-US",
3528
+ * "links": [
3529
+ * {
3530
+ * "rel": "self",
3531
+ * "href": "/v1/cart/items",
3532
+ * "method": "POST"
3533
+ * }
3534
+ * ]
3535
+ * },
3536
+ * "error": {
3537
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
3538
+ * "code": "RATE_LIMIT_EXCEEDED",
3539
+ * "title": "Rate Limit Exceeded",
3540
+ * "status": 429,
3541
+ * "detail": "Too many requests",
3542
+ * "instance": "/v1/cart/items",
3543
+ * "extensions": {
3544
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3545
+ * "invalid_params": []
3546
+ * }
3547
+ * }
3548
+ * }
3549
+ */
3550
+ "application/json": components["schemas"]["StandardResponse"];
3551
+ };
3552
+ };
3553
+ /** @description Internal Server Error */
3554
+ 500: {
3555
+ headers: {
3556
+ [name: string]: unknown;
3557
+ };
3558
+ content: {
3559
+ /**
3560
+ * @example {
3561
+ * "status": "error",
3562
+ * "message": "An unexpected error occurred",
3563
+ * "message_code": "SERVER_ERROR",
3564
+ * "metadata": {
3565
+ * "timestamp": "2025-08-05T18:38:57Z",
3566
+ * "requestId": "uuid",
3567
+ * "traceId": "uuid",
3568
+ * "version": "v1",
3569
+ * "executionTime": 0,
3570
+ * "language": "en-US",
3571
+ * "links": [
3572
+ * {
3573
+ * "rel": "self",
3574
+ * "href": "/v1/cart/items",
3575
+ * "method": "POST"
3576
+ * }
3577
+ * ]
3578
+ * },
3579
+ * "error": {
3580
+ * "type": "https://{your-domain}/errors/server-error",
3581
+ * "code": "SERVER_ERROR",
3582
+ * "title": "Server Error",
3583
+ * "status": 500,
3584
+ * "detail": "An unexpected error occurred",
3585
+ * "instance": "/v1/cart/items",
3586
+ * "extensions": {
3587
+ * "message_code": "SERVER_ERROR",
3588
+ * "invalid_params": []
3589
+ * }
3590
+ * }
3591
+ * }
3592
+ */
3593
+ "application/json": components["schemas"]["StandardResponse"];
3594
+ };
3595
+ };
3596
+ };
3597
+ };
3598
+ getDashboard: {
3599
+ parameters: {
3600
+ query?: never;
3601
+ header?: {
3602
+ authorization?: string | null;
3603
+ };
3604
+ path?: never;
3605
+ cookie?: never;
3606
+ };
3607
+ requestBody?: never;
3608
+ responses: {
3609
+ /** @description Successful Response */
3610
+ 200: {
3611
+ headers: {
3612
+ [name: string]: unknown;
3613
+ };
3614
+ content: {
3615
+ "application/json": components["schemas"]["StandardResponse"];
3616
+ };
3617
+ };
3618
+ /** @description Bad Request */
3619
+ 400: {
3620
+ headers: {
3621
+ [name: string]: unknown;
3622
+ };
3623
+ content: {
3624
+ /**
3625
+ * @example {
3626
+ * "status": "error",
3627
+ * "message": "An error occurred",
3628
+ * "message_code": "GENERIC_ERROR",
3629
+ * "metadata": {
3630
+ * "timestamp": "2025-08-05T18:38:57Z",
3631
+ * "requestId": "uuid",
3632
+ * "traceId": "uuid",
3633
+ * "version": "v1",
3634
+ * "executionTime": 0,
3635
+ * "language": "en-US",
3636
+ * "links": [
3637
+ * {
3638
+ * "rel": "self",
3639
+ * "href": "/v1/cart/items",
3640
+ * "method": "POST"
3641
+ * }
3642
+ * ]
3643
+ * },
3644
+ * "error": {
3645
+ * "type": "https://{your-domain}/errors/client-error",
3646
+ * "code": "GENERIC_ERROR",
3647
+ * "title": "Client Error",
3648
+ * "status": 400,
3649
+ * "detail": "An error occurred",
3650
+ * "instance": "/v1/cart/items",
3651
+ * "extensions": {
3652
+ * "message_code": "GENERIC_ERROR",
3653
+ * "invalid_params": []
3654
+ * }
3655
+ * }
3656
+ * }
3657
+ */
3658
+ "application/json": components["schemas"]["StandardResponse"];
3659
+ };
3660
+ };
3661
+ /** @description Unprocessable Entity */
3662
+ 422: {
3663
+ headers: {
3664
+ [name: string]: unknown;
3665
+ };
3666
+ content: {
3667
+ /**
3668
+ * @example {
3669
+ * "status": "error",
3670
+ * "message": "One or more input fields are invalid",
3671
+ * "message_code": "INVALID_INPUT",
3672
+ * "metadata": {
3673
+ * "timestamp": "2025-08-05T18:38:57Z",
3674
+ * "requestId": "uuid",
3675
+ * "traceId": "uuid",
3676
+ * "version": "v1",
3677
+ * "executionTime": 0,
3678
+ * "language": "en-US",
3679
+ * "links": [
3680
+ * {
3681
+ * "rel": "self",
3682
+ * "href": "/v1/cart/items",
3683
+ * "method": "POST"
3684
+ * }
3685
+ * ]
3686
+ * },
3687
+ * "error": {
3688
+ * "type": "https://{your-domain}/errors/invalid-input",
3689
+ * "code": "INVALID_INPUT",
3690
+ * "title": "Invalid Input",
3691
+ * "status": 422,
3692
+ * "detail": "One or more input fields are invalid",
3693
+ * "instance": "/v1/cart/items",
3694
+ * "extensions": {
3695
+ * "message_code": "INVALID_INPUT",
3696
+ * "invalid_params": [
3697
+ * {
3698
+ * "field": "items[0].quantity",
3699
+ * "error": "Input should be greater than or equal to 1"
3700
+ * }
3701
+ * ]
3702
+ * }
3703
+ * }
3704
+ * }
3705
+ */
3706
+ "application/json": components["schemas"]["StandardResponse"];
3707
+ };
3708
+ };
3709
+ /** @description Too Many Requests */
3710
+ 429: {
3711
+ headers: {
3712
+ [name: string]: unknown;
3713
+ };
3714
+ content: {
3715
+ /**
3716
+ * @example {
3717
+ * "status": "error",
3718
+ * "message": "Too many requests",
3719
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3720
+ * "metadata": {
3721
+ * "timestamp": "2025-08-05T18:38:57Z",
3722
+ * "requestId": "uuid",
3723
+ * "traceId": "uuid",
3724
+ * "version": "v1",
3725
+ * "executionTime": 0,
3726
+ * "language": "en-US",
3727
+ * "links": [
3728
+ * {
3729
+ * "rel": "self",
3730
+ * "href": "/v1/cart/items",
3731
+ * "method": "POST"
3732
+ * }
3733
+ * ]
3734
+ * },
3735
+ * "error": {
3736
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
3737
+ * "code": "RATE_LIMIT_EXCEEDED",
3738
+ * "title": "Rate Limit Exceeded",
3739
+ * "status": 429,
3740
+ * "detail": "Too many requests",
3741
+ * "instance": "/v1/cart/items",
3742
+ * "extensions": {
3743
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3744
+ * "invalid_params": []
3745
+ * }
3746
+ * }
3747
+ * }
3748
+ */
3749
+ "application/json": components["schemas"]["StandardResponse"];
3750
+ };
3751
+ };
3752
+ /** @description Internal Server Error */
3753
+ 500: {
3754
+ headers: {
3755
+ [name: string]: unknown;
3756
+ };
3757
+ content: {
3758
+ /**
3759
+ * @example {
3760
+ * "status": "error",
3761
+ * "message": "An unexpected error occurred",
3762
+ * "message_code": "SERVER_ERROR",
3763
+ * "metadata": {
3764
+ * "timestamp": "2025-08-05T18:38:57Z",
3765
+ * "requestId": "uuid",
3766
+ * "traceId": "uuid",
3767
+ * "version": "v1",
3768
+ * "executionTime": 0,
3769
+ * "language": "en-US",
3770
+ * "links": [
3771
+ * {
3772
+ * "rel": "self",
3773
+ * "href": "/v1/cart/items",
3774
+ * "method": "POST"
3775
+ * }
3776
+ * ]
3777
+ * },
3778
+ * "error": {
3779
+ * "type": "https://{your-domain}/errors/server-error",
3780
+ * "code": "SERVER_ERROR",
3781
+ * "title": "Server Error",
3782
+ * "status": 500,
3783
+ * "detail": "An unexpected error occurred",
3784
+ * "instance": "/v1/cart/items",
3785
+ * "extensions": {
3786
+ * "message_code": "SERVER_ERROR",
3787
+ * "invalid_params": []
3788
+ * }
3789
+ * }
3790
+ * }
3791
+ */
3792
+ "application/json": components["schemas"]["StandardResponse"];
3793
+ };
3794
+ };
3795
+ };
3796
+ };
3797
+ updateDashboard: {
3798
+ parameters: {
3799
+ query?: never;
3800
+ header?: {
3801
+ authorization?: string | null;
3802
+ };
3803
+ path?: never;
3804
+ cookie?: never;
3805
+ };
3806
+ requestBody: {
3807
+ content: {
3808
+ "application/json": components["schemas"]["CustomizationRequest"];
3809
+ };
3810
+ };
3811
+ responses: {
3812
+ /** @description Successful Response */
3813
+ 200: {
3814
+ headers: {
3815
+ [name: string]: unknown;
3816
+ };
3817
+ content: {
3818
+ "application/json": components["schemas"]["StandardResponse"];
3819
+ };
3820
+ };
3821
+ /** @description Bad Request */
3822
+ 400: {
3823
+ headers: {
3824
+ [name: string]: unknown;
3825
+ };
3826
+ content: {
3827
+ /**
3828
+ * @example {
3829
+ * "status": "error",
3830
+ * "message": "An error occurred",
3831
+ * "message_code": "GENERIC_ERROR",
3832
+ * "metadata": {
3833
+ * "timestamp": "2025-08-05T18:38:57Z",
3834
+ * "requestId": "uuid",
3835
+ * "traceId": "uuid",
3836
+ * "version": "v1",
3837
+ * "executionTime": 0,
3838
+ * "language": "en-US",
3839
+ * "links": [
3840
+ * {
3841
+ * "rel": "self",
3842
+ * "href": "/v1/cart/items",
3843
+ * "method": "POST"
3844
+ * }
3845
+ * ]
3846
+ * },
3847
+ * "error": {
3848
+ * "type": "https://{your-domain}/errors/client-error",
3849
+ * "code": "GENERIC_ERROR",
3850
+ * "title": "Client Error",
3851
+ * "status": 400,
3852
+ * "detail": "An error occurred",
3853
+ * "instance": "/v1/cart/items",
3854
+ * "extensions": {
3855
+ * "message_code": "GENERIC_ERROR",
3856
+ * "invalid_params": []
3857
+ * }
3858
+ * }
3859
+ * }
3860
+ */
3861
+ "application/json": components["schemas"]["StandardResponse"];
3862
+ };
3863
+ };
3864
+ /** @description Unprocessable Entity */
3865
+ 422: {
3866
+ headers: {
3867
+ [name: string]: unknown;
3868
+ };
3869
+ content: {
3870
+ /**
3871
+ * @example {
3872
+ * "status": "error",
3873
+ * "message": "One or more input fields are invalid",
3874
+ * "message_code": "INVALID_INPUT",
3875
+ * "metadata": {
3876
+ * "timestamp": "2025-08-05T18:38:57Z",
3877
+ * "requestId": "uuid",
3878
+ * "traceId": "uuid",
3879
+ * "version": "v1",
3880
+ * "executionTime": 0,
3881
+ * "language": "en-US",
3882
+ * "links": [
3883
+ * {
3884
+ * "rel": "self",
3885
+ * "href": "/v1/cart/items",
3886
+ * "method": "POST"
3887
+ * }
3888
+ * ]
3889
+ * },
3890
+ * "error": {
3891
+ * "type": "https://{your-domain}/errors/invalid-input",
3892
+ * "code": "INVALID_INPUT",
3893
+ * "title": "Invalid Input",
3894
+ * "status": 422,
3895
+ * "detail": "One or more input fields are invalid",
3896
+ * "instance": "/v1/cart/items",
3897
+ * "extensions": {
3898
+ * "message_code": "INVALID_INPUT",
3899
+ * "invalid_params": [
3900
+ * {
3901
+ * "field": "items[0].quantity",
3902
+ * "error": "Input should be greater than or equal to 1"
3903
+ * }
3904
+ * ]
3905
+ * }
3906
+ * }
3907
+ * }
3908
+ */
3909
+ "application/json": components["schemas"]["StandardResponse"];
3910
+ };
3911
+ };
3912
+ /** @description Too Many Requests */
3913
+ 429: {
3914
+ headers: {
3915
+ [name: string]: unknown;
3916
+ };
3917
+ content: {
3918
+ /**
3919
+ * @example {
3920
+ * "status": "error",
3921
+ * "message": "Too many requests",
3922
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3923
+ * "metadata": {
3924
+ * "timestamp": "2025-08-05T18:38:57Z",
3925
+ * "requestId": "uuid",
3926
+ * "traceId": "uuid",
3927
+ * "version": "v1",
3928
+ * "executionTime": 0,
3929
+ * "language": "en-US",
3930
+ * "links": [
3931
+ * {
3932
+ * "rel": "self",
3933
+ * "href": "/v1/cart/items",
3934
+ * "method": "POST"
3935
+ * }
3936
+ * ]
3937
+ * },
3938
+ * "error": {
3939
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
3940
+ * "code": "RATE_LIMIT_EXCEEDED",
3941
+ * "title": "Rate Limit Exceeded",
3942
+ * "status": 429,
3943
+ * "detail": "Too many requests",
3944
+ * "instance": "/v1/cart/items",
3945
+ * "extensions": {
3946
+ * "message_code": "RATE_LIMIT_EXCEEDED",
3947
+ * "invalid_params": []
3948
+ * }
3949
+ * }
3950
+ * }
3951
+ */
3952
+ "application/json": components["schemas"]["StandardResponse"];
3953
+ };
3954
+ };
3955
+ /** @description Internal Server Error */
3956
+ 500: {
3957
+ headers: {
3958
+ [name: string]: unknown;
3959
+ };
3960
+ content: {
3961
+ /**
3962
+ * @example {
3963
+ * "status": "error",
3964
+ * "message": "An unexpected error occurred",
3965
+ * "message_code": "SERVER_ERROR",
3966
+ * "metadata": {
3967
+ * "timestamp": "2025-08-05T18:38:57Z",
3968
+ * "requestId": "uuid",
3969
+ * "traceId": "uuid",
3970
+ * "version": "v1",
3971
+ * "executionTime": 0,
3972
+ * "language": "en-US",
3973
+ * "links": [
3974
+ * {
3975
+ * "rel": "self",
3976
+ * "href": "/v1/cart/items",
3977
+ * "method": "POST"
3978
+ * }
3979
+ * ]
3980
+ * },
3981
+ * "error": {
3982
+ * "type": "https://{your-domain}/errors/server-error",
3983
+ * "code": "SERVER_ERROR",
3984
+ * "title": "Server Error",
3985
+ * "status": 500,
3986
+ * "detail": "An unexpected error occurred",
3987
+ * "instance": "/v1/cart/items",
3988
+ * "extensions": {
3989
+ * "message_code": "SERVER_ERROR",
3990
+ * "invalid_params": []
3991
+ * }
3992
+ * }
3993
+ * }
3994
+ */
3995
+ "application/json": components["schemas"]["StandardResponse"];
3996
+ };
3997
+ };
3998
+ };
3999
+ };
4000
+ resetDashboard: {
4001
+ parameters: {
4002
+ query?: never;
4003
+ header?: {
4004
+ authorization?: string | null;
4005
+ };
4006
+ path?: never;
4007
+ cookie?: never;
4008
+ };
4009
+ requestBody?: never;
4010
+ responses: {
4011
+ /** @description Successful Response */
4012
+ 200: {
4013
+ headers: {
4014
+ [name: string]: unknown;
4015
+ };
4016
+ content: {
4017
+ "application/json": components["schemas"]["StandardResponse"];
4018
+ };
4019
+ };
4020
+ /** @description Bad Request */
4021
+ 400: {
4022
+ headers: {
4023
+ [name: string]: unknown;
4024
+ };
4025
+ content: {
4026
+ /**
4027
+ * @example {
4028
+ * "status": "error",
4029
+ * "message": "An error occurred",
4030
+ * "message_code": "GENERIC_ERROR",
4031
+ * "metadata": {
4032
+ * "timestamp": "2025-08-05T18:38:57Z",
4033
+ * "requestId": "uuid",
4034
+ * "traceId": "uuid",
4035
+ * "version": "v1",
4036
+ * "executionTime": 0,
4037
+ * "language": "en-US",
4038
+ * "links": [
4039
+ * {
4040
+ * "rel": "self",
4041
+ * "href": "/v1/cart/items",
4042
+ * "method": "POST"
4043
+ * }
4044
+ * ]
4045
+ * },
4046
+ * "error": {
4047
+ * "type": "https://{your-domain}/errors/client-error",
4048
+ * "code": "GENERIC_ERROR",
4049
+ * "title": "Client Error",
4050
+ * "status": 400,
4051
+ * "detail": "An error occurred",
4052
+ * "instance": "/v1/cart/items",
4053
+ * "extensions": {
4054
+ * "message_code": "GENERIC_ERROR",
4055
+ * "invalid_params": []
4056
+ * }
4057
+ * }
4058
+ * }
4059
+ */
4060
+ "application/json": components["schemas"]["StandardResponse"];
4061
+ };
4062
+ };
4063
+ /** @description Unprocessable Entity */
4064
+ 422: {
4065
+ headers: {
4066
+ [name: string]: unknown;
4067
+ };
4068
+ content: {
4069
+ /**
4070
+ * @example {
4071
+ * "status": "error",
4072
+ * "message": "One or more input fields are invalid",
4073
+ * "message_code": "INVALID_INPUT",
4074
+ * "metadata": {
4075
+ * "timestamp": "2025-08-05T18:38:57Z",
4076
+ * "requestId": "uuid",
4077
+ * "traceId": "uuid",
4078
+ * "version": "v1",
4079
+ * "executionTime": 0,
4080
+ * "language": "en-US",
4081
+ * "links": [
4082
+ * {
4083
+ * "rel": "self",
4084
+ * "href": "/v1/cart/items",
4085
+ * "method": "POST"
4086
+ * }
4087
+ * ]
4088
+ * },
4089
+ * "error": {
4090
+ * "type": "https://{your-domain}/errors/invalid-input",
4091
+ * "code": "INVALID_INPUT",
4092
+ * "title": "Invalid Input",
4093
+ * "status": 422,
4094
+ * "detail": "One or more input fields are invalid",
4095
+ * "instance": "/v1/cart/items",
4096
+ * "extensions": {
4097
+ * "message_code": "INVALID_INPUT",
4098
+ * "invalid_params": [
4099
+ * {
4100
+ * "field": "items[0].quantity",
4101
+ * "error": "Input should be greater than or equal to 1"
4102
+ * }
4103
+ * ]
4104
+ * }
4105
+ * }
4106
+ * }
4107
+ */
4108
+ "application/json": components["schemas"]["StandardResponse"];
4109
+ };
4110
+ };
4111
+ /** @description Too Many Requests */
4112
+ 429: {
4113
+ headers: {
4114
+ [name: string]: unknown;
4115
+ };
4116
+ content: {
4117
+ /**
4118
+ * @example {
4119
+ * "status": "error",
4120
+ * "message": "Too many requests",
4121
+ * "message_code": "RATE_LIMIT_EXCEEDED",
4122
+ * "metadata": {
4123
+ * "timestamp": "2025-08-05T18:38:57Z",
4124
+ * "requestId": "uuid",
4125
+ * "traceId": "uuid",
4126
+ * "version": "v1",
4127
+ * "executionTime": 0,
4128
+ * "language": "en-US",
4129
+ * "links": [
4130
+ * {
4131
+ * "rel": "self",
4132
+ * "href": "/v1/cart/items",
4133
+ * "method": "POST"
4134
+ * }
4135
+ * ]
4136
+ * },
4137
+ * "error": {
4138
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
4139
+ * "code": "RATE_LIMIT_EXCEEDED",
4140
+ * "title": "Rate Limit Exceeded",
4141
+ * "status": 429,
4142
+ * "detail": "Too many requests",
4143
+ * "instance": "/v1/cart/items",
4144
+ * "extensions": {
4145
+ * "message_code": "RATE_LIMIT_EXCEEDED",
4146
+ * "invalid_params": []
4147
+ * }
4148
+ * }
4149
+ * }
4150
+ */
4151
+ "application/json": components["schemas"]["StandardResponse"];
4152
+ };
4153
+ };
4154
+ /** @description Internal Server Error */
4155
+ 500: {
4156
+ headers: {
4157
+ [name: string]: unknown;
4158
+ };
4159
+ content: {
4160
+ /**
4161
+ * @example {
4162
+ * "status": "error",
4163
+ * "message": "An unexpected error occurred",
4164
+ * "message_code": "SERVER_ERROR",
4165
+ * "metadata": {
4166
+ * "timestamp": "2025-08-05T18:38:57Z",
4167
+ * "requestId": "uuid",
4168
+ * "traceId": "uuid",
4169
+ * "version": "v1",
4170
+ * "executionTime": 0,
4171
+ * "language": "en-US",
4172
+ * "links": [
4173
+ * {
4174
+ * "rel": "self",
4175
+ * "href": "/v1/cart/items",
4176
+ * "method": "POST"
4177
+ * }
4178
+ * ]
4179
+ * },
4180
+ * "error": {
4181
+ * "type": "https://{your-domain}/errors/server-error",
4182
+ * "code": "SERVER_ERROR",
4183
+ * "title": "Server Error",
4184
+ * "status": 500,
4185
+ * "detail": "An unexpected error occurred",
4186
+ * "instance": "/v1/cart/items",
4187
+ * "extensions": {
4188
+ * "message_code": "SERVER_ERROR",
4189
+ * "invalid_params": []
4190
+ * }
4191
+ * }
4192
+ * }
4193
+ */
4194
+ "application/json": components["schemas"]["StandardResponse"];
4195
+ };
4196
+ };
4197
+ };
4198
+ };
4199
+ exportDashboard: {
4200
+ parameters: {
4201
+ query?: never;
4202
+ header?: {
4203
+ authorization?: string | null;
4204
+ };
4205
+ path?: never;
4206
+ cookie?: never;
4207
+ };
4208
+ requestBody: {
4209
+ content: {
4210
+ "application/json": components["schemas"]["ExportRequest"];
4211
+ };
4212
+ };
4213
+ responses: {
4214
+ /** @description Successful Response */
4215
+ 200: {
4216
+ headers: {
4217
+ [name: string]: unknown;
4218
+ };
4219
+ content: {
4220
+ "application/json": components["schemas"]["StandardResponse"];
4221
+ };
4222
+ };
4223
+ /** @description Bad Request */
4224
+ 400: {
4225
+ headers: {
4226
+ [name: string]: unknown;
4227
+ };
4228
+ content: {
4229
+ /**
4230
+ * @example {
4231
+ * "status": "error",
4232
+ * "message": "An error occurred",
4233
+ * "message_code": "GENERIC_ERROR",
4234
+ * "metadata": {
4235
+ * "timestamp": "2025-08-05T18:38:57Z",
4236
+ * "requestId": "uuid",
4237
+ * "traceId": "uuid",
4238
+ * "version": "v1",
4239
+ * "executionTime": 0,
4240
+ * "language": "en-US",
4241
+ * "links": [
4242
+ * {
4243
+ * "rel": "self",
4244
+ * "href": "/v1/cart/items",
4245
+ * "method": "POST"
4246
+ * }
4247
+ * ]
4248
+ * },
4249
+ * "error": {
4250
+ * "type": "https://{your-domain}/errors/client-error",
4251
+ * "code": "GENERIC_ERROR",
4252
+ * "title": "Client Error",
4253
+ * "status": 400,
4254
+ * "detail": "An error occurred",
4255
+ * "instance": "/v1/cart/items",
4256
+ * "extensions": {
4257
+ * "message_code": "GENERIC_ERROR",
4258
+ * "invalid_params": []
4259
+ * }
4260
+ * }
4261
+ * }
4262
+ */
4263
+ "application/json": components["schemas"]["StandardResponse"];
4264
+ };
4265
+ };
4266
+ /** @description Unprocessable Entity */
4267
+ 422: {
4268
+ headers: {
4269
+ [name: string]: unknown;
4270
+ };
4271
+ content: {
4272
+ /**
4273
+ * @example {
4274
+ * "status": "error",
4275
+ * "message": "One or more input fields are invalid",
4276
+ * "message_code": "INVALID_INPUT",
4277
+ * "metadata": {
4278
+ * "timestamp": "2025-08-05T18:38:57Z",
4279
+ * "requestId": "uuid",
4280
+ * "traceId": "uuid",
4281
+ * "version": "v1",
4282
+ * "executionTime": 0,
4283
+ * "language": "en-US",
4284
+ * "links": [
4285
+ * {
4286
+ * "rel": "self",
4287
+ * "href": "/v1/cart/items",
4288
+ * "method": "POST"
4289
+ * }
4290
+ * ]
4291
+ * },
4292
+ * "error": {
4293
+ * "type": "https://{your-domain}/errors/invalid-input",
4294
+ * "code": "INVALID_INPUT",
4295
+ * "title": "Invalid Input",
4296
+ * "status": 422,
4297
+ * "detail": "One or more input fields are invalid",
4298
+ * "instance": "/v1/cart/items",
4299
+ * "extensions": {
4300
+ * "message_code": "INVALID_INPUT",
4301
+ * "invalid_params": [
4302
+ * {
4303
+ * "field": "items[0].quantity",
4304
+ * "error": "Input should be greater than or equal to 1"
4305
+ * }
4306
+ * ]
4307
+ * }
4308
+ * }
4309
+ * }
4310
+ */
4311
+ "application/json": components["schemas"]["StandardResponse"];
4312
+ };
4313
+ };
4314
+ /** @description Too Many Requests */
4315
+ 429: {
4316
+ headers: {
4317
+ [name: string]: unknown;
4318
+ };
4319
+ content: {
4320
+ /**
4321
+ * @example {
4322
+ * "status": "error",
4323
+ * "message": "Too many requests",
4324
+ * "message_code": "RATE_LIMIT_EXCEEDED",
4325
+ * "metadata": {
4326
+ * "timestamp": "2025-08-05T18:38:57Z",
4327
+ * "requestId": "uuid",
4328
+ * "traceId": "uuid",
4329
+ * "version": "v1",
4330
+ * "executionTime": 0,
4331
+ * "language": "en-US",
4332
+ * "links": [
4333
+ * {
4334
+ * "rel": "self",
4335
+ * "href": "/v1/cart/items",
4336
+ * "method": "POST"
4337
+ * }
4338
+ * ]
4339
+ * },
4340
+ * "error": {
4341
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
4342
+ * "code": "RATE_LIMIT_EXCEEDED",
4343
+ * "title": "Rate Limit Exceeded",
4344
+ * "status": 429,
4345
+ * "detail": "Too many requests",
4346
+ * "instance": "/v1/cart/items",
4347
+ * "extensions": {
4348
+ * "message_code": "RATE_LIMIT_EXCEEDED",
4349
+ * "invalid_params": []
4350
+ * }
4351
+ * }
4352
+ * }
4353
+ */
4354
+ "application/json": components["schemas"]["StandardResponse"];
4355
+ };
4356
+ };
4357
+ /** @description Internal Server Error */
4358
+ 500: {
4359
+ headers: {
4360
+ [name: string]: unknown;
4361
+ };
4362
+ content: {
4363
+ /**
4364
+ * @example {
4365
+ * "status": "error",
4366
+ * "message": "An unexpected error occurred",
4367
+ * "message_code": "SERVER_ERROR",
4368
+ * "metadata": {
4369
+ * "timestamp": "2025-08-05T18:38:57Z",
4370
+ * "requestId": "uuid",
4371
+ * "traceId": "uuid",
4372
+ * "version": "v1",
4373
+ * "executionTime": 0,
4374
+ * "language": "en-US",
4375
+ * "links": [
4376
+ * {
4377
+ * "rel": "self",
4378
+ * "href": "/v1/cart/items",
4379
+ * "method": "POST"
4380
+ * }
4381
+ * ]
4382
+ * },
4383
+ * "error": {
4384
+ * "type": "https://{your-domain}/errors/server-error",
4385
+ * "code": "SERVER_ERROR",
4386
+ * "title": "Server Error",
4387
+ * "status": 500,
4388
+ * "detail": "An unexpected error occurred",
4389
+ * "instance": "/v1/cart/items",
4390
+ * "extensions": {
4391
+ * "message_code": "SERVER_ERROR",
4392
+ * "invalid_params": []
4393
+ * }
4394
+ * }
4395
+ * }
4396
+ */
4397
+ "application/json": components["schemas"]["StandardResponse"];
4398
+ };
4399
+ };
4400
+ };
4401
+ };
4402
+ getWidget: {
4403
+ parameters: {
4404
+ query?: {
4405
+ /** @description Predefined date range: today, 7d, 30d, 90d, 1y, all */
4406
+ date_range?: string | null;
4407
+ /** @description Custom start date (ISO: YYYY-MM-DD) */
4408
+ start_date?: string | null;
4409
+ /** @description Custom end date (ISO: YYYY-MM-DD) */
4410
+ end_date?: string | null;
4411
+ /** @description Result limit for list widgets */
4412
+ limit?: number;
4413
+ /** @description Filter by company ID */
4414
+ company_id?: number | null;
4415
+ /** @description Filter by space ID */
4416
+ space_id?: number | null;
4417
+ };
4418
+ header?: {
4419
+ authorization?: string | null;
4420
+ };
4421
+ path: {
4422
+ widget_key: string;
4423
+ };
4424
+ cookie?: never;
4425
+ };
4426
+ requestBody?: never;
4427
+ responses: {
4428
+ /** @description Successful Response */
4429
+ 200: {
4430
+ headers: {
4431
+ [name: string]: unknown;
4432
+ };
4433
+ content: {
4434
+ "application/json": components["schemas"]["StandardResponse"];
4435
+ };
4436
+ };
4437
+ /** @description Bad Request */
4438
+ 400: {
4439
+ headers: {
4440
+ [name: string]: unknown;
4441
+ };
4442
+ content: {
4443
+ /**
4444
+ * @example {
4445
+ * "status": "error",
4446
+ * "message": "An error occurred",
4447
+ * "message_code": "GENERIC_ERROR",
4448
+ * "metadata": {
4449
+ * "timestamp": "2025-08-05T18:38:57Z",
4450
+ * "requestId": "uuid",
4451
+ * "traceId": "uuid",
4452
+ * "version": "v1",
4453
+ * "executionTime": 0,
4454
+ * "language": "en-US",
4455
+ * "links": [
4456
+ * {
4457
+ * "rel": "self",
4458
+ * "href": "/v1/cart/items",
4459
+ * "method": "POST"
4460
+ * }
4461
+ * ]
4462
+ * },
4463
+ * "error": {
4464
+ * "type": "https://{your-domain}/errors/client-error",
4465
+ * "code": "GENERIC_ERROR",
4466
+ * "title": "Client Error",
4467
+ * "status": 400,
4468
+ * "detail": "An error occurred",
4469
+ * "instance": "/v1/cart/items",
4470
+ * "extensions": {
4471
+ * "message_code": "GENERIC_ERROR",
4472
+ * "invalid_params": []
4473
+ * }
4474
+ * }
4475
+ * }
4476
+ */
4477
+ "application/json": components["schemas"]["StandardResponse"];
4478
+ };
4479
+ };
4480
+ /** @description Unprocessable Entity */
4481
+ 422: {
4482
+ headers: {
4483
+ [name: string]: unknown;
4484
+ };
4485
+ content: {
4486
+ /**
4487
+ * @example {
4488
+ * "status": "error",
4489
+ * "message": "One or more input fields are invalid",
4490
+ * "message_code": "INVALID_INPUT",
4491
+ * "metadata": {
4492
+ * "timestamp": "2025-08-05T18:38:57Z",
4493
+ * "requestId": "uuid",
4494
+ * "traceId": "uuid",
4495
+ * "version": "v1",
4496
+ * "executionTime": 0,
4497
+ * "language": "en-US",
4498
+ * "links": [
4499
+ * {
4500
+ * "rel": "self",
4501
+ * "href": "/v1/cart/items",
4502
+ * "method": "POST"
4503
+ * }
4504
+ * ]
4505
+ * },
4506
+ * "error": {
4507
+ * "type": "https://{your-domain}/errors/invalid-input",
4508
+ * "code": "INVALID_INPUT",
4509
+ * "title": "Invalid Input",
4510
+ * "status": 422,
4511
+ * "detail": "One or more input fields are invalid",
4512
+ * "instance": "/v1/cart/items",
4513
+ * "extensions": {
4514
+ * "message_code": "INVALID_INPUT",
4515
+ * "invalid_params": [
4516
+ * {
4517
+ * "field": "items[0].quantity",
4518
+ * "error": "Input should be greater than or equal to 1"
4519
+ * }
4520
+ * ]
4521
+ * }
4522
+ * }
4523
+ * }
4524
+ */
4525
+ "application/json": components["schemas"]["StandardResponse"];
4526
+ };
4527
+ };
4528
+ /** @description Too Many Requests */
4529
+ 429: {
4530
+ headers: {
4531
+ [name: string]: unknown;
4532
+ };
4533
+ content: {
4534
+ /**
4535
+ * @example {
4536
+ * "status": "error",
4537
+ * "message": "Too many requests",
4538
+ * "message_code": "RATE_LIMIT_EXCEEDED",
4539
+ * "metadata": {
4540
+ * "timestamp": "2025-08-05T18:38:57Z",
4541
+ * "requestId": "uuid",
4542
+ * "traceId": "uuid",
4543
+ * "version": "v1",
4544
+ * "executionTime": 0,
4545
+ * "language": "en-US",
4546
+ * "links": [
4547
+ * {
4548
+ * "rel": "self",
4549
+ * "href": "/v1/cart/items",
4550
+ * "method": "POST"
4551
+ * }
4552
+ * ]
4553
+ * },
4554
+ * "error": {
4555
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
4556
+ * "code": "RATE_LIMIT_EXCEEDED",
4557
+ * "title": "Rate Limit Exceeded",
4558
+ * "status": 429,
4559
+ * "detail": "Too many requests",
4560
+ * "instance": "/v1/cart/items",
4561
+ * "extensions": {
4562
+ * "message_code": "RATE_LIMIT_EXCEEDED",
4563
+ * "invalid_params": []
4564
+ * }
4565
+ * }
4566
+ * }
4567
+ */
4568
+ "application/json": components["schemas"]["StandardResponse"];
4569
+ };
4570
+ };
4571
+ /** @description Internal Server Error */
4572
+ 500: {
4573
+ headers: {
4574
+ [name: string]: unknown;
4575
+ };
4576
+ content: {
4577
+ /**
4578
+ * @example {
4579
+ * "status": "error",
4580
+ * "message": "An unexpected error occurred",
4581
+ * "message_code": "SERVER_ERROR",
4582
+ * "metadata": {
4583
+ * "timestamp": "2025-08-05T18:38:57Z",
4584
+ * "requestId": "uuid",
4585
+ * "traceId": "uuid",
4586
+ * "version": "v1",
4587
+ * "executionTime": 0,
4588
+ * "language": "en-US",
4589
+ * "links": [
4590
+ * {
4591
+ * "rel": "self",
4592
+ * "href": "/v1/cart/items",
4593
+ * "method": "POST"
4594
+ * }
4595
+ * ]
4596
+ * },
4597
+ * "error": {
4598
+ * "type": "https://{your-domain}/errors/server-error",
4599
+ * "code": "SERVER_ERROR",
4600
+ * "title": "Server Error",
4601
+ * "status": 500,
4602
+ * "detail": "An unexpected error occurred",
4603
+ * "instance": "/v1/cart/items",
4604
+ * "extensions": {
4605
+ * "message_code": "SERVER_ERROR",
4606
+ * "invalid_params": []
4607
+ * }
4608
+ * }
4609
+ * }
4610
+ */
4611
+ "application/json": components["schemas"]["StandardResponse"];
4612
+ };
4613
+ };
4614
+ };
4615
+ };
4616
+ invalidateWidgetCache: {
4617
+ parameters: {
4618
+ query?: {
4619
+ /** @description Predefined date range: today, 7d, 30d, 90d, 1y, all */
4620
+ date_range?: string | null;
4621
+ /** @description Custom start date (ISO: YYYY-MM-DD) */
4622
+ start_date?: string | null;
4623
+ /** @description Custom end date (ISO: YYYY-MM-DD) */
4624
+ end_date?: string | null;
4625
+ /** @description Result limit for list widgets */
4626
+ limit?: number;
4627
+ /** @description Filter by company ID */
4628
+ company_id?: number | null;
4629
+ /** @description Filter by space ID */
4630
+ space_id?: number | null;
4631
+ };
4632
+ header?: {
4633
+ authorization?: string | null;
4634
+ };
4635
+ path: {
4636
+ widget_key: string;
4637
+ };
4638
+ cookie?: never;
4639
+ };
4640
+ requestBody?: never;
4641
+ responses: {
4642
+ /** @description Successful Response */
4643
+ 200: {
4644
+ headers: {
4645
+ [name: string]: unknown;
4646
+ };
4647
+ content: {
4648
+ "application/json": components["schemas"]["StandardResponse"];
4649
+ };
4650
+ };
4651
+ /** @description Bad Request */
4652
+ 400: {
4653
+ headers: {
4654
+ [name: string]: unknown;
4655
+ };
4656
+ content: {
4657
+ /**
4658
+ * @example {
4659
+ * "status": "error",
4660
+ * "message": "An error occurred",
4661
+ * "message_code": "GENERIC_ERROR",
4662
+ * "metadata": {
4663
+ * "timestamp": "2025-08-05T18:38:57Z",
4664
+ * "requestId": "uuid",
4665
+ * "traceId": "uuid",
4666
+ * "version": "v1",
4667
+ * "executionTime": 0,
4668
+ * "language": "en-US",
4669
+ * "links": [
4670
+ * {
4671
+ * "rel": "self",
4672
+ * "href": "/v1/cart/items",
4673
+ * "method": "POST"
4674
+ * }
4675
+ * ]
4676
+ * },
4677
+ * "error": {
4678
+ * "type": "https://{your-domain}/errors/client-error",
4679
+ * "code": "GENERIC_ERROR",
4680
+ * "title": "Client Error",
4681
+ * "status": 400,
4682
+ * "detail": "An error occurred",
4683
+ * "instance": "/v1/cart/items",
4684
+ * "extensions": {
4685
+ * "message_code": "GENERIC_ERROR",
4686
+ * "invalid_params": []
4687
+ * }
4688
+ * }
4689
+ * }
4690
+ */
4691
+ "application/json": components["schemas"]["StandardResponse"];
4692
+ };
4693
+ };
4694
+ /** @description Unprocessable Entity */
4695
+ 422: {
4696
+ headers: {
4697
+ [name: string]: unknown;
4698
+ };
4699
+ content: {
4700
+ /**
4701
+ * @example {
4702
+ * "status": "error",
4703
+ * "message": "One or more input fields are invalid",
4704
+ * "message_code": "INVALID_INPUT",
4705
+ * "metadata": {
4706
+ * "timestamp": "2025-08-05T18:38:57Z",
4707
+ * "requestId": "uuid",
4708
+ * "traceId": "uuid",
4709
+ * "version": "v1",
4710
+ * "executionTime": 0,
4711
+ * "language": "en-US",
4712
+ * "links": [
4713
+ * {
4714
+ * "rel": "self",
4715
+ * "href": "/v1/cart/items",
4716
+ * "method": "POST"
4717
+ * }
4718
+ * ]
4719
+ * },
4720
+ * "error": {
4721
+ * "type": "https://{your-domain}/errors/invalid-input",
4722
+ * "code": "INVALID_INPUT",
4723
+ * "title": "Invalid Input",
4724
+ * "status": 422,
4725
+ * "detail": "One or more input fields are invalid",
4726
+ * "instance": "/v1/cart/items",
4727
+ * "extensions": {
4728
+ * "message_code": "INVALID_INPUT",
4729
+ * "invalid_params": [
4730
+ * {
4731
+ * "field": "items[0].quantity",
4732
+ * "error": "Input should be greater than or equal to 1"
4733
+ * }
4734
+ * ]
4735
+ * }
4736
+ * }
4737
+ * }
4738
+ */
4739
+ "application/json": components["schemas"]["StandardResponse"];
4740
+ };
4741
+ };
4742
+ /** @description Too Many Requests */
4743
+ 429: {
4744
+ headers: {
4745
+ [name: string]: unknown;
4746
+ };
4747
+ content: {
4748
+ /**
4749
+ * @example {
4750
+ * "status": "error",
4751
+ * "message": "Too many requests",
4752
+ * "message_code": "RATE_LIMIT_EXCEEDED",
4753
+ * "metadata": {
4754
+ * "timestamp": "2025-08-05T18:38:57Z",
4755
+ * "requestId": "uuid",
4756
+ * "traceId": "uuid",
4757
+ * "version": "v1",
4758
+ * "executionTime": 0,
4759
+ * "language": "en-US",
4760
+ * "links": [
4761
+ * {
4762
+ * "rel": "self",
4763
+ * "href": "/v1/cart/items",
4764
+ * "method": "POST"
4765
+ * }
4766
+ * ]
4767
+ * },
4768
+ * "error": {
4769
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
4770
+ * "code": "RATE_LIMIT_EXCEEDED",
4771
+ * "title": "Rate Limit Exceeded",
4772
+ * "status": 429,
4773
+ * "detail": "Too many requests",
4774
+ * "instance": "/v1/cart/items",
4775
+ * "extensions": {
4776
+ * "message_code": "RATE_LIMIT_EXCEEDED",
4777
+ * "invalid_params": []
4778
+ * }
4779
+ * }
4780
+ * }
4781
+ */
4782
+ "application/json": components["schemas"]["StandardResponse"];
4783
+ };
4784
+ };
4785
+ /** @description Internal Server Error */
4786
+ 500: {
4787
+ headers: {
4788
+ [name: string]: unknown;
4789
+ };
4790
+ content: {
4791
+ /**
4792
+ * @example {
4793
+ * "status": "error",
4794
+ * "message": "An unexpected error occurred",
4795
+ * "message_code": "SERVER_ERROR",
4796
+ * "metadata": {
4797
+ * "timestamp": "2025-08-05T18:38:57Z",
4798
+ * "requestId": "uuid",
4799
+ * "traceId": "uuid",
4800
+ * "version": "v1",
4801
+ * "executionTime": 0,
4802
+ * "language": "en-US",
4803
+ * "links": [
4804
+ * {
4805
+ * "rel": "self",
4806
+ * "href": "/v1/cart/items",
4807
+ * "method": "POST"
4808
+ * }
4809
+ * ]
4810
+ * },
4811
+ * "error": {
4812
+ * "type": "https://{your-domain}/errors/server-error",
4813
+ * "code": "SERVER_ERROR",
4814
+ * "title": "Server Error",
4815
+ * "status": 500,
4816
+ * "detail": "An unexpected error occurred",
4817
+ * "instance": "/v1/cart/items",
4818
+ * "extensions": {
4819
+ * "message_code": "SERVER_ERROR",
4820
+ * "invalid_params": []
4821
+ * }
4822
+ * }
4823
+ * }
4824
+ */
4825
+ "application/json": components["schemas"]["StandardResponse"];
4826
+ };
4827
+ };
4828
+ };
4829
+ };
4830
+ }
4831
+ //# sourceMappingURL=generated.d.ts.map