aspera-cli 4.27.3 → 4.27.4
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +83 -0
- data/CONTRIBUTING.md +5 -2
- data/bin/ascli +1 -0
- data/docs/README.md +224 -42
- data/lib/aspera/agent/base.rb +7 -2
- data/lib/aspera/agent/connect.rb +0 -4
- data/lib/aspera/agent/desktop.rb +0 -4
- data/lib/aspera/agent/direct.rb +49 -21
- data/lib/aspera/agent/node.rb +6 -5
- data/lib/aspera/agent/transferd.rb +2 -2
- data/lib/aspera/api/faspex.rb +2 -0
- data/lib/aspera/api/httpgw.rb +1 -2
- data/lib/aspera/api/node.rb +1 -1
- data/lib/aspera/ascp/installation.rb +1 -1
- data/lib/aspera/cli/async_transfer_store.rb +10 -9
- data/lib/aspera/cli/bootstrapper.rb +3 -1
- data/lib/aspera/cli/command_registry.rb +69 -7
- data/lib/aspera/cli/command_spec.rb +1 -1
- data/lib/aspera/cli/extended_value.rb +4 -3
- data/lib/aspera/cli/formatter.rb +10 -8
- data/lib/aspera/cli/http.rb +8 -20
- data/lib/aspera/cli/option_types.rb +3 -1
- data/lib/aspera/cli/option_value.rb +16 -19
- data/lib/aspera/cli/options.schema.yaml +86 -10
- data/lib/aspera/cli/parser.rb +30 -18
- data/lib/aspera/cli/plugins/aoc.rb +133 -156
- data/lib/aspera/cli/plugins/ats.rb +1 -7
- data/lib/aspera/cli/plugins/base.rb +40 -34
- data/lib/aspera/cli/plugins/config.rb +24 -11
- data/lib/aspera/cli/plugins/console.rb +1 -1
- data/lib/aspera/cli/plugins/faspex5.rb +30 -11
- data/lib/aspera/cli/plugins/faspio.rb +1 -1
- data/lib/aspera/cli/plugins/node.rb +26 -19
- data/lib/aspera/cli/plugins/orchestrator.rb +73 -44
- data/lib/aspera/cli/plugins/preview.rb +21 -19
- data/lib/aspera/cli/plugins/server.rb +3 -4
- data/lib/aspera/cli/plugins/shares.rb +21 -24
- data/lib/aspera/cli/preset_actions.rb +28 -18
- data/lib/aspera/cli/preset_manager.rb +34 -19
- data/lib/aspera/cli/prompt.rb +2 -1
- data/lib/aspera/cli/result.rb +33 -22
- data/lib/aspera/cli/runner.rb +1 -5
- data/lib/aspera/cli/sync_actions.rb +17 -16
- data/lib/aspera/cli/transfer_actions.rb +14 -3
- data/lib/aspera/cli/transfer_agent.rb +6 -4
- data/lib/aspera/cli/transfer_progress.rb +290 -55
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/cli/wizard.rb +1 -1
- data/lib/aspera/coverage.rb +0 -1
- data/lib/aspera/environment.rb +29 -5
- data/lib/aspera/keychain/encrypted_hash.rb +1 -1
- data/lib/aspera/keychain/factory.rb +2 -1
- data/lib/aspera/log.rb +25 -2
- data/lib/aspera/node_emulator.rb +759 -0
- data/lib/aspera/oauth/base.rb +2 -1
- data/lib/aspera/oauth/factory.rb +6 -3
- data/lib/aspera/oauth/json_credentials.rb +34 -0
- data/lib/aspera/oauth/jwt.rb +3 -4
- data/lib/aspera/oauth.rb +1 -0
- data/lib/aspera/persistency_folder.rb +1 -3
- data/lib/aspera/preview/generator.rb +4 -1
- data/lib/aspera/preview/options.schema.yaml +119 -0
- data/lib/aspera/rest/aspera_errors.rb +12 -0
- data/lib/aspera/rest/client.rb +28 -19
- data/lib/aspera/rest/list.rb +14 -8
- data/lib/aspera/rest/parameters.rb +2 -2
- data/lib/aspera/schema/IBM Aspera Faspex API-5.0-enhanced.yaml +0 -20
- data/lib/aspera/schema/IBM Aspera Orchestrator API-v1.yaml +1784 -0
- data/lib/aspera/schema/IBM Aspera on Cloud API-0.2.6-enhanced.yaml +1230 -137
- data/lib/aspera/schema/IBM_Aspera_Shares.yaml +14 -13
- data/lib/aspera/schema/reader.rb +12 -18
- data/lib/aspera/schema/registry.rb +6 -1
- data.tar.gz.sig +0 -0
- metadata +5 -3
- metadata.gz.sig +0 -0
- data/lib/aspera/node_simulator.rb +0 -345
- data/lib/aspera/preview/options.rb +0 -45
|
@@ -0,0 +1,1784 @@
|
|
|
1
|
+
# DO NOT EDIT THIS FILE MANUALLY
|
|
2
|
+
# This file is automatically downloaded from:
|
|
3
|
+
# https://raw.githubusercontent.com/laurent-martin/aspera-api-examples/refs/heads/main/openapi/IBM%20Aspera%20Orchestrator%20API-v1.yaml
|
|
4
|
+
# Use 'rake tools:openapi' to update this file
|
|
5
|
+
|
|
6
|
+
openapi: 3.0.1
|
|
7
|
+
info:
|
|
8
|
+
title: Aspera Orchestrator API
|
|
9
|
+
version: v1
|
|
10
|
+
description: |
|
|
11
|
+
API documentation for Aspera Orchestrator.
|
|
12
|
+
|
|
13
|
+
## Authentication
|
|
14
|
+
|
|
15
|
+
The API supports two authentication modes:
|
|
16
|
+
|
|
17
|
+
### JWT Authentication (Recommended)
|
|
18
|
+
|
|
19
|
+
When JWT authentication is enabled (default):
|
|
20
|
+
|
|
21
|
+
1. Obtain a JWT token by calling POST /api/login with your credentials
|
|
22
|
+
2. Include the token in subsequent requests using the Authorization header:
|
|
23
|
+
`Authorization: Bearer <your_token>`
|
|
24
|
+
|
|
25
|
+
### Basic Authentication (When JWT is Disabled)
|
|
26
|
+
|
|
27
|
+
If JWT authentication is disabled in your Orchestrator configuration:
|
|
28
|
+
|
|
29
|
+
- Add query parameters to every API request: `?login=username&password=password`
|
|
30
|
+
- Example: `/api/workflows_list?login=admin&password=mypassword&format=json`
|
|
31
|
+
|
|
32
|
+
**Note:** Check your Orchestrator configuration to determine which authentication mode is active.
|
|
33
|
+
|
|
34
|
+
## API Endpoints
|
|
35
|
+
|
|
36
|
+
The Orchestrator API provides comprehensive workflow management capabilities including:
|
|
37
|
+
- Workflow management and execution
|
|
38
|
+
- Work order tracking and control
|
|
39
|
+
- Monitor management
|
|
40
|
+
- Queue & Task management
|
|
41
|
+
- Plugin and resource management
|
|
42
|
+
servers:
|
|
43
|
+
- url: https://159.8.70.244/aspera/orchestrator
|
|
44
|
+
description: 'Configured host: 159.8.70.244'
|
|
45
|
+
- url: https://fsff/aspera/orchestrator
|
|
46
|
+
description: 'Configured host: fsff'
|
|
47
|
+
- url: https://orchestrator.aspera-emea.com/aspera/orchestrator
|
|
48
|
+
description: 'Configured host: orchestrator.aspera-emea.com'
|
|
49
|
+
paths:
|
|
50
|
+
"/api/login":
|
|
51
|
+
post:
|
|
52
|
+
summary: Authenticate and obtain JWT token
|
|
53
|
+
tags:
|
|
54
|
+
- Authentication
|
|
55
|
+
requestBody:
|
|
56
|
+
required: true
|
|
57
|
+
content:
|
|
58
|
+
application/json:
|
|
59
|
+
schema:
|
|
60
|
+
type: object
|
|
61
|
+
required:
|
|
62
|
+
- username
|
|
63
|
+
- password
|
|
64
|
+
properties:
|
|
65
|
+
username:
|
|
66
|
+
type: string
|
|
67
|
+
description: User login name
|
|
68
|
+
password:
|
|
69
|
+
type: string
|
|
70
|
+
format: password
|
|
71
|
+
description: User password
|
|
72
|
+
responses:
|
|
73
|
+
'200':
|
|
74
|
+
description: Successfully authenticated
|
|
75
|
+
content:
|
|
76
|
+
application/json:
|
|
77
|
+
schema:
|
|
78
|
+
type: object
|
|
79
|
+
properties:
|
|
80
|
+
message:
|
|
81
|
+
type: string
|
|
82
|
+
example: Logged in successfully
|
|
83
|
+
user:
|
|
84
|
+
type: object
|
|
85
|
+
properties:
|
|
86
|
+
id:
|
|
87
|
+
type: integer
|
|
88
|
+
login:
|
|
89
|
+
type: string
|
|
90
|
+
email:
|
|
91
|
+
type: string
|
|
92
|
+
token:
|
|
93
|
+
type: string
|
|
94
|
+
description: JWT token for subsequent API calls
|
|
95
|
+
'401':
|
|
96
|
+
description: Invalid credentials
|
|
97
|
+
content:
|
|
98
|
+
application/json:
|
|
99
|
+
schema:
|
|
100
|
+
type: object
|
|
101
|
+
properties:
|
|
102
|
+
error:
|
|
103
|
+
type: string
|
|
104
|
+
example: Invalid credentials
|
|
105
|
+
'403':
|
|
106
|
+
description: Secure API auth disabled
|
|
107
|
+
content:
|
|
108
|
+
application/json:
|
|
109
|
+
schema:
|
|
110
|
+
type: object
|
|
111
|
+
properties:
|
|
112
|
+
error:
|
|
113
|
+
type: string
|
|
114
|
+
example: Secure API authentication is disabled
|
|
115
|
+
"/api/workflows_list":
|
|
116
|
+
get:
|
|
117
|
+
summary: List all workflows
|
|
118
|
+
tags:
|
|
119
|
+
- Workflows
|
|
120
|
+
security:
|
|
121
|
+
- bearerAuth: []
|
|
122
|
+
parameters:
|
|
123
|
+
- name: format
|
|
124
|
+
in: query
|
|
125
|
+
schema:
|
|
126
|
+
type: string
|
|
127
|
+
enum:
|
|
128
|
+
- xml
|
|
129
|
+
- json
|
|
130
|
+
default: json
|
|
131
|
+
description: Response format (xml or json)
|
|
132
|
+
example: json
|
|
133
|
+
responses:
|
|
134
|
+
'200':
|
|
135
|
+
description: List of workflows
|
|
136
|
+
content:
|
|
137
|
+
application/json:
|
|
138
|
+
schema:
|
|
139
|
+
type: array
|
|
140
|
+
items:
|
|
141
|
+
type: object
|
|
142
|
+
properties:
|
|
143
|
+
id:
|
|
144
|
+
type: integer
|
|
145
|
+
example: 123
|
|
146
|
+
name:
|
|
147
|
+
type: string
|
|
148
|
+
example: Video Transcoding Workflow
|
|
149
|
+
status:
|
|
150
|
+
type: string
|
|
151
|
+
example: active
|
|
152
|
+
description:
|
|
153
|
+
type: string
|
|
154
|
+
example: Converts video files to multiple formats
|
|
155
|
+
application/xml:
|
|
156
|
+
schema:
|
|
157
|
+
type: string
|
|
158
|
+
example: |
|
|
159
|
+
<?xml version="1.0"?>
|
|
160
|
+
<workflows>
|
|
161
|
+
<workflow>
|
|
162
|
+
<id>123</id>
|
|
163
|
+
<name>Video Transcoding Workflow</name>
|
|
164
|
+
</workflow>
|
|
165
|
+
</workflows>
|
|
166
|
+
'401':
|
|
167
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
168
|
+
"/api/workflows_status":
|
|
169
|
+
get:
|
|
170
|
+
summary: Get workflow status
|
|
171
|
+
tags:
|
|
172
|
+
- Workflows
|
|
173
|
+
security:
|
|
174
|
+
- bearerAuth: []
|
|
175
|
+
parameters:
|
|
176
|
+
- name: id
|
|
177
|
+
in: query
|
|
178
|
+
required: true
|
|
179
|
+
schema:
|
|
180
|
+
type: integer
|
|
181
|
+
description: Workflow ID
|
|
182
|
+
- name: format
|
|
183
|
+
in: query
|
|
184
|
+
schema:
|
|
185
|
+
type: string
|
|
186
|
+
enum:
|
|
187
|
+
- xml
|
|
188
|
+
- json
|
|
189
|
+
default: json
|
|
190
|
+
responses:
|
|
191
|
+
'200':
|
|
192
|
+
description: Workflow status information
|
|
193
|
+
'401':
|
|
194
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
195
|
+
'404':
|
|
196
|
+
description: Workflow not found
|
|
197
|
+
"/api/workflow_details":
|
|
198
|
+
get:
|
|
199
|
+
summary: Get detailed workflow information
|
|
200
|
+
tags:
|
|
201
|
+
- Workflows
|
|
202
|
+
security:
|
|
203
|
+
- bearerAuth: []
|
|
204
|
+
parameters:
|
|
205
|
+
- name: id
|
|
206
|
+
in: query
|
|
207
|
+
required: true
|
|
208
|
+
schema:
|
|
209
|
+
type: integer
|
|
210
|
+
description: Workflow ID
|
|
211
|
+
- name: format
|
|
212
|
+
in: query
|
|
213
|
+
schema:
|
|
214
|
+
type: string
|
|
215
|
+
enum:
|
|
216
|
+
- xml
|
|
217
|
+
- json
|
|
218
|
+
default: json
|
|
219
|
+
responses:
|
|
220
|
+
'200':
|
|
221
|
+
description: Detailed workflow information
|
|
222
|
+
'401':
|
|
223
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
224
|
+
'404':
|
|
225
|
+
description: Workflow not found
|
|
226
|
+
"/api/workflow_inputs_spec":
|
|
227
|
+
get:
|
|
228
|
+
summary: Get workflow input specifications
|
|
229
|
+
tags:
|
|
230
|
+
- Workflows
|
|
231
|
+
security:
|
|
232
|
+
- bearerAuth: []
|
|
233
|
+
parameters:
|
|
234
|
+
- name: id
|
|
235
|
+
in: query
|
|
236
|
+
required: true
|
|
237
|
+
schema:
|
|
238
|
+
type: integer
|
|
239
|
+
description: Workflow ID
|
|
240
|
+
- name: format
|
|
241
|
+
in: query
|
|
242
|
+
schema:
|
|
243
|
+
type: string
|
|
244
|
+
enum:
|
|
245
|
+
- xml
|
|
246
|
+
- json
|
|
247
|
+
default: json
|
|
248
|
+
responses:
|
|
249
|
+
'200':
|
|
250
|
+
description: Workflow input specifications
|
|
251
|
+
'401':
|
|
252
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
253
|
+
"/api/workflow_outputs_spec":
|
|
254
|
+
get:
|
|
255
|
+
summary: Get workflow output specifications
|
|
256
|
+
tags:
|
|
257
|
+
- Workflows
|
|
258
|
+
security:
|
|
259
|
+
- bearerAuth: []
|
|
260
|
+
parameters:
|
|
261
|
+
- name: id
|
|
262
|
+
in: query
|
|
263
|
+
required: true
|
|
264
|
+
schema:
|
|
265
|
+
type: integer
|
|
266
|
+
description: Workflow ID
|
|
267
|
+
- name: format
|
|
268
|
+
in: query
|
|
269
|
+
schema:
|
|
270
|
+
type: string
|
|
271
|
+
enum:
|
|
272
|
+
- xml
|
|
273
|
+
- json
|
|
274
|
+
default: json
|
|
275
|
+
responses:
|
|
276
|
+
'200':
|
|
277
|
+
description: Workflow output specifications
|
|
278
|
+
'401':
|
|
279
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
280
|
+
"/api/import_workflow":
|
|
281
|
+
post:
|
|
282
|
+
summary: Import a workflow
|
|
283
|
+
tags:
|
|
284
|
+
- Workflows
|
|
285
|
+
security:
|
|
286
|
+
- bearerAuth: []
|
|
287
|
+
requestBody:
|
|
288
|
+
required: true
|
|
289
|
+
content:
|
|
290
|
+
application/xml:
|
|
291
|
+
schema:
|
|
292
|
+
type: string
|
|
293
|
+
description: Workflow definition in XML format
|
|
294
|
+
example: |
|
|
295
|
+
<?xml version="1.0"?>
|
|
296
|
+
<workflow>
|
|
297
|
+
<name>My Workflow</name>
|
|
298
|
+
<description>Workflow description</description>
|
|
299
|
+
</workflow>
|
|
300
|
+
application/json:
|
|
301
|
+
schema:
|
|
302
|
+
type: object
|
|
303
|
+
required:
|
|
304
|
+
- name
|
|
305
|
+
properties:
|
|
306
|
+
name:
|
|
307
|
+
type: string
|
|
308
|
+
description: Workflow name
|
|
309
|
+
example: My Workflow
|
|
310
|
+
description:
|
|
311
|
+
type: string
|
|
312
|
+
description: Workflow description
|
|
313
|
+
example: This is a sample workflow
|
|
314
|
+
workflow_data:
|
|
315
|
+
type: object
|
|
316
|
+
description: Complete workflow definition
|
|
317
|
+
responses:
|
|
318
|
+
'200':
|
|
319
|
+
description: Workflow imported successfully
|
|
320
|
+
'400':
|
|
321
|
+
description: Invalid workflow data
|
|
322
|
+
'401':
|
|
323
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
324
|
+
"/api/find_constraints":
|
|
325
|
+
get:
|
|
326
|
+
summary: Find workflow import constraints
|
|
327
|
+
tags:
|
|
328
|
+
- Workflows
|
|
329
|
+
security:
|
|
330
|
+
- bearerAuth: []
|
|
331
|
+
responses:
|
|
332
|
+
'200':
|
|
333
|
+
description: List of constraints found
|
|
334
|
+
'401':
|
|
335
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
336
|
+
"/api/import_with_constraints":
|
|
337
|
+
post:
|
|
338
|
+
summary: Import workflow with constraint resolution
|
|
339
|
+
tags:
|
|
340
|
+
- Workflows
|
|
341
|
+
security:
|
|
342
|
+
- bearerAuth: []
|
|
343
|
+
requestBody:
|
|
344
|
+
required: true
|
|
345
|
+
content:
|
|
346
|
+
application/json:
|
|
347
|
+
schema:
|
|
348
|
+
type: object
|
|
349
|
+
required:
|
|
350
|
+
- workflow_data
|
|
351
|
+
- constraints
|
|
352
|
+
properties:
|
|
353
|
+
workflow_data:
|
|
354
|
+
type: object
|
|
355
|
+
description: Complete workflow definition to import
|
|
356
|
+
example:
|
|
357
|
+
name: My Workflow
|
|
358
|
+
description: Workflow with constraints
|
|
359
|
+
constraints:
|
|
360
|
+
type: object
|
|
361
|
+
description: Constraint resolution mappings for conflicting resources
|
|
362
|
+
example:
|
|
363
|
+
resource_pools: {}
|
|
364
|
+
queues: {}
|
|
365
|
+
monitors: {}
|
|
366
|
+
responses:
|
|
367
|
+
'200':
|
|
368
|
+
description: Workflow imported successfully
|
|
369
|
+
'400':
|
|
370
|
+
description: Invalid workflow data or constraints
|
|
371
|
+
'401':
|
|
372
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
373
|
+
"/api/publish_workflow":
|
|
374
|
+
post:
|
|
375
|
+
summary: Publish a workflow
|
|
376
|
+
tags:
|
|
377
|
+
- Workflows
|
|
378
|
+
security:
|
|
379
|
+
- bearerAuth: []
|
|
380
|
+
requestBody:
|
|
381
|
+
required: true
|
|
382
|
+
content:
|
|
383
|
+
application/json:
|
|
384
|
+
schema:
|
|
385
|
+
type: object
|
|
386
|
+
required:
|
|
387
|
+
- workflow_id
|
|
388
|
+
properties:
|
|
389
|
+
workflow_id:
|
|
390
|
+
type: integer
|
|
391
|
+
description: ID of the workflow to publish
|
|
392
|
+
example: 123
|
|
393
|
+
responses:
|
|
394
|
+
'200':
|
|
395
|
+
description: Workflow published successfully
|
|
396
|
+
'400':
|
|
397
|
+
description: Invalid workflow ID
|
|
398
|
+
'401':
|
|
399
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
400
|
+
'404':
|
|
401
|
+
description: Workflow not found
|
|
402
|
+
"/api/work_orders_list":
|
|
403
|
+
get:
|
|
404
|
+
summary: List work orders
|
|
405
|
+
tags:
|
|
406
|
+
- Work Orders
|
|
407
|
+
security:
|
|
408
|
+
- bearerAuth: []
|
|
409
|
+
parameters:
|
|
410
|
+
- name: workflow_id
|
|
411
|
+
in: query
|
|
412
|
+
schema:
|
|
413
|
+
type: integer
|
|
414
|
+
description: Filter by workflow ID
|
|
415
|
+
example: 123
|
|
416
|
+
- name: status
|
|
417
|
+
in: query
|
|
418
|
+
schema:
|
|
419
|
+
type: string
|
|
420
|
+
enum:
|
|
421
|
+
- queued
|
|
422
|
+
- running
|
|
423
|
+
- completed
|
|
424
|
+
- failed
|
|
425
|
+
- cancelled
|
|
426
|
+
description: Filter by work order status
|
|
427
|
+
example: running
|
|
428
|
+
- name: format
|
|
429
|
+
in: query
|
|
430
|
+
schema:
|
|
431
|
+
type: string
|
|
432
|
+
enum:
|
|
433
|
+
- xml
|
|
434
|
+
- json
|
|
435
|
+
default: json
|
|
436
|
+
description: Response format
|
|
437
|
+
example: json
|
|
438
|
+
responses:
|
|
439
|
+
'200':
|
|
440
|
+
description: List of work orders
|
|
441
|
+
content:
|
|
442
|
+
application/json:
|
|
443
|
+
schema:
|
|
444
|
+
type: array
|
|
445
|
+
items:
|
|
446
|
+
type: object
|
|
447
|
+
properties:
|
|
448
|
+
id:
|
|
449
|
+
type: integer
|
|
450
|
+
example: 456
|
|
451
|
+
workflow_id:
|
|
452
|
+
type: integer
|
|
453
|
+
example: 123
|
|
454
|
+
status:
|
|
455
|
+
type: string
|
|
456
|
+
example: running
|
|
457
|
+
created_at:
|
|
458
|
+
type: string
|
|
459
|
+
format: date-time
|
|
460
|
+
example: '2026-06-11T10:30:00Z'
|
|
461
|
+
progress:
|
|
462
|
+
type: integer
|
|
463
|
+
example: 75
|
|
464
|
+
'401':
|
|
465
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
466
|
+
"/api/work_order_status":
|
|
467
|
+
get:
|
|
468
|
+
summary: Get work order status
|
|
469
|
+
tags:
|
|
470
|
+
- Work Orders
|
|
471
|
+
security:
|
|
472
|
+
- bearerAuth: []
|
|
473
|
+
parameters:
|
|
474
|
+
- name: id
|
|
475
|
+
in: query
|
|
476
|
+
required: true
|
|
477
|
+
schema:
|
|
478
|
+
type: integer
|
|
479
|
+
description: Work order ID
|
|
480
|
+
- name: format
|
|
481
|
+
in: query
|
|
482
|
+
schema:
|
|
483
|
+
type: string
|
|
484
|
+
enum:
|
|
485
|
+
- xml
|
|
486
|
+
- json
|
|
487
|
+
default: json
|
|
488
|
+
responses:
|
|
489
|
+
'200':
|
|
490
|
+
description: Work order status
|
|
491
|
+
'401':
|
|
492
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
493
|
+
'404':
|
|
494
|
+
description: Work order not found
|
|
495
|
+
"/api/work_order_output":
|
|
496
|
+
get:
|
|
497
|
+
summary: Get work order output
|
|
498
|
+
tags:
|
|
499
|
+
- Work Orders
|
|
500
|
+
security:
|
|
501
|
+
- bearerAuth: []
|
|
502
|
+
parameters:
|
|
503
|
+
- name: id
|
|
504
|
+
in: query
|
|
505
|
+
required: true
|
|
506
|
+
schema:
|
|
507
|
+
type: integer
|
|
508
|
+
description: Work order ID
|
|
509
|
+
responses:
|
|
510
|
+
'200':
|
|
511
|
+
description: Work order output data
|
|
512
|
+
'401':
|
|
513
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
514
|
+
"/api/work_order_cancel":
|
|
515
|
+
get:
|
|
516
|
+
summary: Cancel a work order
|
|
517
|
+
tags:
|
|
518
|
+
- Work Orders
|
|
519
|
+
security:
|
|
520
|
+
- bearerAuth: []
|
|
521
|
+
parameters:
|
|
522
|
+
- name: id
|
|
523
|
+
in: query
|
|
524
|
+
required: true
|
|
525
|
+
schema:
|
|
526
|
+
type: integer
|
|
527
|
+
description: Work order ID
|
|
528
|
+
responses:
|
|
529
|
+
'200':
|
|
530
|
+
description: Work order cancelled successfully
|
|
531
|
+
'401':
|
|
532
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
533
|
+
'404':
|
|
534
|
+
description: Work order not found
|
|
535
|
+
"/api/work_order_reset":
|
|
536
|
+
get:
|
|
537
|
+
summary: Reset a work order
|
|
538
|
+
tags:
|
|
539
|
+
- Work Orders
|
|
540
|
+
security:
|
|
541
|
+
- bearerAuth: []
|
|
542
|
+
parameters:
|
|
543
|
+
- name: id
|
|
544
|
+
in: query
|
|
545
|
+
required: true
|
|
546
|
+
schema:
|
|
547
|
+
type: integer
|
|
548
|
+
description: Work order ID
|
|
549
|
+
responses:
|
|
550
|
+
'200':
|
|
551
|
+
description: Work order reset successfully
|
|
552
|
+
'401':
|
|
553
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
554
|
+
'404':
|
|
555
|
+
description: Work order not found
|
|
556
|
+
"/api/work_order_destroy":
|
|
557
|
+
get:
|
|
558
|
+
summary: Destroy a work order
|
|
559
|
+
tags:
|
|
560
|
+
- Work Orders
|
|
561
|
+
security:
|
|
562
|
+
- bearerAuth: []
|
|
563
|
+
parameters:
|
|
564
|
+
- name: id
|
|
565
|
+
in: query
|
|
566
|
+
required: true
|
|
567
|
+
schema:
|
|
568
|
+
type: integer
|
|
569
|
+
description: Work order ID
|
|
570
|
+
responses:
|
|
571
|
+
'200':
|
|
572
|
+
description: Work order destroyed successfully
|
|
573
|
+
'401':
|
|
574
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
575
|
+
"/api/initiate":
|
|
576
|
+
post:
|
|
577
|
+
summary: Initiate a new work order
|
|
578
|
+
description: |
|
|
579
|
+
Starts a new work order for the specified workflow.
|
|
580
|
+
|
|
581
|
+
**Important:** The `parameters` object should contain workflow-specific input values.
|
|
582
|
+
To discover what parameters a workflow accepts, call `/api/workflow_inputs_spec?id={workflow_id}` first.
|
|
583
|
+
tags:
|
|
584
|
+
- Work Orders
|
|
585
|
+
security:
|
|
586
|
+
- bearerAuth: []
|
|
587
|
+
requestBody:
|
|
588
|
+
required: true
|
|
589
|
+
content:
|
|
590
|
+
application/json:
|
|
591
|
+
schema:
|
|
592
|
+
type: object
|
|
593
|
+
required:
|
|
594
|
+
- workflow_id
|
|
595
|
+
properties:
|
|
596
|
+
workflow_id:
|
|
597
|
+
type: integer
|
|
598
|
+
description: ID of the workflow to execute
|
|
599
|
+
example: 123
|
|
600
|
+
parameters:
|
|
601
|
+
type: object
|
|
602
|
+
description: |
|
|
603
|
+
Input parameters for the workflow (key-value pairs).
|
|
604
|
+
Valid keys are defined by the workflow's input specification.
|
|
605
|
+
Use `/api/workflow_inputs_spec?id={workflow_id}` to discover required parameters.
|
|
606
|
+
additionalProperties: true
|
|
607
|
+
example:
|
|
608
|
+
input_file: "/path/to/source/video.mp4"
|
|
609
|
+
output_format: mp4
|
|
610
|
+
quality: high
|
|
611
|
+
bitrate: 5000k
|
|
612
|
+
responses:
|
|
613
|
+
'200':
|
|
614
|
+
description: Work order initiated successfully
|
|
615
|
+
content:
|
|
616
|
+
application/json:
|
|
617
|
+
schema:
|
|
618
|
+
type: object
|
|
619
|
+
properties:
|
|
620
|
+
work_order_id:
|
|
621
|
+
type: integer
|
|
622
|
+
description: ID of the newly created work order
|
|
623
|
+
example: 456
|
|
624
|
+
status:
|
|
625
|
+
type: string
|
|
626
|
+
description: Initial status of the work order
|
|
627
|
+
example: queued
|
|
628
|
+
enum:
|
|
629
|
+
- queued
|
|
630
|
+
- running
|
|
631
|
+
example:
|
|
632
|
+
work_order_id: 456
|
|
633
|
+
status: queued
|
|
634
|
+
'400':
|
|
635
|
+
description: Invalid request or missing required workflow parameters
|
|
636
|
+
content:
|
|
637
|
+
application/json:
|
|
638
|
+
schema:
|
|
639
|
+
type: object
|
|
640
|
+
properties:
|
|
641
|
+
error:
|
|
642
|
+
type: string
|
|
643
|
+
example: 'Missing required parameter: input_file'
|
|
644
|
+
'401':
|
|
645
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
646
|
+
'404':
|
|
647
|
+
description: Workflow not found
|
|
648
|
+
content:
|
|
649
|
+
application/json:
|
|
650
|
+
schema:
|
|
651
|
+
type: object
|
|
652
|
+
properties:
|
|
653
|
+
error:
|
|
654
|
+
type: string
|
|
655
|
+
example: Workflow with ID 123 not found
|
|
656
|
+
"/api/work_step_status":
|
|
657
|
+
get:
|
|
658
|
+
summary: Get work step status
|
|
659
|
+
tags:
|
|
660
|
+
- Work Steps
|
|
661
|
+
security:
|
|
662
|
+
- bearerAuth: []
|
|
663
|
+
parameters:
|
|
664
|
+
- name: id
|
|
665
|
+
in: query
|
|
666
|
+
required: true
|
|
667
|
+
schema:
|
|
668
|
+
type: integer
|
|
669
|
+
description: Work step ID
|
|
670
|
+
- name: format
|
|
671
|
+
in: query
|
|
672
|
+
schema:
|
|
673
|
+
type: string
|
|
674
|
+
enum:
|
|
675
|
+
- xml
|
|
676
|
+
- json
|
|
677
|
+
default: json
|
|
678
|
+
responses:
|
|
679
|
+
'200':
|
|
680
|
+
description: Work step status
|
|
681
|
+
'401':
|
|
682
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
683
|
+
"/api/work_step_cancel":
|
|
684
|
+
get:
|
|
685
|
+
summary: Cancel a work step
|
|
686
|
+
tags:
|
|
687
|
+
- Work Steps
|
|
688
|
+
security:
|
|
689
|
+
- bearerAuth: []
|
|
690
|
+
parameters:
|
|
691
|
+
- name: id
|
|
692
|
+
in: query
|
|
693
|
+
required: true
|
|
694
|
+
schema:
|
|
695
|
+
type: integer
|
|
696
|
+
description: Work step ID
|
|
697
|
+
responses:
|
|
698
|
+
'200':
|
|
699
|
+
description: Work step cancelled successfully
|
|
700
|
+
'401':
|
|
701
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
702
|
+
"/api/workstep_reset":
|
|
703
|
+
get:
|
|
704
|
+
summary: Reset a work step
|
|
705
|
+
tags:
|
|
706
|
+
- Work Steps
|
|
707
|
+
security:
|
|
708
|
+
- bearerAuth: []
|
|
709
|
+
parameters:
|
|
710
|
+
- name: id
|
|
711
|
+
in: query
|
|
712
|
+
required: true
|
|
713
|
+
schema:
|
|
714
|
+
type: integer
|
|
715
|
+
description: Work step ID
|
|
716
|
+
responses:
|
|
717
|
+
'200':
|
|
718
|
+
description: Work step reset successfully
|
|
719
|
+
'401':
|
|
720
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
721
|
+
"/api/queued_items":
|
|
722
|
+
get:
|
|
723
|
+
summary: List queued items
|
|
724
|
+
tags:
|
|
725
|
+
- Queues
|
|
726
|
+
security:
|
|
727
|
+
- bearerAuth: []
|
|
728
|
+
parameters:
|
|
729
|
+
- name: queue_id
|
|
730
|
+
in: query
|
|
731
|
+
schema:
|
|
732
|
+
type: integer
|
|
733
|
+
description: Filter by queue ID
|
|
734
|
+
- name: format
|
|
735
|
+
in: query
|
|
736
|
+
schema:
|
|
737
|
+
type: string
|
|
738
|
+
enum:
|
|
739
|
+
- xml
|
|
740
|
+
- json
|
|
741
|
+
default: json
|
|
742
|
+
responses:
|
|
743
|
+
'200':
|
|
744
|
+
description: List of queued items
|
|
745
|
+
'401':
|
|
746
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
747
|
+
"/api/queues_list":
|
|
748
|
+
get:
|
|
749
|
+
summary: List all queues
|
|
750
|
+
tags:
|
|
751
|
+
- Queues
|
|
752
|
+
security:
|
|
753
|
+
- bearerAuth: []
|
|
754
|
+
parameters:
|
|
755
|
+
- name: format
|
|
756
|
+
in: query
|
|
757
|
+
schema:
|
|
758
|
+
type: string
|
|
759
|
+
enum:
|
|
760
|
+
- xml
|
|
761
|
+
- json
|
|
762
|
+
default: json
|
|
763
|
+
responses:
|
|
764
|
+
'200':
|
|
765
|
+
description: List of queues
|
|
766
|
+
'401':
|
|
767
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
768
|
+
"/api/queue_item":
|
|
769
|
+
get:
|
|
770
|
+
summary: Add item to queue
|
|
771
|
+
tags:
|
|
772
|
+
- Queues
|
|
773
|
+
security:
|
|
774
|
+
- bearerAuth: []
|
|
775
|
+
parameters:
|
|
776
|
+
- name: queue_id
|
|
777
|
+
in: query
|
|
778
|
+
required: true
|
|
779
|
+
schema:
|
|
780
|
+
type: integer
|
|
781
|
+
responses:
|
|
782
|
+
'200':
|
|
783
|
+
description: Item queued successfully
|
|
784
|
+
'401':
|
|
785
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
786
|
+
"/api/lookup_queued_item":
|
|
787
|
+
get:
|
|
788
|
+
summary: Lookup a specific queued item
|
|
789
|
+
tags:
|
|
790
|
+
- Queues
|
|
791
|
+
security:
|
|
792
|
+
- bearerAuth: []
|
|
793
|
+
parameters:
|
|
794
|
+
- name: id
|
|
795
|
+
in: query
|
|
796
|
+
required: true
|
|
797
|
+
schema:
|
|
798
|
+
type: integer
|
|
799
|
+
description: Queued item ID
|
|
800
|
+
responses:
|
|
801
|
+
'200':
|
|
802
|
+
description: Queued item details
|
|
803
|
+
'401':
|
|
804
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
805
|
+
"/api/reorder_queued_item":
|
|
806
|
+
get:
|
|
807
|
+
summary: Reorder a queued item
|
|
808
|
+
tags:
|
|
809
|
+
- Queues
|
|
810
|
+
security:
|
|
811
|
+
- bearerAuth: []
|
|
812
|
+
parameters:
|
|
813
|
+
- name: id
|
|
814
|
+
in: query
|
|
815
|
+
required: true
|
|
816
|
+
schema:
|
|
817
|
+
type: integer
|
|
818
|
+
description: Queued item ID
|
|
819
|
+
- name: position
|
|
820
|
+
in: query
|
|
821
|
+
required: true
|
|
822
|
+
schema:
|
|
823
|
+
type: integer
|
|
824
|
+
description: New position in queue
|
|
825
|
+
responses:
|
|
826
|
+
'200':
|
|
827
|
+
description: Item reordered successfully
|
|
828
|
+
'401':
|
|
829
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
830
|
+
"/api/bulk_reorder_queue":
|
|
831
|
+
get:
|
|
832
|
+
summary: Bulk reorder queue items
|
|
833
|
+
tags:
|
|
834
|
+
- Queues
|
|
835
|
+
security:
|
|
836
|
+
- bearerAuth: []
|
|
837
|
+
parameters:
|
|
838
|
+
- name: queue_id
|
|
839
|
+
in: query
|
|
840
|
+
required: true
|
|
841
|
+
schema:
|
|
842
|
+
type: integer
|
|
843
|
+
responses:
|
|
844
|
+
'200':
|
|
845
|
+
description: Queue reordered successfully
|
|
846
|
+
'401':
|
|
847
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
848
|
+
"/api/delete_queued_item":
|
|
849
|
+
get:
|
|
850
|
+
summary: Delete a queued item
|
|
851
|
+
tags:
|
|
852
|
+
- Queues
|
|
853
|
+
security:
|
|
854
|
+
- bearerAuth: []
|
|
855
|
+
parameters:
|
|
856
|
+
- name: id
|
|
857
|
+
in: query
|
|
858
|
+
required: true
|
|
859
|
+
schema:
|
|
860
|
+
type: integer
|
|
861
|
+
description: Queued item ID
|
|
862
|
+
responses:
|
|
863
|
+
'200':
|
|
864
|
+
description: Item deleted successfully
|
|
865
|
+
'401':
|
|
866
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
867
|
+
"/api/monitor_snapshot":
|
|
868
|
+
get:
|
|
869
|
+
summary: Get monitor snapshot
|
|
870
|
+
tags:
|
|
871
|
+
- Monitors
|
|
872
|
+
security:
|
|
873
|
+
- bearerAuth: []
|
|
874
|
+
parameters:
|
|
875
|
+
- name: id
|
|
876
|
+
in: query
|
|
877
|
+
required: true
|
|
878
|
+
schema:
|
|
879
|
+
type: integer
|
|
880
|
+
description: Monitor ID
|
|
881
|
+
- name: format
|
|
882
|
+
in: query
|
|
883
|
+
schema:
|
|
884
|
+
type: string
|
|
885
|
+
enum:
|
|
886
|
+
- xml
|
|
887
|
+
- json
|
|
888
|
+
default: json
|
|
889
|
+
responses:
|
|
890
|
+
'200':
|
|
891
|
+
description: Monitor snapshot data
|
|
892
|
+
'401':
|
|
893
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
894
|
+
'404':
|
|
895
|
+
description: Monitor not found
|
|
896
|
+
"/api/list_monitors":
|
|
897
|
+
get:
|
|
898
|
+
summary: List all monitors
|
|
899
|
+
tags:
|
|
900
|
+
- Monitors
|
|
901
|
+
security:
|
|
902
|
+
- bearerAuth: []
|
|
903
|
+
parameters:
|
|
904
|
+
- name: format
|
|
905
|
+
in: query
|
|
906
|
+
schema:
|
|
907
|
+
type: string
|
|
908
|
+
enum:
|
|
909
|
+
- xml
|
|
910
|
+
- json
|
|
911
|
+
default: json
|
|
912
|
+
responses:
|
|
913
|
+
'200':
|
|
914
|
+
description: List of monitors
|
|
915
|
+
'401':
|
|
916
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
917
|
+
"/api/activate_monitor":
|
|
918
|
+
get:
|
|
919
|
+
summary: Activate a monitor
|
|
920
|
+
tags:
|
|
921
|
+
- Monitors
|
|
922
|
+
security:
|
|
923
|
+
- bearerAuth: []
|
|
924
|
+
parameters:
|
|
925
|
+
- name: id
|
|
926
|
+
in: query
|
|
927
|
+
required: true
|
|
928
|
+
schema:
|
|
929
|
+
type: integer
|
|
930
|
+
description: Monitor ID
|
|
931
|
+
responses:
|
|
932
|
+
'200':
|
|
933
|
+
description: Monitor activated successfully
|
|
934
|
+
'401':
|
|
935
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
936
|
+
'404':
|
|
937
|
+
description: Monitor not found
|
|
938
|
+
"/api/deactivate_monitor":
|
|
939
|
+
get:
|
|
940
|
+
summary: Deactivate a monitor
|
|
941
|
+
tags:
|
|
942
|
+
- Monitors
|
|
943
|
+
security:
|
|
944
|
+
- bearerAuth: []
|
|
945
|
+
parameters:
|
|
946
|
+
- name: id
|
|
947
|
+
in: query
|
|
948
|
+
required: true
|
|
949
|
+
schema:
|
|
950
|
+
type: integer
|
|
951
|
+
description: Monitor ID
|
|
952
|
+
responses:
|
|
953
|
+
'200':
|
|
954
|
+
description: Monitor deactivated successfully
|
|
955
|
+
'401':
|
|
956
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
957
|
+
'404':
|
|
958
|
+
description: Monitor not found
|
|
959
|
+
"/api/list_tasks":
|
|
960
|
+
get:
|
|
961
|
+
summary: List available tasks
|
|
962
|
+
tags:
|
|
963
|
+
- Tasks
|
|
964
|
+
security:
|
|
965
|
+
- bearerAuth: []
|
|
966
|
+
parameters:
|
|
967
|
+
- name: format
|
|
968
|
+
in: query
|
|
969
|
+
schema:
|
|
970
|
+
type: string
|
|
971
|
+
enum:
|
|
972
|
+
- xml
|
|
973
|
+
- json
|
|
974
|
+
default: json
|
|
975
|
+
responses:
|
|
976
|
+
'200':
|
|
977
|
+
description: List of tasks
|
|
978
|
+
'401':
|
|
979
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
980
|
+
"/api/task_details":
|
|
981
|
+
get:
|
|
982
|
+
summary: Get task details
|
|
983
|
+
tags:
|
|
984
|
+
- Tasks
|
|
985
|
+
security:
|
|
986
|
+
- bearerAuth: []
|
|
987
|
+
parameters:
|
|
988
|
+
- name: id
|
|
989
|
+
in: query
|
|
990
|
+
required: true
|
|
991
|
+
schema:
|
|
992
|
+
type: integer
|
|
993
|
+
description: Task ID
|
|
994
|
+
responses:
|
|
995
|
+
'200':
|
|
996
|
+
description: Task details
|
|
997
|
+
'401':
|
|
998
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
999
|
+
"/api/submit_task":
|
|
1000
|
+
get:
|
|
1001
|
+
summary: Submit a task for execution
|
|
1002
|
+
tags:
|
|
1003
|
+
- Tasks
|
|
1004
|
+
security:
|
|
1005
|
+
- bearerAuth: []
|
|
1006
|
+
parameters:
|
|
1007
|
+
- name: task_id
|
|
1008
|
+
in: query
|
|
1009
|
+
required: true
|
|
1010
|
+
schema:
|
|
1011
|
+
type: integer
|
|
1012
|
+
responses:
|
|
1013
|
+
'200':
|
|
1014
|
+
description: Task submitted successfully
|
|
1015
|
+
'401':
|
|
1016
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1017
|
+
"/api/search_tasks":
|
|
1018
|
+
get:
|
|
1019
|
+
summary: Search for tasks
|
|
1020
|
+
tags:
|
|
1021
|
+
- Tasks
|
|
1022
|
+
security:
|
|
1023
|
+
- bearerAuth: []
|
|
1024
|
+
parameters:
|
|
1025
|
+
- name: query
|
|
1026
|
+
in: query
|
|
1027
|
+
required: true
|
|
1028
|
+
schema:
|
|
1029
|
+
type: string
|
|
1030
|
+
responses:
|
|
1031
|
+
'200':
|
|
1032
|
+
description: Search results
|
|
1033
|
+
'401':
|
|
1034
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1035
|
+
"/api/plugin_version":
|
|
1036
|
+
get:
|
|
1037
|
+
summary: Get plugin version information
|
|
1038
|
+
tags:
|
|
1039
|
+
- Plugins
|
|
1040
|
+
security:
|
|
1041
|
+
- bearerAuth: []
|
|
1042
|
+
parameters:
|
|
1043
|
+
- name: plugin_name
|
|
1044
|
+
in: query
|
|
1045
|
+
required: true
|
|
1046
|
+
schema:
|
|
1047
|
+
type: string
|
|
1048
|
+
description: Plugin name
|
|
1049
|
+
responses:
|
|
1050
|
+
'200':
|
|
1051
|
+
description: Plugin version information
|
|
1052
|
+
'401':
|
|
1053
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1054
|
+
'404':
|
|
1055
|
+
description: Plugin not found
|
|
1056
|
+
"/api/reload_plugin":
|
|
1057
|
+
get:
|
|
1058
|
+
summary: Reload a plugin
|
|
1059
|
+
tags:
|
|
1060
|
+
- Plugins
|
|
1061
|
+
security:
|
|
1062
|
+
- bearerAuth: []
|
|
1063
|
+
parameters:
|
|
1064
|
+
- name: plugin_name
|
|
1065
|
+
in: query
|
|
1066
|
+
required: true
|
|
1067
|
+
schema:
|
|
1068
|
+
type: string
|
|
1069
|
+
description: Plugin name
|
|
1070
|
+
responses:
|
|
1071
|
+
'200':
|
|
1072
|
+
description: Plugin reloaded successfully
|
|
1073
|
+
'401':
|
|
1074
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1075
|
+
'404':
|
|
1076
|
+
description: Plugin not found
|
|
1077
|
+
"/api/reload_plugin_set":
|
|
1078
|
+
post:
|
|
1079
|
+
summary: Reload a set of plugins
|
|
1080
|
+
tags:
|
|
1081
|
+
- Plugins
|
|
1082
|
+
security:
|
|
1083
|
+
- bearerAuth: []
|
|
1084
|
+
requestBody:
|
|
1085
|
+
required: true
|
|
1086
|
+
content:
|
|
1087
|
+
application/json:
|
|
1088
|
+
schema:
|
|
1089
|
+
type: object
|
|
1090
|
+
required:
|
|
1091
|
+
- plugin_names
|
|
1092
|
+
properties:
|
|
1093
|
+
plugin_names:
|
|
1094
|
+
type: array
|
|
1095
|
+
description: List of plugin names to reload
|
|
1096
|
+
items:
|
|
1097
|
+
type: string
|
|
1098
|
+
example:
|
|
1099
|
+
- soap_requests
|
|
1100
|
+
- frameio_operations
|
|
1101
|
+
responses:
|
|
1102
|
+
'200':
|
|
1103
|
+
description: Plugins reloaded successfully
|
|
1104
|
+
'400':
|
|
1105
|
+
description: Invalid plugin names
|
|
1106
|
+
'401':
|
|
1107
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1108
|
+
"/api/enable_plugin":
|
|
1109
|
+
post:
|
|
1110
|
+
summary: Enable a plugin
|
|
1111
|
+
tags:
|
|
1112
|
+
- Plugins
|
|
1113
|
+
security:
|
|
1114
|
+
- bearerAuth: []
|
|
1115
|
+
requestBody:
|
|
1116
|
+
required: true
|
|
1117
|
+
content:
|
|
1118
|
+
application/json:
|
|
1119
|
+
schema:
|
|
1120
|
+
type: object
|
|
1121
|
+
required:
|
|
1122
|
+
- plugin_name
|
|
1123
|
+
properties:
|
|
1124
|
+
plugin_name:
|
|
1125
|
+
type: string
|
|
1126
|
+
description: Name of the plugin to enable
|
|
1127
|
+
example: soap_requests
|
|
1128
|
+
responses:
|
|
1129
|
+
'200':
|
|
1130
|
+
description: Plugin enabled successfully
|
|
1131
|
+
'400':
|
|
1132
|
+
description: Invalid plugin name
|
|
1133
|
+
'401':
|
|
1134
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1135
|
+
'404':
|
|
1136
|
+
description: Plugin not found
|
|
1137
|
+
"/api/import_plugin":
|
|
1138
|
+
post:
|
|
1139
|
+
summary: Import a plugin
|
|
1140
|
+
tags:
|
|
1141
|
+
- Plugins
|
|
1142
|
+
security:
|
|
1143
|
+
- bearerAuth: []
|
|
1144
|
+
requestBody:
|
|
1145
|
+
required: true
|
|
1146
|
+
content:
|
|
1147
|
+
multipart/form-data:
|
|
1148
|
+
schema:
|
|
1149
|
+
type: object
|
|
1150
|
+
required:
|
|
1151
|
+
- plugin_file
|
|
1152
|
+
properties:
|
|
1153
|
+
plugin_file:
|
|
1154
|
+
type: string
|
|
1155
|
+
format: binary
|
|
1156
|
+
description: Plugin archive file (zip or tar.gz)
|
|
1157
|
+
responses:
|
|
1158
|
+
'200':
|
|
1159
|
+
description: Plugin imported successfully
|
|
1160
|
+
'400':
|
|
1161
|
+
description: Invalid plugin file
|
|
1162
|
+
'401':
|
|
1163
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1164
|
+
"/api/portlet_version":
|
|
1165
|
+
get:
|
|
1166
|
+
summary: Get portlet version information
|
|
1167
|
+
tags:
|
|
1168
|
+
- Portlets
|
|
1169
|
+
security:
|
|
1170
|
+
- bearerAuth: []
|
|
1171
|
+
parameters:
|
|
1172
|
+
- name: portlet_name
|
|
1173
|
+
in: query
|
|
1174
|
+
required: true
|
|
1175
|
+
schema:
|
|
1176
|
+
type: string
|
|
1177
|
+
description: Portlet name
|
|
1178
|
+
responses:
|
|
1179
|
+
'200':
|
|
1180
|
+
description: Portlet version information
|
|
1181
|
+
'401':
|
|
1182
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1183
|
+
"/api/processes_status":
|
|
1184
|
+
get:
|
|
1185
|
+
summary: Get process status information
|
|
1186
|
+
tags:
|
|
1187
|
+
- System
|
|
1188
|
+
security:
|
|
1189
|
+
- bearerAuth: []
|
|
1190
|
+
parameters:
|
|
1191
|
+
- name: format
|
|
1192
|
+
in: query
|
|
1193
|
+
schema:
|
|
1194
|
+
type: string
|
|
1195
|
+
enum:
|
|
1196
|
+
- xml
|
|
1197
|
+
- json
|
|
1198
|
+
default: json
|
|
1199
|
+
responses:
|
|
1200
|
+
'200':
|
|
1201
|
+
description: Process status information
|
|
1202
|
+
'401':
|
|
1203
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1204
|
+
"/api/control_process":
|
|
1205
|
+
get:
|
|
1206
|
+
summary: Control orchestrator processes
|
|
1207
|
+
tags:
|
|
1208
|
+
- System
|
|
1209
|
+
security:
|
|
1210
|
+
- bearerAuth: []
|
|
1211
|
+
parameters:
|
|
1212
|
+
- name: action
|
|
1213
|
+
in: query
|
|
1214
|
+
required: true
|
|
1215
|
+
schema:
|
|
1216
|
+
type: string
|
|
1217
|
+
enum:
|
|
1218
|
+
- start
|
|
1219
|
+
- stop
|
|
1220
|
+
- restart
|
|
1221
|
+
- status
|
|
1222
|
+
responses:
|
|
1223
|
+
'200':
|
|
1224
|
+
description: Process control command executed
|
|
1225
|
+
'401':
|
|
1226
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1227
|
+
"/api/custom_api_call":
|
|
1228
|
+
get:
|
|
1229
|
+
summary: Execute custom API call
|
|
1230
|
+
tags:
|
|
1231
|
+
- System
|
|
1232
|
+
security:
|
|
1233
|
+
- bearerAuth: []
|
|
1234
|
+
parameters:
|
|
1235
|
+
- name: call_name
|
|
1236
|
+
in: query
|
|
1237
|
+
required: true
|
|
1238
|
+
schema:
|
|
1239
|
+
type: string
|
|
1240
|
+
responses:
|
|
1241
|
+
'200':
|
|
1242
|
+
description: Custom call executed
|
|
1243
|
+
'401':
|
|
1244
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1245
|
+
"/api/execution_queue_stats":
|
|
1246
|
+
get:
|
|
1247
|
+
summary: Get execution queue statistics
|
|
1248
|
+
tags:
|
|
1249
|
+
- System
|
|
1250
|
+
security:
|
|
1251
|
+
- bearerAuth: []
|
|
1252
|
+
responses:
|
|
1253
|
+
'200':
|
|
1254
|
+
description: Queue statistics
|
|
1255
|
+
'401':
|
|
1256
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1257
|
+
"/api/alerts":
|
|
1258
|
+
get:
|
|
1259
|
+
summary: Get system alerts
|
|
1260
|
+
tags:
|
|
1261
|
+
- System
|
|
1262
|
+
security:
|
|
1263
|
+
- bearerAuth: []
|
|
1264
|
+
responses:
|
|
1265
|
+
'200':
|
|
1266
|
+
description: List of alerts
|
|
1267
|
+
'401':
|
|
1268
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1269
|
+
"/api/remote_node_ping":
|
|
1270
|
+
get:
|
|
1271
|
+
summary: Ping a remote node
|
|
1272
|
+
tags:
|
|
1273
|
+
- Remote Nodes
|
|
1274
|
+
security:
|
|
1275
|
+
- bearerAuth: []
|
|
1276
|
+
parameters:
|
|
1277
|
+
- name: id
|
|
1278
|
+
in: query
|
|
1279
|
+
required: true
|
|
1280
|
+
schema:
|
|
1281
|
+
type: integer
|
|
1282
|
+
description: Remote node ID
|
|
1283
|
+
responses:
|
|
1284
|
+
'200':
|
|
1285
|
+
description: Ping successful
|
|
1286
|
+
'401':
|
|
1287
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1288
|
+
'404':
|
|
1289
|
+
description: Remote node not found
|
|
1290
|
+
"/api/test_step":
|
|
1291
|
+
get:
|
|
1292
|
+
summary: Test a workflow step
|
|
1293
|
+
tags:
|
|
1294
|
+
- Testing
|
|
1295
|
+
security:
|
|
1296
|
+
- bearerAuth: []
|
|
1297
|
+
parameters:
|
|
1298
|
+
- name: step_id
|
|
1299
|
+
in: query
|
|
1300
|
+
required: true
|
|
1301
|
+
schema:
|
|
1302
|
+
type: integer
|
|
1303
|
+
responses:
|
|
1304
|
+
'200':
|
|
1305
|
+
description: Test initiated
|
|
1306
|
+
'401':
|
|
1307
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1308
|
+
"/api/test_step_status":
|
|
1309
|
+
get:
|
|
1310
|
+
summary: Get test step status
|
|
1311
|
+
tags:
|
|
1312
|
+
- Testing
|
|
1313
|
+
security:
|
|
1314
|
+
- bearerAuth: []
|
|
1315
|
+
parameters:
|
|
1316
|
+
- name: test_id
|
|
1317
|
+
in: query
|
|
1318
|
+
required: true
|
|
1319
|
+
schema:
|
|
1320
|
+
type: integer
|
|
1321
|
+
responses:
|
|
1322
|
+
'200':
|
|
1323
|
+
description: Test status
|
|
1324
|
+
'401':
|
|
1325
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1326
|
+
"/api/work_order_stats":
|
|
1327
|
+
get:
|
|
1328
|
+
summary: Get work order statistics
|
|
1329
|
+
tags:
|
|
1330
|
+
- Statistics
|
|
1331
|
+
security:
|
|
1332
|
+
- bearerAuth: []
|
|
1333
|
+
parameters:
|
|
1334
|
+
- name: workflow_id
|
|
1335
|
+
in: query
|
|
1336
|
+
schema:
|
|
1337
|
+
type: integer
|
|
1338
|
+
responses:
|
|
1339
|
+
'200':
|
|
1340
|
+
description: Work order statistics
|
|
1341
|
+
'401':
|
|
1342
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1343
|
+
"/api/work_step_stats":
|
|
1344
|
+
get:
|
|
1345
|
+
summary: Get work step statistics
|
|
1346
|
+
tags:
|
|
1347
|
+
- Statistics
|
|
1348
|
+
security:
|
|
1349
|
+
- bearerAuth: []
|
|
1350
|
+
parameters:
|
|
1351
|
+
- name: workflow_id
|
|
1352
|
+
in: query
|
|
1353
|
+
schema:
|
|
1354
|
+
type: integer
|
|
1355
|
+
responses:
|
|
1356
|
+
'200':
|
|
1357
|
+
description: Work step statistics
|
|
1358
|
+
'401':
|
|
1359
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1360
|
+
"/api/journal_files":
|
|
1361
|
+
get:
|
|
1362
|
+
summary: Get journal files
|
|
1363
|
+
tags:
|
|
1364
|
+
- Journals
|
|
1365
|
+
security:
|
|
1366
|
+
- bearerAuth: []
|
|
1367
|
+
parameters:
|
|
1368
|
+
- name: work_order_id
|
|
1369
|
+
in: query
|
|
1370
|
+
schema:
|
|
1371
|
+
type: integer
|
|
1372
|
+
responses:
|
|
1373
|
+
'200':
|
|
1374
|
+
description: List of journal files
|
|
1375
|
+
'401':
|
|
1376
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1377
|
+
"/api/add_resource":
|
|
1378
|
+
post:
|
|
1379
|
+
summary: Add a managed resource
|
|
1380
|
+
tags:
|
|
1381
|
+
- Resources
|
|
1382
|
+
security:
|
|
1383
|
+
- bearerAuth: []
|
|
1384
|
+
requestBody:
|
|
1385
|
+
required: true
|
|
1386
|
+
content:
|
|
1387
|
+
application/json:
|
|
1388
|
+
schema:
|
|
1389
|
+
type: object
|
|
1390
|
+
required:
|
|
1391
|
+
- pool_id
|
|
1392
|
+
- resource_name
|
|
1393
|
+
- capacity
|
|
1394
|
+
properties:
|
|
1395
|
+
pool_id:
|
|
1396
|
+
type: integer
|
|
1397
|
+
description: ID of the resource pool
|
|
1398
|
+
example: 1
|
|
1399
|
+
resource_name:
|
|
1400
|
+
type: string
|
|
1401
|
+
description: Name of the resource to add
|
|
1402
|
+
example: encoder-01
|
|
1403
|
+
capacity:
|
|
1404
|
+
type: integer
|
|
1405
|
+
description: Resource capacity (number of concurrent jobs)
|
|
1406
|
+
example: 5
|
|
1407
|
+
minimum: 0
|
|
1408
|
+
responses:
|
|
1409
|
+
'200':
|
|
1410
|
+
description: Resource added successfully
|
|
1411
|
+
'400':
|
|
1412
|
+
description: Invalid resource data
|
|
1413
|
+
'401':
|
|
1414
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1415
|
+
'404':
|
|
1416
|
+
description: Resource pool not found
|
|
1417
|
+
"/api/edit_resource_capacity":
|
|
1418
|
+
post:
|
|
1419
|
+
summary: Edit resource capacity
|
|
1420
|
+
tags:
|
|
1421
|
+
- Resources
|
|
1422
|
+
security:
|
|
1423
|
+
- bearerAuth: []
|
|
1424
|
+
requestBody:
|
|
1425
|
+
required: true
|
|
1426
|
+
content:
|
|
1427
|
+
application/json:
|
|
1428
|
+
schema:
|
|
1429
|
+
type: object
|
|
1430
|
+
required:
|
|
1431
|
+
- resource_id
|
|
1432
|
+
- capacity
|
|
1433
|
+
properties:
|
|
1434
|
+
resource_id:
|
|
1435
|
+
type: integer
|
|
1436
|
+
description: ID of the resource to modify
|
|
1437
|
+
example: 42
|
|
1438
|
+
capacity:
|
|
1439
|
+
type: integer
|
|
1440
|
+
description: New capacity value
|
|
1441
|
+
example: 10
|
|
1442
|
+
minimum: 0
|
|
1443
|
+
responses:
|
|
1444
|
+
'200':
|
|
1445
|
+
description: Resource capacity updated
|
|
1446
|
+
'400':
|
|
1447
|
+
description: Invalid capacity value
|
|
1448
|
+
'401':
|
|
1449
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1450
|
+
'404':
|
|
1451
|
+
description: Resource not found
|
|
1452
|
+
"/api/edit_pool_capacity":
|
|
1453
|
+
post:
|
|
1454
|
+
summary: Edit resource pool capacity
|
|
1455
|
+
tags:
|
|
1456
|
+
- Resources
|
|
1457
|
+
security:
|
|
1458
|
+
- bearerAuth: []
|
|
1459
|
+
requestBody:
|
|
1460
|
+
required: true
|
|
1461
|
+
content:
|
|
1462
|
+
application/json:
|
|
1463
|
+
schema:
|
|
1464
|
+
type: object
|
|
1465
|
+
required:
|
|
1466
|
+
- pool_id
|
|
1467
|
+
- capacity
|
|
1468
|
+
properties:
|
|
1469
|
+
pool_id:
|
|
1470
|
+
type: integer
|
|
1471
|
+
description: ID of the resource pool to modify
|
|
1472
|
+
example: 1
|
|
1473
|
+
capacity:
|
|
1474
|
+
type: integer
|
|
1475
|
+
description: New pool capacity value
|
|
1476
|
+
example: 20
|
|
1477
|
+
minimum: 0
|
|
1478
|
+
responses:
|
|
1479
|
+
'200':
|
|
1480
|
+
description: Pool capacity updated
|
|
1481
|
+
'400':
|
|
1482
|
+
description: Invalid capacity value
|
|
1483
|
+
'401':
|
|
1484
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1485
|
+
'404':
|
|
1486
|
+
description: Resource pool not found
|
|
1487
|
+
"/api/resource_online":
|
|
1488
|
+
post:
|
|
1489
|
+
summary: Bring resource online
|
|
1490
|
+
tags:
|
|
1491
|
+
- Resources
|
|
1492
|
+
security:
|
|
1493
|
+
- bearerAuth: []
|
|
1494
|
+
requestBody:
|
|
1495
|
+
required: true
|
|
1496
|
+
content:
|
|
1497
|
+
application/json:
|
|
1498
|
+
schema:
|
|
1499
|
+
type: object
|
|
1500
|
+
required:
|
|
1501
|
+
- resource_id
|
|
1502
|
+
properties:
|
|
1503
|
+
resource_id:
|
|
1504
|
+
type: integer
|
|
1505
|
+
description: ID of the resource to bring online
|
|
1506
|
+
example: 42
|
|
1507
|
+
responses:
|
|
1508
|
+
'200':
|
|
1509
|
+
description: Resource brought online
|
|
1510
|
+
'401':
|
|
1511
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1512
|
+
'404':
|
|
1513
|
+
description: Resource not found
|
|
1514
|
+
"/api/resource_offline":
|
|
1515
|
+
post:
|
|
1516
|
+
summary: Take resource offline
|
|
1517
|
+
tags:
|
|
1518
|
+
- Resources
|
|
1519
|
+
security:
|
|
1520
|
+
- bearerAuth: []
|
|
1521
|
+
requestBody:
|
|
1522
|
+
required: true
|
|
1523
|
+
content:
|
|
1524
|
+
application/json:
|
|
1525
|
+
schema:
|
|
1526
|
+
type: object
|
|
1527
|
+
required:
|
|
1528
|
+
- resource_id
|
|
1529
|
+
properties:
|
|
1530
|
+
resource_id:
|
|
1531
|
+
type: integer
|
|
1532
|
+
description: ID of the resource to take offline
|
|
1533
|
+
example: 42
|
|
1534
|
+
responses:
|
|
1535
|
+
'200':
|
|
1536
|
+
description: Resource taken offline
|
|
1537
|
+
'401':
|
|
1538
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1539
|
+
'404':
|
|
1540
|
+
description: Resource not found
|
|
1541
|
+
"/api/pool_status":
|
|
1542
|
+
get:
|
|
1543
|
+
summary: Get resource pool status
|
|
1544
|
+
tags:
|
|
1545
|
+
- Resources
|
|
1546
|
+
security:
|
|
1547
|
+
- bearerAuth: []
|
|
1548
|
+
parameters:
|
|
1549
|
+
- name: pool_id
|
|
1550
|
+
in: query
|
|
1551
|
+
required: true
|
|
1552
|
+
schema:
|
|
1553
|
+
type: integer
|
|
1554
|
+
responses:
|
|
1555
|
+
'200':
|
|
1556
|
+
description: Pool status information
|
|
1557
|
+
'401':
|
|
1558
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1559
|
+
"/api/export_workflow":
|
|
1560
|
+
get:
|
|
1561
|
+
summary: Export a workflow
|
|
1562
|
+
tags:
|
|
1563
|
+
- Workflows
|
|
1564
|
+
security:
|
|
1565
|
+
- bearerAuth: []
|
|
1566
|
+
parameters:
|
|
1567
|
+
- name: id
|
|
1568
|
+
in: query
|
|
1569
|
+
required: true
|
|
1570
|
+
schema:
|
|
1571
|
+
type: integer
|
|
1572
|
+
description: Workflow ID to export
|
|
1573
|
+
- name: format
|
|
1574
|
+
in: query
|
|
1575
|
+
schema:
|
|
1576
|
+
type: string
|
|
1577
|
+
enum:
|
|
1578
|
+
- xml
|
|
1579
|
+
- json
|
|
1580
|
+
- yaml
|
|
1581
|
+
default: json
|
|
1582
|
+
description: Export format
|
|
1583
|
+
responses:
|
|
1584
|
+
'200':
|
|
1585
|
+
description: Workflow exported successfully
|
|
1586
|
+
content:
|
|
1587
|
+
application/xml:
|
|
1588
|
+
schema:
|
|
1589
|
+
type: string
|
|
1590
|
+
application/json:
|
|
1591
|
+
schema:
|
|
1592
|
+
type: object
|
|
1593
|
+
'401':
|
|
1594
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1595
|
+
'404':
|
|
1596
|
+
description: Workflow not found
|
|
1597
|
+
"/api/list_by_subworkflow":
|
|
1598
|
+
get:
|
|
1599
|
+
summary: List workflows by subworkflow
|
|
1600
|
+
tags:
|
|
1601
|
+
- Workflows
|
|
1602
|
+
security:
|
|
1603
|
+
- bearerAuth: []
|
|
1604
|
+
parameters:
|
|
1605
|
+
- name: id
|
|
1606
|
+
in: query
|
|
1607
|
+
required: true
|
|
1608
|
+
schema:
|
|
1609
|
+
type: integer
|
|
1610
|
+
description: Subworkflow ID
|
|
1611
|
+
- name: format
|
|
1612
|
+
in: query
|
|
1613
|
+
schema:
|
|
1614
|
+
type: string
|
|
1615
|
+
enum:
|
|
1616
|
+
- xml
|
|
1617
|
+
- json
|
|
1618
|
+
default: json
|
|
1619
|
+
description: Response format
|
|
1620
|
+
responses:
|
|
1621
|
+
'200':
|
|
1622
|
+
description: List of parent workflows containing the subworkflow
|
|
1623
|
+
content:
|
|
1624
|
+
application/xml:
|
|
1625
|
+
schema:
|
|
1626
|
+
type: string
|
|
1627
|
+
application/json:
|
|
1628
|
+
schema:
|
|
1629
|
+
type: array
|
|
1630
|
+
items:
|
|
1631
|
+
type: object
|
|
1632
|
+
properties:
|
|
1633
|
+
id:
|
|
1634
|
+
type: integer
|
|
1635
|
+
name:
|
|
1636
|
+
type: string
|
|
1637
|
+
'401':
|
|
1638
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1639
|
+
"/api/retrieve_steps":
|
|
1640
|
+
get:
|
|
1641
|
+
summary: Retrieve steps by type
|
|
1642
|
+
tags:
|
|
1643
|
+
- Workflows
|
|
1644
|
+
security:
|
|
1645
|
+
- bearerAuth: []
|
|
1646
|
+
parameters:
|
|
1647
|
+
- name: type
|
|
1648
|
+
in: query
|
|
1649
|
+
required: true
|
|
1650
|
+
schema:
|
|
1651
|
+
type: string
|
|
1652
|
+
description: Step type to retrieve
|
|
1653
|
+
- name: format
|
|
1654
|
+
in: query
|
|
1655
|
+
schema:
|
|
1656
|
+
type: string
|
|
1657
|
+
enum:
|
|
1658
|
+
- xml
|
|
1659
|
+
- json
|
|
1660
|
+
default: json
|
|
1661
|
+
description: Response format
|
|
1662
|
+
responses:
|
|
1663
|
+
'200':
|
|
1664
|
+
description: List of steps matching the type
|
|
1665
|
+
content:
|
|
1666
|
+
application/xml:
|
|
1667
|
+
schema:
|
|
1668
|
+
type: string
|
|
1669
|
+
application/json:
|
|
1670
|
+
schema:
|
|
1671
|
+
type: array
|
|
1672
|
+
items:
|
|
1673
|
+
type: object
|
|
1674
|
+
'401':
|
|
1675
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1676
|
+
"/api/create_user":
|
|
1677
|
+
post:
|
|
1678
|
+
summary: Create a new user
|
|
1679
|
+
tags:
|
|
1680
|
+
- Users
|
|
1681
|
+
security:
|
|
1682
|
+
- bearerAuth: []
|
|
1683
|
+
requestBody:
|
|
1684
|
+
required: true
|
|
1685
|
+
content:
|
|
1686
|
+
application/json:
|
|
1687
|
+
schema:
|
|
1688
|
+
type: object
|
|
1689
|
+
required:
|
|
1690
|
+
- username
|
|
1691
|
+
- password
|
|
1692
|
+
- email
|
|
1693
|
+
properties:
|
|
1694
|
+
username:
|
|
1695
|
+
type: string
|
|
1696
|
+
description: Unique username for login
|
|
1697
|
+
example: john.doe
|
|
1698
|
+
minLength: 3
|
|
1699
|
+
maxLength: 50
|
|
1700
|
+
password:
|
|
1701
|
+
type: string
|
|
1702
|
+
format: password
|
|
1703
|
+
description: User password (must meet security requirements)
|
|
1704
|
+
example: "*********"
|
|
1705
|
+
minLength: 8
|
|
1706
|
+
email:
|
|
1707
|
+
type: string
|
|
1708
|
+
format: email
|
|
1709
|
+
description: User email address
|
|
1710
|
+
example: john.doe@example.com
|
|
1711
|
+
full_name:
|
|
1712
|
+
type: string
|
|
1713
|
+
description: Full name of the user
|
|
1714
|
+
example: John Doe
|
|
1715
|
+
maxLength: 100
|
|
1716
|
+
responses:
|
|
1717
|
+
'200':
|
|
1718
|
+
description: User created successfully
|
|
1719
|
+
content:
|
|
1720
|
+
application/json:
|
|
1721
|
+
schema:
|
|
1722
|
+
type: object
|
|
1723
|
+
properties:
|
|
1724
|
+
user_id:
|
|
1725
|
+
type: integer
|
|
1726
|
+
example: 789
|
|
1727
|
+
message:
|
|
1728
|
+
type: string
|
|
1729
|
+
example: User created successfully
|
|
1730
|
+
'400':
|
|
1731
|
+
description: Invalid user data or username already exists
|
|
1732
|
+
'401':
|
|
1733
|
+
"$ref": "#/components/responses/UnauthorizedError"
|
|
1734
|
+
components:
|
|
1735
|
+
securitySchemes:
|
|
1736
|
+
bearerAuth:
|
|
1737
|
+
type: http
|
|
1738
|
+
scheme: bearer
|
|
1739
|
+
bearerFormat: JWT
|
|
1740
|
+
description: JWT token obtained from /api/login endpoint
|
|
1741
|
+
responses:
|
|
1742
|
+
UnauthorizedError:
|
|
1743
|
+
description: Authentication required or token invalid
|
|
1744
|
+
content:
|
|
1745
|
+
application/json:
|
|
1746
|
+
schema:
|
|
1747
|
+
type: object
|
|
1748
|
+
properties:
|
|
1749
|
+
error:
|
|
1750
|
+
type: string
|
|
1751
|
+
example: Unauthorized
|
|
1752
|
+
tags:
|
|
1753
|
+
- name: Authentication
|
|
1754
|
+
description: Obtain JWT tokens for API access. All other endpoints require authentication.
|
|
1755
|
+
- name: Workflows
|
|
1756
|
+
description: Create, import, export, and manage workflow definitions. Workflows define the automation logic.
|
|
1757
|
+
- name: Work Orders
|
|
1758
|
+
description: Initiate and track workflow executions. Each work order represents a single workflow run.
|
|
1759
|
+
- name: Work Steps
|
|
1760
|
+
description: Monitor and control individual steps within work orders. Steps are the atomic units of workflow execution.
|
|
1761
|
+
- name: Queues
|
|
1762
|
+
description: Manage execution queues and prioritize work items. Control the order and timing of workflow execution.
|
|
1763
|
+
- name: Monitors
|
|
1764
|
+
description: Configure and control workflow monitors. Monitors automatically trigger workflows based on events or schedules.
|
|
1765
|
+
- name: Tasks
|
|
1766
|
+
description: Submit and track one-off tasks. Tasks are standalone operations not tied to workflows.
|
|
1767
|
+
- name: Plugins
|
|
1768
|
+
description: Install, enable, and reload action plugins. Plugins extend Orchestrator with new capabilities.
|
|
1769
|
+
- name: Portlets
|
|
1770
|
+
description: Query portlet version information. Portlets provide UI components for the Orchestrator interface.
|
|
1771
|
+
- name: System
|
|
1772
|
+
description: Monitor system health, control processes, and access system-wide information.
|
|
1773
|
+
- name: Remote Nodes
|
|
1774
|
+
description: Test connectivity and manage remote Orchestrator nodes in distributed deployments.
|
|
1775
|
+
- name: Testing
|
|
1776
|
+
description: Test workflow steps in isolation before deploying to production workflows.
|
|
1777
|
+
- name: Statistics
|
|
1778
|
+
description: Retrieve execution statistics and performance metrics for workflows and work orders.
|
|
1779
|
+
- name: Journals
|
|
1780
|
+
description: Access detailed execution logs and journal files for troubleshooting and auditing.
|
|
1781
|
+
- name: Resources
|
|
1782
|
+
description: Manage resource pools and capacity allocation for workflow execution. Control concurrency limits.
|
|
1783
|
+
- name: Users
|
|
1784
|
+
description: Create and manage user accounts for Orchestrator access.
|