aspera-cli 4.27.3 → 4.27.5

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 (79) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +118 -0
  4. data/CONTRIBUTING.md +5 -2
  5. data/bin/ascli +1 -0
  6. data/docs/README.md +224 -42
  7. data/lib/aspera/agent/base.rb +7 -2
  8. data/lib/aspera/agent/connect.rb +0 -4
  9. data/lib/aspera/agent/desktop.rb +0 -4
  10. data/lib/aspera/agent/direct.rb +49 -21
  11. data/lib/aspera/agent/node.rb +6 -5
  12. data/lib/aspera/agent/transferd.rb +2 -2
  13. data/lib/aspera/api/faspex.rb +2 -0
  14. data/lib/aspera/api/httpgw.rb +1 -2
  15. data/lib/aspera/api/node.rb +3 -3
  16. data/lib/aspera/ascp/installation.rb +1 -1
  17. data/lib/aspera/cli/async_transfer_store.rb +10 -9
  18. data/lib/aspera/cli/bootstrapper.rb +3 -1
  19. data/lib/aspera/cli/command_registry.rb +69 -7
  20. data/lib/aspera/cli/command_spec.rb +1 -1
  21. data/lib/aspera/cli/extended_value.rb +4 -3
  22. data/lib/aspera/cli/formatter.rb +10 -8
  23. data/lib/aspera/cli/http.rb +8 -20
  24. data/lib/aspera/cli/option_types.rb +3 -1
  25. data/lib/aspera/cli/option_value.rb +16 -19
  26. data/lib/aspera/cli/options.schema.yaml +86 -10
  27. data/lib/aspera/cli/parser.rb +30 -18
  28. data/lib/aspera/cli/plugins/aoc.rb +133 -156
  29. data/lib/aspera/cli/plugins/ats.rb +1 -7
  30. data/lib/aspera/cli/plugins/base.rb +40 -34
  31. data/lib/aspera/cli/plugins/config.rb +24 -11
  32. data/lib/aspera/cli/plugins/console.rb +1 -1
  33. data/lib/aspera/cli/plugins/faspex5.rb +30 -11
  34. data/lib/aspera/cli/plugins/faspio.rb +1 -1
  35. data/lib/aspera/cli/plugins/node.rb +26 -19
  36. data/lib/aspera/cli/plugins/orchestrator.rb +73 -44
  37. data/lib/aspera/cli/plugins/preview.rb +21 -19
  38. data/lib/aspera/cli/plugins/server.rb +3 -4
  39. data/lib/aspera/cli/plugins/shares.rb +21 -24
  40. data/lib/aspera/cli/preset_actions.rb +28 -18
  41. data/lib/aspera/cli/preset_manager.rb +34 -19
  42. data/lib/aspera/cli/prompt.rb +2 -1
  43. data/lib/aspera/cli/result.rb +33 -22
  44. data/lib/aspera/cli/runner.rb +1 -5
  45. data/lib/aspera/cli/sync_actions.rb +17 -16
  46. data/lib/aspera/cli/transfer_actions.rb +14 -3
  47. data/lib/aspera/cli/transfer_agent.rb +6 -4
  48. data/lib/aspera/cli/transfer_progress.rb +290 -55
  49. data/lib/aspera/cli/version.rb +1 -1
  50. data/lib/aspera/cli/wizard.rb +1 -1
  51. data/lib/aspera/coverage.rb +0 -1
  52. data/lib/aspera/environment.rb +29 -5
  53. data/lib/aspera/keychain/encrypted_hash.rb +1 -1
  54. data/lib/aspera/keychain/factory.rb +2 -1
  55. data/lib/aspera/log.rb +25 -2
  56. data/lib/aspera/node_emulator.rb +759 -0
  57. data/lib/aspera/oauth/base.rb +2 -1
  58. data/lib/aspera/oauth/factory.rb +6 -3
  59. data/lib/aspera/oauth/json_credentials.rb +34 -0
  60. data/lib/aspera/oauth/jwt.rb +3 -4
  61. data/lib/aspera/oauth.rb +1 -0
  62. data/lib/aspera/persistency_folder.rb +1 -3
  63. data/lib/aspera/preview/generator.rb +4 -1
  64. data/lib/aspera/preview/options.schema.yaml +119 -0
  65. data/lib/aspera/rest/aspera_errors.rb +12 -0
  66. data/lib/aspera/rest/client.rb +28 -19
  67. data/lib/aspera/rest/list.rb +14 -8
  68. data/lib/aspera/rest/parameters.rb +2 -2
  69. data/lib/aspera/schema/IBM Aspera Faspex API-5.0-enhanced.yaml +0 -20
  70. data/lib/aspera/schema/IBM Aspera Orchestrator API-v1.yaml +1784 -0
  71. data/lib/aspera/schema/IBM Aspera on Cloud API-0.2.6-enhanced.yaml +1230 -137
  72. data/lib/aspera/schema/IBM_Aspera_Shares.yaml +14 -13
  73. data/lib/aspera/schema/reader.rb +12 -18
  74. data/lib/aspera/schema/registry.rb +6 -1
  75. data.tar.gz.sig +0 -0
  76. metadata +5 -3
  77. metadata.gz.sig +0 -0
  78. data/lib/aspera/node_simulator.rb +0 -345
  79. 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.