repzo 1.0.154 → 1.0.156
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.
- package/changelog.md +1 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +38 -0
- package/lib/types/index.d.ts +462 -198
- package/lib/types/index.js +2 -1
- package/package.json +2 -2
- package/src/index.ts +4890 -0
- package/src/oas/activity-ai-sales-order.yaml +623 -0
- package/src/oas/activity-feedback-v2.yaml +753 -0
- package/src/oas/activity-feedback.yaml +645 -0
- package/src/oas/activity-storecheck.yaml +379 -0
- package/src/oas/adjust-account.yaml +241 -0
- package/src/oas/adjust-inventory.yaml +133 -0
- package/src/oas/approval-request.yaml +211 -0
- package/src/oas/approvals.yaml +176 -0
- package/src/oas/asset-part-receival.yaml +591 -0
- package/src/oas/asset-part-transfer.yaml +618 -0
- package/src/oas/asset-part-type.yaml +383 -0
- package/src/oas/asset-part-unit.yaml +722 -0
- package/src/oas/asset-part.yaml +485 -0
- package/src/oas/asset-type.yaml +180 -0
- package/src/oas/asset-unit.yaml +705 -0
- package/src/oas/asset.yaml +204 -0
- package/src/oas/banks.yaml +168 -0
- package/src/oas/bankslists.yaml +168 -0
- package/src/oas/brand.yaml +246 -0
- package/src/oas/category.yaml +285 -0
- package/src/oas/checks.yaml +247 -0
- package/src/oas/client-channel.yaml +480 -0
- package/src/oas/client-contact.yaml +665 -0
- package/src/oas/client-location.yaml +687 -0
- package/src/oas/client.yaml +669 -0
- package/src/oas/contract-installment.yaml +740 -0
- package/src/oas/contract.yaml +210 -0
- package/src/oas/custom-list-item.yaml +168 -0
- package/src/oas/custom-list.yaml +168 -0
- package/src/oas/custom-status.yaml +168 -0
- package/src/oas/day.yaml +246 -0
- package/src/oas/feedback-options.yaml +802 -0
- package/src/oas/fullinvoices.yaml +584 -0
- package/src/oas/integration-action-log.yaml +361 -0
- package/src/oas/integration-app.yaml +303 -0
- package/src/oas/integration-command-log.yaml +381 -0
- package/src/oas/inventory-adjustment-reason.yaml +165 -0
- package/src/oas/inventory.yaml +64 -0
- package/src/oas/mail-unsubscribe.yaml +463 -0
- package/src/oas/measureunit-family.yaml +354 -0
- package/src/oas/measureunit.yaml +366 -0
- package/src/oas/media-storage.yaml +329 -0
- package/src/oas/media.yaml +472 -0
- package/src/oas/msl-products.yaml +180 -0
- package/src/oas/msl.yaml +186 -0
- package/src/oas/ocr-invoice-job-group.yaml +528 -0
- package/src/oas/ocr-invoice-job-page.yaml +602 -0
- package/src/oas/ocr-invoice-job-template.yaml +628 -0
- package/src/oas/ocr-invoice-job.yaml +603 -0
- package/src/oas/patch-action.yaml +421 -0
- package/src/oas/payment-terms.yaml +235 -0
- package/src/oas/payments.yaml +536 -0
- package/src/oas/pricelist-item.yaml +369 -0
- package/src/oas/pricelist.yaml +287 -0
- package/src/oas/product-group.yaml +278 -0
- package/src/oas/product-modifiers-group.yaml +524 -0
- package/src/oas/product.yaml +578 -0
- package/src/oas/proforma.yaml +180 -0
- package/src/oas/quick-convert-to-pdf.yaml +95 -0
- package/src/oas/receiving-material.yaml +336 -0
- package/src/oas/refund.yaml +281 -0
- package/src/oas/rep-balance-summary.yaml +135 -0
- package/src/oas/rep.yaml +1824 -0
- package/src/oas/return-asset-part-unit.yaml +573 -0
- package/src/oas/return-reason.yaml +286 -0
- package/src/oas/route.yaml +337 -0
- package/src/oas/safe-invoice-serial-counter.yaml +525 -0
- package/src/oas/settings.yaml +123 -0
- package/src/oas/settlement.yaml +505 -0
- package/src/oas/speciality.yaml +447 -0
- package/src/oas/store-asset-part-unit.yaml +658 -0
- package/src/oas/storecheck-template.yaml +415 -0
- package/src/oas/subcategory.yaml +355 -0
- package/src/oas/supplier.yaml +183 -0
- package/src/oas/svix-integration.yaml +335 -0
- package/src/oas/tag.yaml +272 -0
- package/src/oas/tax.yaml +303 -0
- package/src/oas/team.yaml +268 -0
- package/src/oas/transfer.yaml +347 -0
- package/src/oas/update-integration-meta.yaml +387 -0
- package/src/oas/variant.yaml +569 -0
- package/src/oas/visit.yaml +174 -0
- package/src/oas/warehouse.yaml +311 -0
- package/src/oas/workorder-category.yaml +751 -0
- package/src/oas/workorder-portal-link.yaml +811 -0
- package/src/oas/workorder-portal.yaml +650 -0
- package/src/oas/workorder-request.yaml +193 -0
- package/src/oas/workorder.yaml +204 -0
- package/src/types/index.ts +1175 -223
|
@@ -0,0 +1,811 @@
|
|
|
1
|
+
openapi: 3.0.0
|
|
2
|
+
info:
|
|
3
|
+
title: Workorder Portal Link API
|
|
4
|
+
description: API for managing workorder portal links
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
servers:
|
|
7
|
+
- url: https://api.repzo.me/v1
|
|
8
|
+
description: Production server
|
|
9
|
+
security:
|
|
10
|
+
- ApiKeyAuth: []
|
|
11
|
+
tags:
|
|
12
|
+
- name: Workorder Portal Link
|
|
13
|
+
description: Workorder portal link management operations
|
|
14
|
+
paths:
|
|
15
|
+
/workorder-portal-link:
|
|
16
|
+
get:
|
|
17
|
+
tags:
|
|
18
|
+
- Workorder Portal Link
|
|
19
|
+
summary: Get all workorder portal links
|
|
20
|
+
description: Retrieve a list of all workorder portal links with optional filtering and pagination
|
|
21
|
+
parameters:
|
|
22
|
+
- name: page
|
|
23
|
+
in: query
|
|
24
|
+
description: Page number for pagination
|
|
25
|
+
required: false
|
|
26
|
+
schema:
|
|
27
|
+
type: integer
|
|
28
|
+
minimum: 1
|
|
29
|
+
default: 1
|
|
30
|
+
- name: per_page
|
|
31
|
+
in: query
|
|
32
|
+
description: Number of items per page
|
|
33
|
+
required: false
|
|
34
|
+
schema:
|
|
35
|
+
type: integer
|
|
36
|
+
minimum: 1
|
|
37
|
+
maximum: 100
|
|
38
|
+
default: 25
|
|
39
|
+
- name: sort
|
|
40
|
+
in: query
|
|
41
|
+
description: Sort field
|
|
42
|
+
required: false
|
|
43
|
+
schema:
|
|
44
|
+
type: string
|
|
45
|
+
- name: company_namespace
|
|
46
|
+
in: query
|
|
47
|
+
description: Company namespace for filtering
|
|
48
|
+
required: false
|
|
49
|
+
schema:
|
|
50
|
+
type: array
|
|
51
|
+
items:
|
|
52
|
+
type: string
|
|
53
|
+
- name: workorder
|
|
54
|
+
in: query
|
|
55
|
+
description: Filter by workorder ID
|
|
56
|
+
required: false
|
|
57
|
+
schema:
|
|
58
|
+
type: string
|
|
59
|
+
- name: is_active
|
|
60
|
+
in: query
|
|
61
|
+
description: Filter by active status
|
|
62
|
+
required: false
|
|
63
|
+
schema:
|
|
64
|
+
type: boolean
|
|
65
|
+
- name: link_type
|
|
66
|
+
in: query
|
|
67
|
+
description: Filter by link type
|
|
68
|
+
required: false
|
|
69
|
+
schema:
|
|
70
|
+
type: string
|
|
71
|
+
enum: ["public", "private", "secure"]
|
|
72
|
+
- name: _id
|
|
73
|
+
in: query
|
|
74
|
+
description: Filter by ID
|
|
75
|
+
required: false
|
|
76
|
+
schema:
|
|
77
|
+
type: array
|
|
78
|
+
items:
|
|
79
|
+
type: string
|
|
80
|
+
responses:
|
|
81
|
+
"200":
|
|
82
|
+
description: Successful response
|
|
83
|
+
content:
|
|
84
|
+
application/json:
|
|
85
|
+
schema:
|
|
86
|
+
type: object
|
|
87
|
+
properties:
|
|
88
|
+
success:
|
|
89
|
+
type: boolean
|
|
90
|
+
example: true
|
|
91
|
+
data:
|
|
92
|
+
type: array
|
|
93
|
+
items:
|
|
94
|
+
$ref: "#/components/schemas/WorkorderPortalLink"
|
|
95
|
+
paging:
|
|
96
|
+
$ref: "#/components/schemas/PagingInfo"
|
|
97
|
+
"400":
|
|
98
|
+
$ref: "#/components/responses/BadRequest"
|
|
99
|
+
"401":
|
|
100
|
+
$ref: "#/components/responses/Unauthorized"
|
|
101
|
+
"403":
|
|
102
|
+
$ref: "#/components/responses/Forbidden"
|
|
103
|
+
"500":
|
|
104
|
+
$ref: "#/components/responses/InternalServerError"
|
|
105
|
+
post:
|
|
106
|
+
tags:
|
|
107
|
+
- Workorder Portal Link
|
|
108
|
+
summary: Create a new workorder portal link
|
|
109
|
+
description: Create a new workorder portal link
|
|
110
|
+
requestBody:
|
|
111
|
+
required: true
|
|
112
|
+
content:
|
|
113
|
+
application/json:
|
|
114
|
+
schema:
|
|
115
|
+
$ref: "#/components/schemas/CreateWorkorderPortalLinkRequest"
|
|
116
|
+
responses:
|
|
117
|
+
"201":
|
|
118
|
+
description: Workorder portal link created successfully
|
|
119
|
+
content:
|
|
120
|
+
application/json:
|
|
121
|
+
schema:
|
|
122
|
+
type: object
|
|
123
|
+
properties:
|
|
124
|
+
success:
|
|
125
|
+
type: boolean
|
|
126
|
+
example: true
|
|
127
|
+
data:
|
|
128
|
+
$ref: "#/components/schemas/WorkorderPortalLink"
|
|
129
|
+
"400":
|
|
130
|
+
$ref: "#/components/responses/BadRequest"
|
|
131
|
+
"401":
|
|
132
|
+
$ref: "#/components/responses/Unauthorized"
|
|
133
|
+
"403":
|
|
134
|
+
$ref: "#/components/responses/Forbidden"
|
|
135
|
+
"422":
|
|
136
|
+
$ref: "#/components/responses/ValidationError"
|
|
137
|
+
"500":
|
|
138
|
+
$ref: "#/components/responses/InternalServerError"
|
|
139
|
+
/workorder-portal-link/{id}:
|
|
140
|
+
get:
|
|
141
|
+
tags:
|
|
142
|
+
- Workorder Portal Link
|
|
143
|
+
summary: Get workorder portal link by ID
|
|
144
|
+
description: Retrieve a specific workorder portal link by its ID
|
|
145
|
+
parameters:
|
|
146
|
+
- name: id
|
|
147
|
+
in: path
|
|
148
|
+
required: true
|
|
149
|
+
description: Workorder portal link ID
|
|
150
|
+
schema:
|
|
151
|
+
type: string
|
|
152
|
+
responses:
|
|
153
|
+
"200":
|
|
154
|
+
description: Successful response
|
|
155
|
+
content:
|
|
156
|
+
application/json:
|
|
157
|
+
schema:
|
|
158
|
+
type: object
|
|
159
|
+
properties:
|
|
160
|
+
success:
|
|
161
|
+
type: boolean
|
|
162
|
+
example: true
|
|
163
|
+
data:
|
|
164
|
+
$ref: "#/components/schemas/WorkorderPortalLink"
|
|
165
|
+
"400":
|
|
166
|
+
$ref: "#/components/responses/BadRequest"
|
|
167
|
+
"401":
|
|
168
|
+
$ref: "#/components/responses/Unauthorized"
|
|
169
|
+
"403":
|
|
170
|
+
$ref: "#/components/responses/Forbidden"
|
|
171
|
+
"404":
|
|
172
|
+
$ref: "#/components/responses/NotFound"
|
|
173
|
+
"500":
|
|
174
|
+
$ref: "#/components/responses/InternalServerError"
|
|
175
|
+
patch:
|
|
176
|
+
tags:
|
|
177
|
+
- Workorder Portal Link
|
|
178
|
+
summary: Update workorder portal link
|
|
179
|
+
description: Update an existing workorder portal link
|
|
180
|
+
parameters:
|
|
181
|
+
- name: id
|
|
182
|
+
in: path
|
|
183
|
+
required: true
|
|
184
|
+
description: Workorder portal link ID
|
|
185
|
+
schema:
|
|
186
|
+
type: string
|
|
187
|
+
requestBody:
|
|
188
|
+
required: true
|
|
189
|
+
content:
|
|
190
|
+
application/json:
|
|
191
|
+
schema:
|
|
192
|
+
$ref: "#/components/schemas/UpdateWorkorderPortalLinkRequest"
|
|
193
|
+
responses:
|
|
194
|
+
"200":
|
|
195
|
+
description: Workorder portal link updated successfully
|
|
196
|
+
content:
|
|
197
|
+
application/json:
|
|
198
|
+
schema:
|
|
199
|
+
type: object
|
|
200
|
+
properties:
|
|
201
|
+
success:
|
|
202
|
+
type: boolean
|
|
203
|
+
example: true
|
|
204
|
+
data:
|
|
205
|
+
$ref: "#/components/schemas/WorkorderPortalLink"
|
|
206
|
+
"400":
|
|
207
|
+
$ref: "#/components/responses/BadRequest"
|
|
208
|
+
"401":
|
|
209
|
+
$ref: "#/components/responses/Unauthorized"
|
|
210
|
+
"403":
|
|
211
|
+
$ref: "#/components/responses/Forbidden"
|
|
212
|
+
"404":
|
|
213
|
+
$ref: "#/components/responses/NotFound"
|
|
214
|
+
"422":
|
|
215
|
+
$ref: "#/components/responses/ValidationError"
|
|
216
|
+
"500":
|
|
217
|
+
$ref: "#/components/responses/InternalServerError"
|
|
218
|
+
delete:
|
|
219
|
+
tags:
|
|
220
|
+
- Workorder Portal Link
|
|
221
|
+
summary: Delete workorder portal link
|
|
222
|
+
description: Delete a workorder portal link by ID
|
|
223
|
+
parameters:
|
|
224
|
+
- name: id
|
|
225
|
+
in: path
|
|
226
|
+
required: true
|
|
227
|
+
description: Workorder portal link ID
|
|
228
|
+
schema:
|
|
229
|
+
type: string
|
|
230
|
+
responses:
|
|
231
|
+
"200":
|
|
232
|
+
description: Workorder portal link deleted successfully
|
|
233
|
+
content:
|
|
234
|
+
application/json:
|
|
235
|
+
schema:
|
|
236
|
+
type: object
|
|
237
|
+
properties:
|
|
238
|
+
success:
|
|
239
|
+
type: boolean
|
|
240
|
+
example: true
|
|
241
|
+
"400":
|
|
242
|
+
$ref: "#/components/responses/BadRequest"
|
|
243
|
+
"401":
|
|
244
|
+
$ref: "#/components/responses/Unauthorized"
|
|
245
|
+
"403":
|
|
246
|
+
$ref: "#/components/responses/Forbidden"
|
|
247
|
+
"404":
|
|
248
|
+
$ref: "#/components/responses/NotFound"
|
|
249
|
+
"500":
|
|
250
|
+
$ref: "#/components/responses/InternalServerError"
|
|
251
|
+
/workorder-portal-link/{id}/regenerate:
|
|
252
|
+
post:
|
|
253
|
+
tags:
|
|
254
|
+
- Workorder Portal Link
|
|
255
|
+
summary: Regenerate portal link
|
|
256
|
+
description: Regenerate the portal link URL and access token
|
|
257
|
+
parameters:
|
|
258
|
+
- name: id
|
|
259
|
+
in: path
|
|
260
|
+
required: true
|
|
261
|
+
description: Workorder portal link ID
|
|
262
|
+
schema:
|
|
263
|
+
type: string
|
|
264
|
+
responses:
|
|
265
|
+
"200":
|
|
266
|
+
description: Portal link regenerated successfully
|
|
267
|
+
content:
|
|
268
|
+
application/json:
|
|
269
|
+
schema:
|
|
270
|
+
type: object
|
|
271
|
+
properties:
|
|
272
|
+
success:
|
|
273
|
+
type: boolean
|
|
274
|
+
example: true
|
|
275
|
+
data:
|
|
276
|
+
$ref: "#/components/schemas/WorkorderPortalLink"
|
|
277
|
+
"400":
|
|
278
|
+
$ref: "#/components/responses/BadRequest"
|
|
279
|
+
"401":
|
|
280
|
+
$ref: "#/components/responses/Unauthorized"
|
|
281
|
+
"403":
|
|
282
|
+
$ref: "#/components/responses/Forbidden"
|
|
283
|
+
"404":
|
|
284
|
+
$ref: "#/components/responses/NotFound"
|
|
285
|
+
"500":
|
|
286
|
+
$ref: "#/components/responses/InternalServerError"
|
|
287
|
+
/workorder-portal-link/{id}/activate:
|
|
288
|
+
post:
|
|
289
|
+
tags:
|
|
290
|
+
- Workorder Portal Link
|
|
291
|
+
summary: Activate portal link
|
|
292
|
+
description: Activate a workorder portal link
|
|
293
|
+
parameters:
|
|
294
|
+
- name: id
|
|
295
|
+
in: path
|
|
296
|
+
required: true
|
|
297
|
+
description: Workorder portal link ID
|
|
298
|
+
schema:
|
|
299
|
+
type: string
|
|
300
|
+
responses:
|
|
301
|
+
"200":
|
|
302
|
+
description: Portal link activated successfully
|
|
303
|
+
content:
|
|
304
|
+
application/json:
|
|
305
|
+
schema:
|
|
306
|
+
type: object
|
|
307
|
+
properties:
|
|
308
|
+
success:
|
|
309
|
+
type: boolean
|
|
310
|
+
example: true
|
|
311
|
+
data:
|
|
312
|
+
$ref: "#/components/schemas/WorkorderPortalLink"
|
|
313
|
+
"400":
|
|
314
|
+
$ref: "#/components/responses/BadRequest"
|
|
315
|
+
"401":
|
|
316
|
+
$ref: "#/components/responses/Unauthorized"
|
|
317
|
+
"403":
|
|
318
|
+
$ref: "#/components/responses/Forbidden"
|
|
319
|
+
"404":
|
|
320
|
+
$ref: "#/components/responses/NotFound"
|
|
321
|
+
"500":
|
|
322
|
+
$ref: "#/components/responses/InternalServerError"
|
|
323
|
+
/workorder-portal-link/{id}/deactivate:
|
|
324
|
+
post:
|
|
325
|
+
tags:
|
|
326
|
+
- Workorder Portal Link
|
|
327
|
+
summary: Deactivate portal link
|
|
328
|
+
description: Deactivate a workorder portal link
|
|
329
|
+
parameters:
|
|
330
|
+
- name: id
|
|
331
|
+
in: path
|
|
332
|
+
required: true
|
|
333
|
+
description: Workorder portal link ID
|
|
334
|
+
schema:
|
|
335
|
+
type: string
|
|
336
|
+
responses:
|
|
337
|
+
"200":
|
|
338
|
+
description: Portal link deactivated successfully
|
|
339
|
+
content:
|
|
340
|
+
application/json:
|
|
341
|
+
schema:
|
|
342
|
+
type: object
|
|
343
|
+
properties:
|
|
344
|
+
success:
|
|
345
|
+
type: boolean
|
|
346
|
+
example: true
|
|
347
|
+
data:
|
|
348
|
+
$ref: "#/components/schemas/WorkorderPortalLink"
|
|
349
|
+
"400":
|
|
350
|
+
$ref: "#/components/responses/BadRequest"
|
|
351
|
+
"401":
|
|
352
|
+
$ref: "#/components/responses/Unauthorized"
|
|
353
|
+
"403":
|
|
354
|
+
$ref: "#/components/responses/Forbidden"
|
|
355
|
+
"404":
|
|
356
|
+
$ref: "#/components/responses/NotFound"
|
|
357
|
+
"500":
|
|
358
|
+
$ref: "#/components/responses/InternalServerError"
|
|
359
|
+
components:
|
|
360
|
+
securitySchemes:
|
|
361
|
+
ApiKeyAuth:
|
|
362
|
+
type: apiKey
|
|
363
|
+
in: header
|
|
364
|
+
name: Authorization
|
|
365
|
+
description: "Use format: Bearer {api_key}"
|
|
366
|
+
schemas:
|
|
367
|
+
WorkorderPortalLink:
|
|
368
|
+
type: object
|
|
369
|
+
properties:
|
|
370
|
+
_id:
|
|
371
|
+
type: string
|
|
372
|
+
description: Unique identifier
|
|
373
|
+
example: "507f1f77bcf86cd799439011"
|
|
374
|
+
workorder:
|
|
375
|
+
type: string
|
|
376
|
+
description: Workorder ID reference
|
|
377
|
+
example: "507f1f77bcf86cd799439012"
|
|
378
|
+
link_token:
|
|
379
|
+
type: string
|
|
380
|
+
description: Unique token for the portal link
|
|
381
|
+
example: "wpl_abc123def456"
|
|
382
|
+
full_url:
|
|
383
|
+
type: string
|
|
384
|
+
description: Complete portal link URL
|
|
385
|
+
example: "https://portal.repzo.me/workorder/wpl_abc123def456"
|
|
386
|
+
link_type:
|
|
387
|
+
type: string
|
|
388
|
+
description: Type of portal link
|
|
389
|
+
enum: ["public", "private", "secure"]
|
|
390
|
+
example: "private"
|
|
391
|
+
permissions:
|
|
392
|
+
type: object
|
|
393
|
+
properties:
|
|
394
|
+
can_view_details:
|
|
395
|
+
type: boolean
|
|
396
|
+
description: Can view workorder details
|
|
397
|
+
default: true
|
|
398
|
+
can_add_comments:
|
|
399
|
+
type: boolean
|
|
400
|
+
description: Can add comments
|
|
401
|
+
default: true
|
|
402
|
+
can_upload_files:
|
|
403
|
+
type: boolean
|
|
404
|
+
description: Can upload files
|
|
405
|
+
default: false
|
|
406
|
+
can_view_history:
|
|
407
|
+
type: boolean
|
|
408
|
+
description: Can view workorder history
|
|
409
|
+
default: true
|
|
410
|
+
can_approve_reject:
|
|
411
|
+
type: boolean
|
|
412
|
+
description: Can approve or reject workorder
|
|
413
|
+
default: false
|
|
414
|
+
access_restrictions:
|
|
415
|
+
type: object
|
|
416
|
+
properties:
|
|
417
|
+
allowed_ips:
|
|
418
|
+
type: array
|
|
419
|
+
items:
|
|
420
|
+
type: string
|
|
421
|
+
description: Allowed IP addresses (if restricted)
|
|
422
|
+
max_uses:
|
|
423
|
+
type: integer
|
|
424
|
+
description: Maximum number of uses
|
|
425
|
+
password_protected:
|
|
426
|
+
type: boolean
|
|
427
|
+
description: Whether password protection is enabled
|
|
428
|
+
default: false
|
|
429
|
+
require_email_verification:
|
|
430
|
+
type: boolean
|
|
431
|
+
description: Whether email verification is required
|
|
432
|
+
default: false
|
|
433
|
+
expiry_date:
|
|
434
|
+
type: string
|
|
435
|
+
format: date-time
|
|
436
|
+
description: When the portal link expires
|
|
437
|
+
is_active:
|
|
438
|
+
type: boolean
|
|
439
|
+
description: Whether the portal link is active
|
|
440
|
+
example: true
|
|
441
|
+
usage_stats:
|
|
442
|
+
type: object
|
|
443
|
+
properties:
|
|
444
|
+
total_views:
|
|
445
|
+
type: integer
|
|
446
|
+
description: Total number of views
|
|
447
|
+
example: 15
|
|
448
|
+
unique_visitors:
|
|
449
|
+
type: integer
|
|
450
|
+
description: Number of unique visitors
|
|
451
|
+
example: 3
|
|
452
|
+
last_accessed:
|
|
453
|
+
type: string
|
|
454
|
+
format: date-time
|
|
455
|
+
description: Last access timestamp
|
|
456
|
+
access_log:
|
|
457
|
+
type: array
|
|
458
|
+
items:
|
|
459
|
+
type: object
|
|
460
|
+
properties:
|
|
461
|
+
timestamp:
|
|
462
|
+
type: string
|
|
463
|
+
format: date-time
|
|
464
|
+
ip_address:
|
|
465
|
+
type: string
|
|
466
|
+
user_agent:
|
|
467
|
+
type: string
|
|
468
|
+
action:
|
|
469
|
+
type: string
|
|
470
|
+
description: Access log entries
|
|
471
|
+
notification_settings:
|
|
472
|
+
type: object
|
|
473
|
+
properties:
|
|
474
|
+
notify_on_access:
|
|
475
|
+
type: boolean
|
|
476
|
+
description: Send notification when link is accessed
|
|
477
|
+
default: false
|
|
478
|
+
notify_on_comment:
|
|
479
|
+
type: boolean
|
|
480
|
+
description: Send notification when comment is added
|
|
481
|
+
default: true
|
|
482
|
+
notify_on_file_upload:
|
|
483
|
+
type: boolean
|
|
484
|
+
description: Send notification when file is uploaded
|
|
485
|
+
default: true
|
|
486
|
+
notification_recipients:
|
|
487
|
+
type: array
|
|
488
|
+
items:
|
|
489
|
+
type: string
|
|
490
|
+
description: Email addresses to notify
|
|
491
|
+
custom_branding:
|
|
492
|
+
type: object
|
|
493
|
+
properties:
|
|
494
|
+
logo_url:
|
|
495
|
+
type: string
|
|
496
|
+
description: Custom logo URL
|
|
497
|
+
brand_color:
|
|
498
|
+
type: string
|
|
499
|
+
description: Brand color hex code
|
|
500
|
+
example: "#FF5733"
|
|
501
|
+
custom_domain:
|
|
502
|
+
type: string
|
|
503
|
+
description: Custom domain for the portal link
|
|
504
|
+
footer_text:
|
|
505
|
+
type: string
|
|
506
|
+
description: Custom footer text
|
|
507
|
+
metadata:
|
|
508
|
+
type: object
|
|
509
|
+
properties:
|
|
510
|
+
created_by:
|
|
511
|
+
type: string
|
|
512
|
+
description: User who created the link
|
|
513
|
+
purpose:
|
|
514
|
+
type: string
|
|
515
|
+
description: Purpose of the portal link
|
|
516
|
+
tags:
|
|
517
|
+
type: array
|
|
518
|
+
items:
|
|
519
|
+
type: string
|
|
520
|
+
description: Tags for organization
|
|
521
|
+
company_namespace:
|
|
522
|
+
type: array
|
|
523
|
+
items:
|
|
524
|
+
type: string
|
|
525
|
+
description: Company namespace
|
|
526
|
+
createdAt:
|
|
527
|
+
type: string
|
|
528
|
+
format: date-time
|
|
529
|
+
description: Creation timestamp
|
|
530
|
+
modifiedAt:
|
|
531
|
+
type: string
|
|
532
|
+
format: date-time
|
|
533
|
+
description: Last modification timestamp
|
|
534
|
+
SVClient:
|
|
535
|
+
type: integer
|
|
536
|
+
description: Client version
|
|
537
|
+
__v:
|
|
538
|
+
type: integer
|
|
539
|
+
description: Document version
|
|
540
|
+
required:
|
|
541
|
+
- workorder
|
|
542
|
+
- link_token
|
|
543
|
+
- link_type
|
|
544
|
+
CreateWorkorderPortalLinkRequest:
|
|
545
|
+
type: object
|
|
546
|
+
properties:
|
|
547
|
+
workorder:
|
|
548
|
+
type: string
|
|
549
|
+
description: Workorder ID reference
|
|
550
|
+
example: "507f1f77bcf86cd799439012"
|
|
551
|
+
link_type:
|
|
552
|
+
type: string
|
|
553
|
+
description: Type of portal link
|
|
554
|
+
enum: ["public", "private", "secure"]
|
|
555
|
+
default: "private"
|
|
556
|
+
permissions:
|
|
557
|
+
type: object
|
|
558
|
+
properties:
|
|
559
|
+
can_view_details:
|
|
560
|
+
type: boolean
|
|
561
|
+
default: true
|
|
562
|
+
can_add_comments:
|
|
563
|
+
type: boolean
|
|
564
|
+
default: true
|
|
565
|
+
can_upload_files:
|
|
566
|
+
type: boolean
|
|
567
|
+
default: false
|
|
568
|
+
can_view_history:
|
|
569
|
+
type: boolean
|
|
570
|
+
default: true
|
|
571
|
+
can_approve_reject:
|
|
572
|
+
type: boolean
|
|
573
|
+
default: false
|
|
574
|
+
access_restrictions:
|
|
575
|
+
type: object
|
|
576
|
+
properties:
|
|
577
|
+
allowed_ips:
|
|
578
|
+
type: array
|
|
579
|
+
items:
|
|
580
|
+
type: string
|
|
581
|
+
max_uses:
|
|
582
|
+
type: integer
|
|
583
|
+
password_protected:
|
|
584
|
+
type: boolean
|
|
585
|
+
default: false
|
|
586
|
+
require_email_verification:
|
|
587
|
+
type: boolean
|
|
588
|
+
default: false
|
|
589
|
+
expiry_date:
|
|
590
|
+
type: string
|
|
591
|
+
format: date-time
|
|
592
|
+
description: When the portal link expires
|
|
593
|
+
notification_settings:
|
|
594
|
+
type: object
|
|
595
|
+
properties:
|
|
596
|
+
notify_on_access:
|
|
597
|
+
type: boolean
|
|
598
|
+
default: false
|
|
599
|
+
notify_on_comment:
|
|
600
|
+
type: boolean
|
|
601
|
+
default: true
|
|
602
|
+
notify_on_file_upload:
|
|
603
|
+
type: boolean
|
|
604
|
+
default: true
|
|
605
|
+
notification_recipients:
|
|
606
|
+
type: array
|
|
607
|
+
items:
|
|
608
|
+
type: string
|
|
609
|
+
custom_branding:
|
|
610
|
+
type: object
|
|
611
|
+
properties:
|
|
612
|
+
logo_url:
|
|
613
|
+
type: string
|
|
614
|
+
brand_color:
|
|
615
|
+
type: string
|
|
616
|
+
custom_domain:
|
|
617
|
+
type: string
|
|
618
|
+
footer_text:
|
|
619
|
+
type: string
|
|
620
|
+
metadata:
|
|
621
|
+
type: object
|
|
622
|
+
properties:
|
|
623
|
+
purpose:
|
|
624
|
+
type: string
|
|
625
|
+
tags:
|
|
626
|
+
type: array
|
|
627
|
+
items:
|
|
628
|
+
type: string
|
|
629
|
+
is_active:
|
|
630
|
+
type: boolean
|
|
631
|
+
description: Whether the portal link is active
|
|
632
|
+
default: true
|
|
633
|
+
company_namespace:
|
|
634
|
+
type: array
|
|
635
|
+
items:
|
|
636
|
+
type: string
|
|
637
|
+
description: Company namespace
|
|
638
|
+
required:
|
|
639
|
+
- workorder
|
|
640
|
+
UpdateWorkorderPortalLinkRequest:
|
|
641
|
+
type: object
|
|
642
|
+
properties:
|
|
643
|
+
link_type:
|
|
644
|
+
type: string
|
|
645
|
+
description: Type of portal link
|
|
646
|
+
enum: ["public", "private", "secure"]
|
|
647
|
+
permissions:
|
|
648
|
+
type: object
|
|
649
|
+
properties:
|
|
650
|
+
can_view_details:
|
|
651
|
+
type: boolean
|
|
652
|
+
can_add_comments:
|
|
653
|
+
type: boolean
|
|
654
|
+
can_upload_files:
|
|
655
|
+
type: boolean
|
|
656
|
+
can_view_history:
|
|
657
|
+
type: boolean
|
|
658
|
+
can_approve_reject:
|
|
659
|
+
type: boolean
|
|
660
|
+
access_restrictions:
|
|
661
|
+
type: object
|
|
662
|
+
properties:
|
|
663
|
+
allowed_ips:
|
|
664
|
+
type: array
|
|
665
|
+
items:
|
|
666
|
+
type: string
|
|
667
|
+
max_uses:
|
|
668
|
+
type: integer
|
|
669
|
+
password_protected:
|
|
670
|
+
type: boolean
|
|
671
|
+
require_email_verification:
|
|
672
|
+
type: boolean
|
|
673
|
+
expiry_date:
|
|
674
|
+
type: string
|
|
675
|
+
format: date-time
|
|
676
|
+
description: When the portal link expires
|
|
677
|
+
is_active:
|
|
678
|
+
type: boolean
|
|
679
|
+
description: Whether the portal link is active
|
|
680
|
+
notification_settings:
|
|
681
|
+
type: object
|
|
682
|
+
properties:
|
|
683
|
+
notify_on_access:
|
|
684
|
+
type: boolean
|
|
685
|
+
notify_on_comment:
|
|
686
|
+
type: boolean
|
|
687
|
+
notify_on_file_upload:
|
|
688
|
+
type: boolean
|
|
689
|
+
notification_recipients:
|
|
690
|
+
type: array
|
|
691
|
+
items:
|
|
692
|
+
type: string
|
|
693
|
+
custom_branding:
|
|
694
|
+
type: object
|
|
695
|
+
properties:
|
|
696
|
+
logo_url:
|
|
697
|
+
type: string
|
|
698
|
+
brand_color:
|
|
699
|
+
type: string
|
|
700
|
+
custom_domain:
|
|
701
|
+
type: string
|
|
702
|
+
footer_text:
|
|
703
|
+
type: string
|
|
704
|
+
metadata:
|
|
705
|
+
type: object
|
|
706
|
+
properties:
|
|
707
|
+
purpose:
|
|
708
|
+
type: string
|
|
709
|
+
tags:
|
|
710
|
+
type: array
|
|
711
|
+
items:
|
|
712
|
+
type: string
|
|
713
|
+
company_namespace:
|
|
714
|
+
type: array
|
|
715
|
+
items:
|
|
716
|
+
type: string
|
|
717
|
+
description: Company namespace
|
|
718
|
+
PagingInfo:
|
|
719
|
+
type: object
|
|
720
|
+
properties:
|
|
721
|
+
total:
|
|
722
|
+
type: integer
|
|
723
|
+
description: Total number of items
|
|
724
|
+
page:
|
|
725
|
+
type: integer
|
|
726
|
+
description: Current page number
|
|
727
|
+
per_page:
|
|
728
|
+
type: integer
|
|
729
|
+
description: Items per page
|
|
730
|
+
pages:
|
|
731
|
+
type: integer
|
|
732
|
+
description: Total number of pages
|
|
733
|
+
responses:
|
|
734
|
+
BadRequest:
|
|
735
|
+
description: Bad request
|
|
736
|
+
content:
|
|
737
|
+
application/json:
|
|
738
|
+
schema:
|
|
739
|
+
type: object
|
|
740
|
+
properties:
|
|
741
|
+
success:
|
|
742
|
+
type: boolean
|
|
743
|
+
example: false
|
|
744
|
+
error:
|
|
745
|
+
type: string
|
|
746
|
+
example: "Invalid request parameters"
|
|
747
|
+
Unauthorized:
|
|
748
|
+
description: Unauthorized
|
|
749
|
+
content:
|
|
750
|
+
application/json:
|
|
751
|
+
schema:
|
|
752
|
+
type: object
|
|
753
|
+
properties:
|
|
754
|
+
success:
|
|
755
|
+
type: boolean
|
|
756
|
+
example: false
|
|
757
|
+
error:
|
|
758
|
+
type: string
|
|
759
|
+
example: "Authentication required"
|
|
760
|
+
Forbidden:
|
|
761
|
+
description: Forbidden
|
|
762
|
+
content:
|
|
763
|
+
application/json:
|
|
764
|
+
schema:
|
|
765
|
+
type: object
|
|
766
|
+
properties:
|
|
767
|
+
success:
|
|
768
|
+
type: boolean
|
|
769
|
+
example: false
|
|
770
|
+
error:
|
|
771
|
+
type: string
|
|
772
|
+
example: "Insufficient permissions"
|
|
773
|
+
NotFound:
|
|
774
|
+
description: Resource not found
|
|
775
|
+
content:
|
|
776
|
+
application/json:
|
|
777
|
+
schema:
|
|
778
|
+
type: object
|
|
779
|
+
properties:
|
|
780
|
+
success:
|
|
781
|
+
type: boolean
|
|
782
|
+
example: false
|
|
783
|
+
error:
|
|
784
|
+
type: string
|
|
785
|
+
example: "Resource not found"
|
|
786
|
+
ValidationError:
|
|
787
|
+
description: Validation error
|
|
788
|
+
content:
|
|
789
|
+
application/json:
|
|
790
|
+
schema:
|
|
791
|
+
type: object
|
|
792
|
+
properties:
|
|
793
|
+
success:
|
|
794
|
+
type: boolean
|
|
795
|
+
example: false
|
|
796
|
+
error:
|
|
797
|
+
type: string
|
|
798
|
+
example: "Validation failed"
|
|
799
|
+
InternalServerError:
|
|
800
|
+
description: Internal server error
|
|
801
|
+
content:
|
|
802
|
+
application/json:
|
|
803
|
+
schema:
|
|
804
|
+
type: object
|
|
805
|
+
properties:
|
|
806
|
+
success:
|
|
807
|
+
type: boolean
|
|
808
|
+
example: false
|
|
809
|
+
error:
|
|
810
|
+
type: string
|
|
811
|
+
example: "Internal server error"
|