aspera-cli 4.27.5 → 4.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +160 -4
- data/CONTRIBUTING.md +4 -2
- data/README.md +1 -1
- data/bin/asession +1 -1
- data/docs/README.md +1086 -331
- data/docs/test-mcp-with-ai.md +5 -3
- data/lib/aspera/agent/direct.rb +15 -4
- data/lib/aspera/agent/factory.rb +2 -1
- data/lib/aspera/agent/node.rb +1 -1
- data/lib/aspera/api/cos_node.rb +1 -1
- data/lib/aspera/api/faspex.rb +1 -1
- data/lib/aspera/api/node.rb +6 -2
- data/lib/aspera/ascp/installation.rb +47 -11
- data/lib/aspera/ascp/management.rb +89 -43
- data/lib/aspera/cli/ascp_actions.rb +5 -19
- data/lib/aspera/cli/bootstrapper.rb +1 -2
- data/lib/aspera/cli/command_registry.rb +43 -3
- data/lib/aspera/cli/command_spec.rb +3 -0
- data/lib/aspera/cli/completion/ascli.bash +39 -5
- data/lib/aspera/cli/completion/ascli.fish +16 -8
- data/lib/aspera/cli/completion/ascli.ps1 +41 -0
- data/lib/aspera/cli/completion/ascli.zsh +20 -4
- data/lib/aspera/cli/completion_actions.rb +360 -0
- data/lib/aspera/cli/error.rb +42 -0
- data/lib/aspera/cli/extended_value.rb +30 -5
- data/lib/aspera/cli/formatter.rb +118 -56
- data/lib/aspera/cli/hints.rb +0 -1
- data/lib/aspera/cli/http.rb +6 -5
- data/lib/aspera/cli/info.rb +10 -4
- data/lib/aspera/cli/mailer.rb +1 -1
- data/lib/aspera/cli/mcp/http_servlet.rb +156 -0
- data/lib/aspera/cli/mcp/secrets.rb +143 -0
- data/lib/aspera/cli/mcp/tool.rb +231 -0
- data/lib/aspera/cli/option_value.rb +9 -1
- data/lib/aspera/cli/options.schema.yaml +390 -39
- data/lib/aspera/cli/parser.rb +14 -5
- data/lib/aspera/cli/plugins/aoc.rb +8 -11
- data/lib/aspera/cli/plugins/base.rb +36 -15
- data/lib/aspera/cli/plugins/config.rb +15 -44
- data/lib/aspera/cli/plugins/console.rb +3 -1
- data/lib/aspera/cli/plugins/factory.rb +1 -1
- data/lib/aspera/cli/plugins/faspex5.rb +9 -19
- data/lib/aspera/cli/plugins/faspio.rb +36 -5
- data/lib/aspera/cli/plugins/httpgw.rb +1 -0
- data/lib/aspera/cli/plugins/mcp.rb +177 -118
- data/lib/aspera/cli/plugins/node.rb +14 -8
- data/lib/aspera/cli/plugins/orchestrator.rb +351 -38
- data/lib/aspera/cli/plugins/server.rb +3 -1
- data/lib/aspera/cli/plugins/shares.rb +205 -35
- data/lib/aspera/cli/preset_actions.rb +15 -7
- data/lib/aspera/cli/preset_manager.rb +24 -2
- data/lib/aspera/cli/prompt.rb +3 -1
- data/lib/aspera/cli/result.rb +17 -4
- data/lib/aspera/cli/runner.rb +133 -43
- data/lib/aspera/cli/security.rb +134 -0
- data/lib/aspera/cli/table_fitter.rb +116 -0
- data/lib/aspera/cli/terminal_formatter.rb +23 -34
- data/lib/aspera/cli/transfer_agent.rb +4 -1
- data/lib/aspera/cli/vault_manager.rb +6 -5
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/cli/web_secret.html.erb +61 -0
- data/lib/aspera/cli/web_secret.rb +220 -0
- data/lib/aspera/cli/wizard.rb +19 -9
- data/lib/aspera/command_line_builder.rb +26 -0
- data/lib/aspera/data_repository.rb +38 -24
- data/lib/aspera/duration.rb +42 -0
- data/lib/aspera/environment.rb +88 -24
- data/lib/aspera/exec_spec.rb +6 -5
- data/lib/aspera/faspex_gw.rb +98 -32
- data/lib/aspera/faspex_postproc.rb +187 -44
- data/lib/aspera/formatter_interface.rb +0 -1
- data/lib/aspera/id_generator.rb +2 -1
- data/lib/aspera/json_rpc/client.rb +51 -32
- data/lib/aspera/json_rpc/version.rb +1 -0
- data/lib/aspera/keychain/base.rb +5 -0
- data/lib/aspera/keychain/encrypted_hash.rb +6 -2
- data/lib/aspera/keychain/factory.rb +2 -3
- data/lib/aspera/keychain/hashicorp_vault.rb +7 -4
- data/lib/aspera/keychain/macos_security.rb +119 -13
- data/lib/aspera/keychain/one_password_api.rb +8 -3
- data/lib/aspera/keychain/one_password_base.rb +14 -9
- data/lib/aspera/keychain/one_password_cli.rb +4 -2
- data/lib/aspera/log.rb +3 -6
- data/lib/aspera/markdown.rb +152 -115
- data/lib/aspera/mime.rb +6 -0
- data/lib/aspera/nagios.rb +3 -1
- data/lib/aspera/node_emulator.rb +98 -101
- data/lib/aspera/oauth/{base.rb → client/base.rb} +5 -4
- data/lib/aspera/oauth/{boot.rb → client/boot.rb} +3 -2
- data/lib/aspera/oauth/{factory.rb → client/factory.rb} +7 -0
- data/lib/aspera/oauth/{generic.rb → client/generic.rb} +1 -1
- data/lib/aspera/oauth/{json_credentials.rb → client/json_credentials.rb} +1 -1
- data/lib/aspera/oauth/{jwt.rb → client/jwt.rb} +1 -1
- data/lib/aspera/oauth/{url_json.rb → client/url_json.rb} +1 -1
- data/lib/aspera/oauth/{web.rb → client/web.rb} +2 -2
- data/lib/aspera/oauth/server/authorize.html.erb +34 -0
- data/lib/aspera/oauth/server/pkce.rb +426 -0
- data/lib/aspera/orchestrator_workflow_checker.rb +561 -0
- data/lib/aspera/preview/terminal.rb +3 -2
- data/lib/aspera/rainbow.rb +27 -1
- data/lib/aspera/rest/aspera_errors.rb +51 -59
- data/lib/aspera/rest/client.rb +21 -14
- data/lib/aspera/rest/error_analyzer.rb +9 -0
- data/lib/aspera/rest/list.rb +6 -6
- data/lib/aspera/rest/util.rb +7 -1
- data/lib/aspera/rest.rb +0 -1
- data/lib/aspera/schema/IBM Aspera Faspex API-5.0-enhanced.yaml +0 -2
- data/lib/aspera/schema/IBM Aspera Orchestrator API-v1-enhanced.yaml +4001 -0
- data/lib/aspera/schema/IBM Aspera faspio Gateway API-1.0.0-enhanced.yaml +1097 -0
- data/lib/aspera/schema/IBM Aspera on Cloud Automation API-1.0.5-enhanced.yaml +35 -35
- data/lib/aspera/schema/IBM_Aspera_Shares.yaml +819 -7
- data/lib/aspera/schema/documentation.rb +50 -78
- data/lib/aspera/schema/reader.rb +39 -11
- data/lib/aspera/schema/registry.rb +8 -2
- data/lib/aspera/secret_hider.rb +94 -15
- data/lib/aspera/secret_strength.rb +114 -0
- data/lib/aspera/servlet_helpers.rb +111 -0
- data/lib/aspera/sync/args.schema.yaml +3 -1
- data/lib/aspera/sync/conf.schema.yaml +16 -6
- data/lib/aspera/sync/operations.rb +21 -1
- data/lib/aspera/temp_file_manager.rb +79 -20
- data/lib/aspera/transfer/parameters.rb +5 -0
- data/lib/aspera/transfer/spec.rb +52 -12
- data/lib/aspera/transfer/spec.schema.yaml +8 -5
- data/lib/aspera/web_auth/index.html.erb +16 -0
- data/lib/aspera/web_auth/server.rb +18 -10
- data/lib/aspera/web_page.html.erb +262 -0
- data/lib/aspera/web_page.rb +61 -0
- data/lib/aspera/web_server_simple.rb +76 -10
- data.tar.gz.sig +0 -0
- metadata +47 -32
- metadata.gz.sig +0 -0
- data/lib/aspera/cli/mcp_tool.rb +0 -189
- data/lib/aspera/oauth.rb +0 -9
- data/lib/aspera/schema/IBM Aspera Orchestrator API-v1.yaml +0 -1784
- data/lib/aspera/schema/IBM Aspera faspio Gateway API-1.0.0.yaml +0 -249
- data/lib/aspera/web_auth/index.html +0 -147
|
@@ -0,0 +1,4001 @@
|
|
|
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-enhanced.yaml
|
|
4
|
+
# Use 'rake tools:openapi' to update this file
|
|
5
|
+
|
|
6
|
+
openapi: 3.1.0
|
|
7
|
+
info:
|
|
8
|
+
title: Aspera Orchestrator API
|
|
9
|
+
version: v1
|
|
10
|
+
license:
|
|
11
|
+
name: (c) IBM. All rights reserved
|
|
12
|
+
url: https://ibm.com
|
|
13
|
+
description: |
|
|
14
|
+
API documentation for Aspera Orchestrator 4.1.6, checked against its source code (`config/routes.rb` and `ApiController`).
|
|
15
|
+
|
|
16
|
+
## Authentication
|
|
17
|
+
|
|
18
|
+
The API supports two authentication modes:
|
|
19
|
+
|
|
20
|
+
### JWT Authentication (Recommended)
|
|
21
|
+
|
|
22
|
+
When JWT authentication is enabled (default):
|
|
23
|
+
|
|
24
|
+
1. Obtain a JWT token by calling POST /api/login with your credentials
|
|
25
|
+
2. Include the token in subsequent requests using the Authorization header:
|
|
26
|
+
`Authorization: Bearer <your_token>`
|
|
27
|
+
|
|
28
|
+
### Credentials in Each Request (When JWT is Disabled)
|
|
29
|
+
|
|
30
|
+
If JWT authentication is disabled in your Orchestrator configuration (`/api/login` then returns 403), give the credentials with every API request, either:
|
|
31
|
+
|
|
32
|
+
- as query parameters `login` and `password`, e.g. `/api/workflows_list?login=admin&password=mypassword&format=json`
|
|
33
|
+
- as query parameters `login` and `api_key` (the API key of the user)
|
|
34
|
+
- with HTTP Basic authentication
|
|
35
|
+
|
|
36
|
+
**Note:** Check your Orchestrator configuration to determine which authentication mode is active.
|
|
37
|
+
|
|
38
|
+
## Routes
|
|
39
|
+
|
|
40
|
+
- Some endpoints have their own route, `/api/<endpoint>`, with the HTTP method given here.
|
|
41
|
+
- Every endpoint can also be called as `/api/<endpoint>/<id>`, with any HTTP method, where `<id>` is its main identifier.
|
|
42
|
+
Endpoints without their own route can only be called this way: when `id` is not used by the endpoint, any value works, for example `0`.
|
|
43
|
+
- Parameters can be given in the query, or in a JSON or form body.
|
|
44
|
+
|
|
45
|
+
## Response format
|
|
46
|
+
|
|
47
|
+
Most endpoints return XML by default.
|
|
48
|
+
For JSON, add `format=json`, or the extension `.json` to the last segment of the path (e.g. `/api/work_order_status/123.json`).
|
|
49
|
+
|
|
50
|
+
## Errors
|
|
51
|
+
|
|
52
|
+
Errors are returned with HTTP status 200, or 404 when the server option `strict_api_validation` is set.
|
|
53
|
+
The body is `<error time=... action=... id=...>message and backtrace</error>`, or in JSON `{"error": {"action": ..., "time": ..., "id": ..., "description": ...}}`.
|
|
54
|
+
servers:
|
|
55
|
+
- url: https://158.176.9.141/aspera/orchestrator
|
|
56
|
+
description: 'Configured host: 158.176.9.141'
|
|
57
|
+
- url: https://orchestrator.aspera-emea.com/aspera/orchestrator
|
|
58
|
+
description: 'Configured host: orchestrator.aspera-emea.com'
|
|
59
|
+
security:
|
|
60
|
+
- bearerAuth: []
|
|
61
|
+
- basicAuth: []
|
|
62
|
+
- loginQuery: []
|
|
63
|
+
passwordQuery: []
|
|
64
|
+
- loginQuery: []
|
|
65
|
+
apiKeyQuery: []
|
|
66
|
+
paths:
|
|
67
|
+
/api/login:
|
|
68
|
+
post:
|
|
69
|
+
operationId: login
|
|
70
|
+
security: []
|
|
71
|
+
summary: Authenticate and obtain JWT token
|
|
72
|
+
tags:
|
|
73
|
+
- Authentication
|
|
74
|
+
requestBody:
|
|
75
|
+
required: true
|
|
76
|
+
content:
|
|
77
|
+
application/json:
|
|
78
|
+
schema:
|
|
79
|
+
description: '`username`, with either `password` or `api_key` (the API key of that user)'
|
|
80
|
+
oneOf:
|
|
81
|
+
- title: Username and password
|
|
82
|
+
type: object
|
|
83
|
+
required:
|
|
84
|
+
- username
|
|
85
|
+
- password
|
|
86
|
+
properties:
|
|
87
|
+
username:
|
|
88
|
+
type: string
|
|
89
|
+
description: User login name
|
|
90
|
+
password:
|
|
91
|
+
type: string
|
|
92
|
+
format: password
|
|
93
|
+
description: User password
|
|
94
|
+
additionalProperties: false
|
|
95
|
+
- title: Username and API key
|
|
96
|
+
type: object
|
|
97
|
+
required:
|
|
98
|
+
- username
|
|
99
|
+
- api_key
|
|
100
|
+
properties:
|
|
101
|
+
username:
|
|
102
|
+
type: string
|
|
103
|
+
description: User login name
|
|
104
|
+
api_key:
|
|
105
|
+
type: string
|
|
106
|
+
description: API key of the user
|
|
107
|
+
additionalProperties: false
|
|
108
|
+
examples:
|
|
109
|
+
credentials:
|
|
110
|
+
summary: Username and password
|
|
111
|
+
value:
|
|
112
|
+
username: admin
|
|
113
|
+
password: mypassword
|
|
114
|
+
api_key:
|
|
115
|
+
summary: Username and API key
|
|
116
|
+
value:
|
|
117
|
+
username: admin
|
|
118
|
+
api_key: my_api_key
|
|
119
|
+
responses:
|
|
120
|
+
'200':
|
|
121
|
+
description: Successfully authenticated
|
|
122
|
+
content:
|
|
123
|
+
application/json:
|
|
124
|
+
schema:
|
|
125
|
+
type: object
|
|
126
|
+
properties:
|
|
127
|
+
message:
|
|
128
|
+
type: string
|
|
129
|
+
examples:
|
|
130
|
+
- Logged in successfully
|
|
131
|
+
user:
|
|
132
|
+
type: object
|
|
133
|
+
properties:
|
|
134
|
+
id:
|
|
135
|
+
type: integer
|
|
136
|
+
login:
|
|
137
|
+
type: string
|
|
138
|
+
email:
|
|
139
|
+
type: string
|
|
140
|
+
token:
|
|
141
|
+
type: string
|
|
142
|
+
description: JWT token for subsequent API calls
|
|
143
|
+
'401':
|
|
144
|
+
description: Invalid credentials
|
|
145
|
+
'403':
|
|
146
|
+
description: Secure API auth disabled
|
|
147
|
+
/api/workflows_list:
|
|
148
|
+
get:
|
|
149
|
+
operationId: workflows_list
|
|
150
|
+
summary: List all workflows
|
|
151
|
+
tags:
|
|
152
|
+
- Workflows
|
|
153
|
+
parameters:
|
|
154
|
+
- $ref: '#/components/parameters/Format'
|
|
155
|
+
responses:
|
|
156
|
+
'200':
|
|
157
|
+
description: List of workflows
|
|
158
|
+
content:
|
|
159
|
+
application/json:
|
|
160
|
+
schema:
|
|
161
|
+
type: object
|
|
162
|
+
properties:
|
|
163
|
+
workflows:
|
|
164
|
+
type: object
|
|
165
|
+
properties:
|
|
166
|
+
time:
|
|
167
|
+
type: string
|
|
168
|
+
description: UTC time
|
|
169
|
+
action:
|
|
170
|
+
type: string
|
|
171
|
+
const: list
|
|
172
|
+
id:
|
|
173
|
+
type: integer
|
|
174
|
+
workflow:
|
|
175
|
+
type: array
|
|
176
|
+
items:
|
|
177
|
+
type: object
|
|
178
|
+
properties:
|
|
179
|
+
id:
|
|
180
|
+
type: integer
|
|
181
|
+
name:
|
|
182
|
+
type: string
|
|
183
|
+
full_name:
|
|
184
|
+
type: string
|
|
185
|
+
description: Name with the folder path
|
|
186
|
+
folder_id:
|
|
187
|
+
type: [integer, 'null']
|
|
188
|
+
portable_id:
|
|
189
|
+
type: [string, 'null']
|
|
190
|
+
published_status:
|
|
191
|
+
type: string
|
|
192
|
+
enum:
|
|
193
|
+
- published
|
|
194
|
+
- draft
|
|
195
|
+
published_revision_id:
|
|
196
|
+
type: [integer, string]
|
|
197
|
+
description: '`-` when not published'
|
|
198
|
+
latest_revision_id:
|
|
199
|
+
type: [integer, string]
|
|
200
|
+
description: '`-` when there is no whiteboard'
|
|
201
|
+
last_modification:
|
|
202
|
+
type: string
|
|
203
|
+
format: date-time
|
|
204
|
+
comments:
|
|
205
|
+
type: [string, 'null']
|
|
206
|
+
'401':
|
|
207
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
208
|
+
default:
|
|
209
|
+
$ref: '#/components/responses/Error'
|
|
210
|
+
/api/workflows_status:
|
|
211
|
+
get:
|
|
212
|
+
operationId: workflows_status
|
|
213
|
+
summary: Running status of workflows
|
|
214
|
+
tags:
|
|
215
|
+
- Workflows
|
|
216
|
+
parameters:
|
|
217
|
+
- name: id
|
|
218
|
+
in: query
|
|
219
|
+
schema:
|
|
220
|
+
type: string
|
|
221
|
+
description: Workflow ID or portable ID. Not set, or `0`, for all workflows.
|
|
222
|
+
- $ref: '#/components/parameters/Format'
|
|
223
|
+
responses:
|
|
224
|
+
'200':
|
|
225
|
+
description: Workflow status information
|
|
226
|
+
content:
|
|
227
|
+
application/json:
|
|
228
|
+
schema:
|
|
229
|
+
type: object
|
|
230
|
+
properties:
|
|
231
|
+
workflows:
|
|
232
|
+
type: object
|
|
233
|
+
properties:
|
|
234
|
+
time:
|
|
235
|
+
type: string
|
|
236
|
+
description: UTC time
|
|
237
|
+
action:
|
|
238
|
+
type: string
|
|
239
|
+
const: status
|
|
240
|
+
id:
|
|
241
|
+
type: integer
|
|
242
|
+
workflow:
|
|
243
|
+
type: array
|
|
244
|
+
items:
|
|
245
|
+
type: object
|
|
246
|
+
properties:
|
|
247
|
+
id:
|
|
248
|
+
type: integer
|
|
249
|
+
name:
|
|
250
|
+
type: string
|
|
251
|
+
status:
|
|
252
|
+
type: string
|
|
253
|
+
enum:
|
|
254
|
+
- running
|
|
255
|
+
- not running
|
|
256
|
+
last_activity:
|
|
257
|
+
type: string
|
|
258
|
+
description: Last update of the running work orders, or `-`
|
|
259
|
+
'401':
|
|
260
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
261
|
+
default:
|
|
262
|
+
$ref: '#/components/responses/Error'
|
|
263
|
+
/api/workflow_details/{id}:
|
|
264
|
+
get:
|
|
265
|
+
operationId: workflow_details
|
|
266
|
+
summary: Number of work orders of a workflow, by status
|
|
267
|
+
tags:
|
|
268
|
+
- Workflows
|
|
269
|
+
parameters:
|
|
270
|
+
- name: id
|
|
271
|
+
in: path
|
|
272
|
+
required: true
|
|
273
|
+
schema:
|
|
274
|
+
type: integer
|
|
275
|
+
description: Workflow ID
|
|
276
|
+
- name: start_date
|
|
277
|
+
in: query
|
|
278
|
+
schema:
|
|
279
|
+
type: string
|
|
280
|
+
description: Count work orders created after this date
|
|
281
|
+
- name: end_date
|
|
282
|
+
in: query
|
|
283
|
+
schema:
|
|
284
|
+
type: string
|
|
285
|
+
description: Count work orders created before this date
|
|
286
|
+
- $ref: '#/components/parameters/Format'
|
|
287
|
+
responses:
|
|
288
|
+
'200':
|
|
289
|
+
description: Work order counts by status
|
|
290
|
+
content:
|
|
291
|
+
application/json:
|
|
292
|
+
schema:
|
|
293
|
+
type: object
|
|
294
|
+
properties:
|
|
295
|
+
workflows:
|
|
296
|
+
type: object
|
|
297
|
+
properties:
|
|
298
|
+
time:
|
|
299
|
+
type: string
|
|
300
|
+
description: UTC time
|
|
301
|
+
action:
|
|
302
|
+
type: string
|
|
303
|
+
const: status
|
|
304
|
+
id:
|
|
305
|
+
type: integer
|
|
306
|
+
workflow:
|
|
307
|
+
type: object
|
|
308
|
+
properties:
|
|
309
|
+
name:
|
|
310
|
+
type: string
|
|
311
|
+
id:
|
|
312
|
+
type: integer
|
|
313
|
+
statuses:
|
|
314
|
+
type: array
|
|
315
|
+
items:
|
|
316
|
+
type: object
|
|
317
|
+
properties:
|
|
318
|
+
count:
|
|
319
|
+
type: integer
|
|
320
|
+
last_activity:
|
|
321
|
+
type: string
|
|
322
|
+
format: date-time
|
|
323
|
+
workflow_name:
|
|
324
|
+
type: string
|
|
325
|
+
status:
|
|
326
|
+
type: string
|
|
327
|
+
'401':
|
|
328
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
329
|
+
default:
|
|
330
|
+
$ref: '#/components/responses/Error'
|
|
331
|
+
/api/workflow_inputs_spec/{id}:
|
|
332
|
+
get:
|
|
333
|
+
operationId: workflow_inputs_spec
|
|
334
|
+
summary: Runtime parameters of a workflow
|
|
335
|
+
tags:
|
|
336
|
+
- Workflows
|
|
337
|
+
parameters:
|
|
338
|
+
- name: id
|
|
339
|
+
in: path
|
|
340
|
+
required: true
|
|
341
|
+
schema:
|
|
342
|
+
type: string
|
|
343
|
+
description: Workflow ID or portable ID, or `0` to use `workflow_name`, or `-1` to use `portable_id`
|
|
344
|
+
- name: workflow_name
|
|
345
|
+
in: query
|
|
346
|
+
schema:
|
|
347
|
+
type: string
|
|
348
|
+
description: Workflow name, when `id` is `0`
|
|
349
|
+
- name: portable_id
|
|
350
|
+
in: query
|
|
351
|
+
schema:
|
|
352
|
+
type: string
|
|
353
|
+
description: Workflow portable ID, when `id` is `-1`
|
|
354
|
+
- $ref: '#/components/parameters/Format'
|
|
355
|
+
responses:
|
|
356
|
+
'200':
|
|
357
|
+
description: Runtime parameters
|
|
358
|
+
content:
|
|
359
|
+
application/json:
|
|
360
|
+
schema:
|
|
361
|
+
type: object
|
|
362
|
+
properties:
|
|
363
|
+
workflow_inputs_spec:
|
|
364
|
+
type: object
|
|
365
|
+
properties:
|
|
366
|
+
time:
|
|
367
|
+
type: string
|
|
368
|
+
description: UTC time
|
|
369
|
+
action:
|
|
370
|
+
type: string
|
|
371
|
+
const: inputs_spec
|
|
372
|
+
workflow_name:
|
|
373
|
+
type: string
|
|
374
|
+
workflow_id:
|
|
375
|
+
type: integer
|
|
376
|
+
parameter:
|
|
377
|
+
type: array
|
|
378
|
+
items:
|
|
379
|
+
type: object
|
|
380
|
+
properties:
|
|
381
|
+
id:
|
|
382
|
+
type: integer
|
|
383
|
+
name:
|
|
384
|
+
type: string
|
|
385
|
+
value_type:
|
|
386
|
+
type: string
|
|
387
|
+
optional:
|
|
388
|
+
type: [boolean, 'null']
|
|
389
|
+
value:
|
|
390
|
+
type: string
|
|
391
|
+
description: Default value, for an optional parameter
|
|
392
|
+
'401':
|
|
393
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
394
|
+
default:
|
|
395
|
+
$ref: '#/components/responses/Error'
|
|
396
|
+
/api/workflow_outputs_spec/{id}:
|
|
397
|
+
get:
|
|
398
|
+
operationId: workflow_outputs_spec
|
|
399
|
+
summary: Outputs of the steps of a workflow
|
|
400
|
+
tags:
|
|
401
|
+
- Workflows
|
|
402
|
+
parameters:
|
|
403
|
+
- name: id
|
|
404
|
+
in: path
|
|
405
|
+
required: true
|
|
406
|
+
schema:
|
|
407
|
+
type: string
|
|
408
|
+
description: Workflow ID or portable ID (also accepted as query parameter `workflow_id`)
|
|
409
|
+
- name: workflow_id
|
|
410
|
+
in: query
|
|
411
|
+
schema:
|
|
412
|
+
type: string
|
|
413
|
+
description: Workflow ID or portable ID, takes precedence over `id`
|
|
414
|
+
- $ref: '#/components/parameters/Format'
|
|
415
|
+
responses:
|
|
416
|
+
'200':
|
|
417
|
+
description: Outputs of the workflow
|
|
418
|
+
content:
|
|
419
|
+
application/json:
|
|
420
|
+
schema:
|
|
421
|
+
type: object
|
|
422
|
+
properties:
|
|
423
|
+
workflow_outputs_spec:
|
|
424
|
+
type: object
|
|
425
|
+
properties:
|
|
426
|
+
time:
|
|
427
|
+
type: string
|
|
428
|
+
description: UTC time
|
|
429
|
+
action:
|
|
430
|
+
type: string
|
|
431
|
+
const: outputs_spec
|
|
432
|
+
output:
|
|
433
|
+
type: array
|
|
434
|
+
items:
|
|
435
|
+
type: object
|
|
436
|
+
properties:
|
|
437
|
+
context_id:
|
|
438
|
+
type: integer
|
|
439
|
+
name:
|
|
440
|
+
type: string
|
|
441
|
+
description: '`<step name>:<output name>`'
|
|
442
|
+
workflow_id:
|
|
443
|
+
type: integer
|
|
444
|
+
step_name:
|
|
445
|
+
type: string
|
|
446
|
+
variable_name:
|
|
447
|
+
type: string
|
|
448
|
+
value_type:
|
|
449
|
+
type: string
|
|
450
|
+
variable_type:
|
|
451
|
+
type: string
|
|
452
|
+
'401':
|
|
453
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
454
|
+
default:
|
|
455
|
+
$ref: '#/components/responses/Error'
|
|
456
|
+
/api/import_workflow:
|
|
457
|
+
post:
|
|
458
|
+
operationId: import_workflow
|
|
459
|
+
summary: Import a workflow
|
|
460
|
+
description: Always creates a new workflow. The response is the new workflow as JSON, whatever the format.
|
|
461
|
+
tags:
|
|
462
|
+
- Workflows
|
|
463
|
+
requestBody:
|
|
464
|
+
required: true
|
|
465
|
+
content:
|
|
466
|
+
multipart/form-data:
|
|
467
|
+
schema:
|
|
468
|
+
type: object
|
|
469
|
+
required:
|
|
470
|
+
- import_file
|
|
471
|
+
- import_file_name
|
|
472
|
+
properties:
|
|
473
|
+
import_file:
|
|
474
|
+
type: string
|
|
475
|
+
contentMediaType: application/octet-stream
|
|
476
|
+
description: The workflow file to import (.wkf or .yml)
|
|
477
|
+
import_file_name:
|
|
478
|
+
type: string
|
|
479
|
+
pattern: (wkf|yml)$
|
|
480
|
+
description: File name ending with `wkf` or `yml`. The file is saved under this name in the import folder of the server.
|
|
481
|
+
examples:
|
|
482
|
+
- my_workflow.wkf
|
|
483
|
+
folder_id:
|
|
484
|
+
type: integer
|
|
485
|
+
description: Folder of the new workflow
|
|
486
|
+
link_to_subworkflows:
|
|
487
|
+
type: string
|
|
488
|
+
description: Link to existing sub-workflows instead of importing them. Any value, including `false`, is taken as true.
|
|
489
|
+
publish_workflow:
|
|
490
|
+
type: string
|
|
491
|
+
description: '`true` or `1` to publish the workflow after import. Default: server option `publish_api_imported_workflow`.'
|
|
492
|
+
format:
|
|
493
|
+
type: string
|
|
494
|
+
enum:
|
|
495
|
+
- xml
|
|
496
|
+
- json
|
|
497
|
+
default: xml
|
|
498
|
+
responses:
|
|
499
|
+
'200':
|
|
500
|
+
description: The new workflow (JSON)
|
|
501
|
+
content:
|
|
502
|
+
application/json:
|
|
503
|
+
schema:
|
|
504
|
+
$ref: '#/components/schemas/Workflow'
|
|
505
|
+
'401':
|
|
506
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
507
|
+
default:
|
|
508
|
+
$ref: '#/components/responses/Error'
|
|
509
|
+
'500':
|
|
510
|
+
description: Import failed
|
|
511
|
+
content:
|
|
512
|
+
application/json:
|
|
513
|
+
schema:
|
|
514
|
+
type: object
|
|
515
|
+
properties:
|
|
516
|
+
error:
|
|
517
|
+
type: string
|
|
518
|
+
message:
|
|
519
|
+
type: string
|
|
520
|
+
details:
|
|
521
|
+
type: string
|
|
522
|
+
description: Error message
|
|
523
|
+
/api/find_constraints:
|
|
524
|
+
get:
|
|
525
|
+
operationId: find_constraints
|
|
526
|
+
summary: Find workflow import constraints
|
|
527
|
+
description: 'Analyzes a workflow file present on the Orchestrator host, and returns the list expected by `import_with_constraints`, with the possible choices for each conflict with existing sub-workflows, global templates and remote nodes, and the plugins that are not enabled. The file existence is not checked: a wrong path returns the same empty lists as a file without conflict.'
|
|
528
|
+
tags:
|
|
529
|
+
- Workflows
|
|
530
|
+
parameters:
|
|
531
|
+
- name: file
|
|
532
|
+
in: query
|
|
533
|
+
required: true
|
|
534
|
+
schema:
|
|
535
|
+
type: string
|
|
536
|
+
description: Path of the workflow file (`.yml` or `.wkf`) on the Orchestrator host
|
|
537
|
+
- name: wf_id
|
|
538
|
+
in: query
|
|
539
|
+
schema:
|
|
540
|
+
type: integer
|
|
541
|
+
description: ID of an existing workflow, to import the file as a new revision of it
|
|
542
|
+
responses:
|
|
543
|
+
'200':
|
|
544
|
+
description: 'Array of six objects, in the order expected by `import_with_constraints`: `filename`, `add as revision`, `subwf constraints`, `action template constraints`, `remote node constraints`, and `missing plugins` with `Auto-enable missing plugins?`.'
|
|
545
|
+
content:
|
|
546
|
+
application/json:
|
|
547
|
+
schema:
|
|
548
|
+
type: array
|
|
549
|
+
minItems: 6
|
|
550
|
+
maxItems: 6
|
|
551
|
+
prefixItems:
|
|
552
|
+
- type: object
|
|
553
|
+
properties:
|
|
554
|
+
filename:
|
|
555
|
+
type: string
|
|
556
|
+
- type: object
|
|
557
|
+
properties:
|
|
558
|
+
add as revision:
|
|
559
|
+
type: [string, 'null']
|
|
560
|
+
description: The `wf_id` parameter
|
|
561
|
+
- type: object
|
|
562
|
+
properties:
|
|
563
|
+
subwf constraints:
|
|
564
|
+
type: object
|
|
565
|
+
description: Sub-workflow name to possible choices
|
|
566
|
+
additionalProperties:
|
|
567
|
+
type: array
|
|
568
|
+
items:
|
|
569
|
+
type: string
|
|
570
|
+
- type: object
|
|
571
|
+
properties:
|
|
572
|
+
action template constraints:
|
|
573
|
+
type: object
|
|
574
|
+
description: Global template name to possible choices
|
|
575
|
+
additionalProperties:
|
|
576
|
+
type: array
|
|
577
|
+
items:
|
|
578
|
+
type: string
|
|
579
|
+
- type: object
|
|
580
|
+
properties:
|
|
581
|
+
remote node constraints:
|
|
582
|
+
type: object
|
|
583
|
+
description: Remote node name to possible choices
|
|
584
|
+
additionalProperties:
|
|
585
|
+
type: array
|
|
586
|
+
items:
|
|
587
|
+
type: string
|
|
588
|
+
- type: object
|
|
589
|
+
properties:
|
|
590
|
+
missing plugins:
|
|
591
|
+
type: [array, 'null']
|
|
592
|
+
description: Plugins to enable, or `null`
|
|
593
|
+
Auto-enable missing plugins?:
|
|
594
|
+
type: [array, 'null']
|
|
595
|
+
description: '`[true, false]` when plugins are missing, else `null`'
|
|
596
|
+
items: false
|
|
597
|
+
'401':
|
|
598
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
599
|
+
default:
|
|
600
|
+
$ref: '#/components/responses/Error'
|
|
601
|
+
/api/import_with_constraints:
|
|
602
|
+
post:
|
|
603
|
+
operationId: import_with_constraints
|
|
604
|
+
summary: Import workflow with constraint resolution
|
|
605
|
+
description: 'Imports a workflow file present on the Orchestrator host, as a new workflow or as a new revision of an existing workflow. The workflow is not published. Orchestrator does not check what `find_constraints` reports: if plugins to enable are listed and `Auto-enable missing plugins?` is not `true`, the call fails with an internal error; a conflict without choice is imported as a copy, without error. `Auto-enable missing plugins?` must be a JSON boolean: the string `"false"` is taken as true.'
|
|
606
|
+
tags:
|
|
607
|
+
- Workflows
|
|
608
|
+
requestBody:
|
|
609
|
+
required: true
|
|
610
|
+
content:
|
|
611
|
+
application/json:
|
|
612
|
+
schema:
|
|
613
|
+
type: array
|
|
614
|
+
description: Array of six objects with one key each, in this order
|
|
615
|
+
minItems: 6
|
|
616
|
+
maxItems: 6
|
|
617
|
+
prefixItems:
|
|
618
|
+
- type: object
|
|
619
|
+
required:
|
|
620
|
+
- filename
|
|
621
|
+
properties:
|
|
622
|
+
filename:
|
|
623
|
+
type: string
|
|
624
|
+
description: Path of the workflow file on the Orchestrator host
|
|
625
|
+
additionalProperties: false
|
|
626
|
+
- type: object
|
|
627
|
+
required:
|
|
628
|
+
- add as revision
|
|
629
|
+
properties:
|
|
630
|
+
add as revision:
|
|
631
|
+
type: [integer, string, 'null']
|
|
632
|
+
description: ID or portable ID of the workflow to add a revision to, or `null` for a new workflow
|
|
633
|
+
additionalProperties: false
|
|
634
|
+
- type: object
|
|
635
|
+
required:
|
|
636
|
+
- subwf constraints
|
|
637
|
+
properties:
|
|
638
|
+
subwf constraints:
|
|
639
|
+
type: object
|
|
640
|
+
description: Sub-workflow name to choice
|
|
641
|
+
additionalProperties:
|
|
642
|
+
type: string
|
|
643
|
+
enum:
|
|
644
|
+
- Map to the Existing Sub-Workflow
|
|
645
|
+
- Create a new Sub-Workflow with a unique name
|
|
646
|
+
- Add a new revision to the existing Sub-Workflow
|
|
647
|
+
additionalProperties: false
|
|
648
|
+
- type: object
|
|
649
|
+
required:
|
|
650
|
+
- action template constraints
|
|
651
|
+
properties:
|
|
652
|
+
action template constraints:
|
|
653
|
+
type: object
|
|
654
|
+
description: Global template name to choice
|
|
655
|
+
additionalProperties:
|
|
656
|
+
type: string
|
|
657
|
+
enum:
|
|
658
|
+
- Map to the existing Global Template
|
|
659
|
+
- Create a new Global Template with a different name
|
|
660
|
+
- Override the existing Global Template with this new template
|
|
661
|
+
additionalProperties: false
|
|
662
|
+
- type: object
|
|
663
|
+
required:
|
|
664
|
+
- remote node constraints
|
|
665
|
+
properties:
|
|
666
|
+
remote node constraints:
|
|
667
|
+
type: object
|
|
668
|
+
description: Remote node name to choice
|
|
669
|
+
additionalProperties:
|
|
670
|
+
type: string
|
|
671
|
+
enum:
|
|
672
|
+
- Map to the existing Remote Node
|
|
673
|
+
- Create a new Remote Node with a different name
|
|
674
|
+
- Override the Existing Remote Node with this importing node
|
|
675
|
+
additionalProperties: false
|
|
676
|
+
- type: object
|
|
677
|
+
required:
|
|
678
|
+
- Auto-enable missing plugins?
|
|
679
|
+
properties:
|
|
680
|
+
Auto-enable missing plugins?:
|
|
681
|
+
type: boolean
|
|
682
|
+
additionalProperties: false
|
|
683
|
+
items: false
|
|
684
|
+
examples:
|
|
685
|
+
- - filename: /opt/aspera/orchestrator/var/run/orchestrator/workflows/import/my_workflow.yml
|
|
686
|
+
- add as revision: 239
|
|
687
|
+
- subwf constraints: {}
|
|
688
|
+
- action template constraints:
|
|
689
|
+
Search Files: Map to the existing Global Template
|
|
690
|
+
- remote node constraints:
|
|
691
|
+
Baton: Map to the existing Remote Node
|
|
692
|
+
- Auto-enable missing plugins?: true
|
|
693
|
+
responses:
|
|
694
|
+
'200':
|
|
695
|
+
description: The workflow that was imported (JSON)
|
|
696
|
+
content:
|
|
697
|
+
application/json:
|
|
698
|
+
schema:
|
|
699
|
+
$ref: '#/components/schemas/Workflow'
|
|
700
|
+
'401':
|
|
701
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
702
|
+
default:
|
|
703
|
+
$ref: '#/components/responses/Error'
|
|
704
|
+
'500':
|
|
705
|
+
description: Internal error, e.g. plugins to enable and not auto-enabled, or a file that cannot be read
|
|
706
|
+
/api/publish_workflow:
|
|
707
|
+
post:
|
|
708
|
+
operationId: publish_workflow
|
|
709
|
+
summary: Publish a workflow
|
|
710
|
+
description: Publishes the last whiteboard revision. The result is `true`, or `false` when the whiteboard has no `error_free` value.
|
|
711
|
+
tags:
|
|
712
|
+
- Workflows
|
|
713
|
+
parameters:
|
|
714
|
+
- name: id
|
|
715
|
+
in: query
|
|
716
|
+
schema:
|
|
717
|
+
type: string
|
|
718
|
+
description: Workflow ID or portable ID (also accepted in a JSON body, or in the path `/api/publish_workflow/<id>`)
|
|
719
|
+
example: '123'
|
|
720
|
+
- $ref: '#/components/parameters/Format'
|
|
721
|
+
requestBody:
|
|
722
|
+
content:
|
|
723
|
+
application/json:
|
|
724
|
+
schema:
|
|
725
|
+
type: object
|
|
726
|
+
properties:
|
|
727
|
+
id:
|
|
728
|
+
type: string
|
|
729
|
+
description: Workflow ID or portable ID
|
|
730
|
+
responses:
|
|
731
|
+
'200':
|
|
732
|
+
description: '`true` or `false` (JSON), or `<WorkflowPublish><Success>true</Success></WorkflowPublish>` (XML)'
|
|
733
|
+
content:
|
|
734
|
+
application/json:
|
|
735
|
+
schema:
|
|
736
|
+
type: boolean
|
|
737
|
+
'401':
|
|
738
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
739
|
+
default:
|
|
740
|
+
$ref: '#/components/responses/Error'
|
|
741
|
+
/api/export_workflow/{id}:
|
|
742
|
+
get:
|
|
743
|
+
operationId: export_workflow
|
|
744
|
+
summary: Export a workflow
|
|
745
|
+
description: Returns the workflow file (`.yml`), or a package (`.wkf`) with its sub-workflows and remote nodes.
|
|
746
|
+
tags:
|
|
747
|
+
- Workflows
|
|
748
|
+
parameters:
|
|
749
|
+
- name: id
|
|
750
|
+
in: path
|
|
751
|
+
required: true
|
|
752
|
+
schema:
|
|
753
|
+
type: string
|
|
754
|
+
description: Workflow ID or portable ID
|
|
755
|
+
- name: export_with_dependencies
|
|
756
|
+
in: query
|
|
757
|
+
schema:
|
|
758
|
+
type: string
|
|
759
|
+
description: Export a package with dependencies. Any non-empty value, including `false`, enables it.
|
|
760
|
+
responses:
|
|
761
|
+
'200':
|
|
762
|
+
description: The workflow file
|
|
763
|
+
content:
|
|
764
|
+
application/octet-stream:
|
|
765
|
+
schema:
|
|
766
|
+
type: string
|
|
767
|
+
format: binary
|
|
768
|
+
'401':
|
|
769
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
770
|
+
default:
|
|
771
|
+
$ref: '#/components/responses/Error'
|
|
772
|
+
/api/list_by_subworkflow/{id}:
|
|
773
|
+
get:
|
|
774
|
+
operationId: list_by_subworkflow
|
|
775
|
+
summary: Published workflows that use a sub-workflow
|
|
776
|
+
tags:
|
|
777
|
+
- Workflows
|
|
778
|
+
parameters:
|
|
779
|
+
- name: id
|
|
780
|
+
in: path
|
|
781
|
+
required: true
|
|
782
|
+
schema:
|
|
783
|
+
type: integer
|
|
784
|
+
description: Sub-workflow ID (or query parameter `sub_wf_id`, which takes precedence)
|
|
785
|
+
- name: sub_wf_id
|
|
786
|
+
in: query
|
|
787
|
+
schema:
|
|
788
|
+
type: integer
|
|
789
|
+
description: Sub-workflow ID
|
|
790
|
+
- $ref: '#/components/parameters/Format'
|
|
791
|
+
responses:
|
|
792
|
+
'200':
|
|
793
|
+
description: IDs of the parent workflows
|
|
794
|
+
content:
|
|
795
|
+
application/json:
|
|
796
|
+
schema:
|
|
797
|
+
type: object
|
|
798
|
+
properties:
|
|
799
|
+
parent_workflows:
|
|
800
|
+
type: array
|
|
801
|
+
items:
|
|
802
|
+
type: string
|
|
803
|
+
'401':
|
|
804
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
805
|
+
default:
|
|
806
|
+
$ref: '#/components/responses/Error'
|
|
807
|
+
/api/retrieve_steps/{id}:
|
|
808
|
+
get:
|
|
809
|
+
operationId: retrieve_steps
|
|
810
|
+
summary: Steps of a type in published workflows, with their work orders
|
|
811
|
+
tags:
|
|
812
|
+
- Workflows
|
|
813
|
+
parameters:
|
|
814
|
+
- $ref: '#/components/parameters/AnyId'
|
|
815
|
+
- name: type
|
|
816
|
+
in: query
|
|
817
|
+
required: true
|
|
818
|
+
schema:
|
|
819
|
+
type: string
|
|
820
|
+
description: Step type (plugin class name), e.g. `CustomRuby`
|
|
821
|
+
- $ref: '#/components/parameters/Format'
|
|
822
|
+
responses:
|
|
823
|
+
'200':
|
|
824
|
+
description: List of steps
|
|
825
|
+
content:
|
|
826
|
+
application/json:
|
|
827
|
+
schema:
|
|
828
|
+
type: array
|
|
829
|
+
items:
|
|
830
|
+
type: object
|
|
831
|
+
properties:
|
|
832
|
+
step_id:
|
|
833
|
+
type: string
|
|
834
|
+
step_name:
|
|
835
|
+
type: string
|
|
836
|
+
step_status:
|
|
837
|
+
type: [string, 'null']
|
|
838
|
+
description: Status of the first prerequisite of the step
|
|
839
|
+
wf_id:
|
|
840
|
+
type: string
|
|
841
|
+
wo_id:
|
|
842
|
+
type: integer
|
|
843
|
+
wo_status:
|
|
844
|
+
type: string
|
|
845
|
+
'401':
|
|
846
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
847
|
+
default:
|
|
848
|
+
$ref: '#/components/responses/Error'
|
|
849
|
+
/api/work_orders_list/{id}:
|
|
850
|
+
get:
|
|
851
|
+
operationId: work_orders_list
|
|
852
|
+
summary: List work orders of a workflow
|
|
853
|
+
tags:
|
|
854
|
+
- Work Orders
|
|
855
|
+
parameters:
|
|
856
|
+
- name: id
|
|
857
|
+
in: path
|
|
858
|
+
required: true
|
|
859
|
+
schema:
|
|
860
|
+
type: string
|
|
861
|
+
description: Workflow ID, portable ID or name, or `all` for all workflows
|
|
862
|
+
- name: status
|
|
863
|
+
in: query
|
|
864
|
+
schema:
|
|
865
|
+
type: string
|
|
866
|
+
description: Filter by work order status, e.g. `Failed`
|
|
867
|
+
- name: priority
|
|
868
|
+
in: query
|
|
869
|
+
schema:
|
|
870
|
+
type: string
|
|
871
|
+
description: Filter by priority
|
|
872
|
+
- name: from_date
|
|
873
|
+
in: query
|
|
874
|
+
schema:
|
|
875
|
+
type: string
|
|
876
|
+
description: Work orders updated after this date, e.g. `'06-27-2015 02:40:59'`
|
|
877
|
+
- name: to_date
|
|
878
|
+
in: query
|
|
879
|
+
schema:
|
|
880
|
+
type: string
|
|
881
|
+
description: Work orders updated before this date
|
|
882
|
+
- name: tag
|
|
883
|
+
in: query
|
|
884
|
+
style: form
|
|
885
|
+
explode: false
|
|
886
|
+
schema:
|
|
887
|
+
type: array
|
|
888
|
+
items:
|
|
889
|
+
type: string
|
|
890
|
+
description: Comma-separated list of tags, all required
|
|
891
|
+
- name: max_results
|
|
892
|
+
in: query
|
|
893
|
+
schema:
|
|
894
|
+
type: integer
|
|
895
|
+
description: Maximum number of work orders
|
|
896
|
+
- $ref: '#/components/parameters/Format'
|
|
897
|
+
responses:
|
|
898
|
+
'200':
|
|
899
|
+
description: List of work orders
|
|
900
|
+
content:
|
|
901
|
+
application/json:
|
|
902
|
+
schema:
|
|
903
|
+
type: object
|
|
904
|
+
properties:
|
|
905
|
+
work_orders:
|
|
906
|
+
type: array
|
|
907
|
+
items:
|
|
908
|
+
$ref: '#/components/schemas/WorkOrder'
|
|
909
|
+
'401':
|
|
910
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
911
|
+
default:
|
|
912
|
+
$ref: '#/components/responses/Error'
|
|
913
|
+
/api/work_order_status/{id}:
|
|
914
|
+
get:
|
|
915
|
+
operationId: work_order_status
|
|
916
|
+
summary: Get work order status
|
|
917
|
+
description: |
|
|
918
|
+
Returns the status of a work order and its work steps.
|
|
919
|
+
|
|
920
|
+
If the work order includes sub-workflows, only the sub-workflow status is displayed, not the steps within the sub-workflow.
|
|
921
|
+
tags:
|
|
922
|
+
- Work Orders
|
|
923
|
+
parameters:
|
|
924
|
+
- name: id
|
|
925
|
+
in: path
|
|
926
|
+
required: true
|
|
927
|
+
schema:
|
|
928
|
+
type: integer
|
|
929
|
+
description: Work order ID
|
|
930
|
+
- $ref: '#/components/parameters/Format'
|
|
931
|
+
responses:
|
|
932
|
+
'200':
|
|
933
|
+
description: Work order status
|
|
934
|
+
content:
|
|
935
|
+
application/json:
|
|
936
|
+
schema:
|
|
937
|
+
type: object
|
|
938
|
+
properties:
|
|
939
|
+
work_order:
|
|
940
|
+
allOf:
|
|
941
|
+
- $ref: '#/components/schemas/WorkOrder'
|
|
942
|
+
properties:
|
|
943
|
+
percent_complete:
|
|
944
|
+
type: integer
|
|
945
|
+
minimum: 0
|
|
946
|
+
maximum: 100
|
|
947
|
+
work_steps:
|
|
948
|
+
type: array
|
|
949
|
+
description: Steps with `step_id` greater than 0
|
|
950
|
+
items:
|
|
951
|
+
$ref: '#/components/schemas/WorkStepStatus'
|
|
952
|
+
'401':
|
|
953
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
954
|
+
default:
|
|
955
|
+
$ref: '#/components/responses/Error'
|
|
956
|
+
/api/work_order_output/{id}:
|
|
957
|
+
get:
|
|
958
|
+
operationId: work_order_output
|
|
959
|
+
summary: Outputs of a work order
|
|
960
|
+
description: |
|
|
961
|
+
All outputs, the outputs of a step (`step_name`), or the outputs of a given name (`variable_name`).
|
|
962
|
+
With both `step_name` and `variable_name`, JSON returns the value only.
|
|
963
|
+
Format `text` (or `string`) returns the values, one per line.
|
|
964
|
+
tags:
|
|
965
|
+
- Work Orders
|
|
966
|
+
parameters:
|
|
967
|
+
- name: id
|
|
968
|
+
in: path
|
|
969
|
+
required: true
|
|
970
|
+
schema:
|
|
971
|
+
type: integer
|
|
972
|
+
description: Work order ID (or query parameter `workorder_id`, which takes precedence)
|
|
973
|
+
- name: workorder_id
|
|
974
|
+
in: query
|
|
975
|
+
schema:
|
|
976
|
+
type: integer
|
|
977
|
+
description: Work order ID
|
|
978
|
+
- name: step_name
|
|
979
|
+
in: query
|
|
980
|
+
schema:
|
|
981
|
+
type: string
|
|
982
|
+
description: Only the outputs of this step
|
|
983
|
+
- name: variable_name
|
|
984
|
+
in: query
|
|
985
|
+
schema:
|
|
986
|
+
type: string
|
|
987
|
+
description: Only the outputs with this name
|
|
988
|
+
- name: detailed
|
|
989
|
+
in: query
|
|
990
|
+
schema:
|
|
991
|
+
type: string
|
|
992
|
+
enum:
|
|
993
|
+
- 'true'
|
|
994
|
+
- 'false'
|
|
995
|
+
description: 'JSON: also the variable type, value type, work order ID and status of each output'
|
|
996
|
+
- name: format
|
|
997
|
+
in: query
|
|
998
|
+
schema:
|
|
999
|
+
type: string
|
|
1000
|
+
enum:
|
|
1001
|
+
- xml
|
|
1002
|
+
- json
|
|
1003
|
+
- text
|
|
1004
|
+
- string
|
|
1005
|
+
default: xml
|
|
1006
|
+
description: Response format
|
|
1007
|
+
responses:
|
|
1008
|
+
'200':
|
|
1009
|
+
description: Outputs
|
|
1010
|
+
content:
|
|
1011
|
+
application/json:
|
|
1012
|
+
schema:
|
|
1013
|
+
description: |
|
|
1014
|
+
- Without both `step_name` and `variable_name`: object `{"<step name>:<output name>": <value>}`
|
|
1015
|
+
- With `detailed=true`: array of `{"<step name>:<output name>": <value>, "variable_type", "value_type", "<work order name>:WorkOrder_ID", "<work order name>:WorkOrder_Status"}`
|
|
1016
|
+
- With both `step_name` and `variable_name`: the value only
|
|
1017
|
+
text/plain:
|
|
1018
|
+
schema:
|
|
1019
|
+
type: string
|
|
1020
|
+
description: Format `text` or `string`, one value per line
|
|
1021
|
+
'401':
|
|
1022
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1023
|
+
default:
|
|
1024
|
+
$ref: '#/components/responses/Error'
|
|
1025
|
+
/api/work_order_cancel/{id}:
|
|
1026
|
+
get:
|
|
1027
|
+
operationId: work_order_cancel
|
|
1028
|
+
summary: Cancel a work order
|
|
1029
|
+
tags:
|
|
1030
|
+
- Work Orders
|
|
1031
|
+
parameters:
|
|
1032
|
+
- name: id
|
|
1033
|
+
in: path
|
|
1034
|
+
required: true
|
|
1035
|
+
schema:
|
|
1036
|
+
type: integer
|
|
1037
|
+
description: Work order ID
|
|
1038
|
+
- name: force
|
|
1039
|
+
in: query
|
|
1040
|
+
schema:
|
|
1041
|
+
type: string
|
|
1042
|
+
description: Force the cancellation (any value except `false`)
|
|
1043
|
+
- $ref: '#/components/parameters/Format'
|
|
1044
|
+
responses:
|
|
1045
|
+
'200':
|
|
1046
|
+
description: The work order
|
|
1047
|
+
content:
|
|
1048
|
+
application/json:
|
|
1049
|
+
schema:
|
|
1050
|
+
$ref: '#/components/schemas/WorkOrder'
|
|
1051
|
+
'401':
|
|
1052
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1053
|
+
default:
|
|
1054
|
+
$ref: '#/components/responses/Error'
|
|
1055
|
+
/api/work_order_reset/{id}:
|
|
1056
|
+
get:
|
|
1057
|
+
operationId: work_order_reset
|
|
1058
|
+
summary: Reset a work order
|
|
1059
|
+
tags:
|
|
1060
|
+
- Work Orders
|
|
1061
|
+
parameters:
|
|
1062
|
+
- name: id
|
|
1063
|
+
in: path
|
|
1064
|
+
required: true
|
|
1065
|
+
schema:
|
|
1066
|
+
type: integer
|
|
1067
|
+
description: Work order ID
|
|
1068
|
+
- $ref: '#/components/parameters/Format'
|
|
1069
|
+
responses:
|
|
1070
|
+
'200':
|
|
1071
|
+
description: The work order and its work steps
|
|
1072
|
+
content:
|
|
1073
|
+
application/json:
|
|
1074
|
+
schema:
|
|
1075
|
+
$ref: '#/components/schemas/WorkOrderWithSteps'
|
|
1076
|
+
'401':
|
|
1077
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1078
|
+
default:
|
|
1079
|
+
$ref: '#/components/responses/Error'
|
|
1080
|
+
/api/reset/{id}.{format}:
|
|
1081
|
+
post:
|
|
1082
|
+
operationId: reset
|
|
1083
|
+
summary: Reset a work order (XML result)
|
|
1084
|
+
description: Same as `work_order_reset`, implemented by the work order pages. The response is always XML.
|
|
1085
|
+
tags:
|
|
1086
|
+
- Work Orders
|
|
1087
|
+
parameters:
|
|
1088
|
+
- name: id
|
|
1089
|
+
in: path
|
|
1090
|
+
required: true
|
|
1091
|
+
schema:
|
|
1092
|
+
type: integer
|
|
1093
|
+
description: Work order ID
|
|
1094
|
+
- name: format
|
|
1095
|
+
in: path
|
|
1096
|
+
required: true
|
|
1097
|
+
schema:
|
|
1098
|
+
type: string
|
|
1099
|
+
const: xml
|
|
1100
|
+
description: Required by the route
|
|
1101
|
+
responses:
|
|
1102
|
+
'200':
|
|
1103
|
+
description: The work order (XML)
|
|
1104
|
+
'401':
|
|
1105
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1106
|
+
/api/work_order_destroy/{id}:
|
|
1107
|
+
get:
|
|
1108
|
+
operationId: work_order_destroy
|
|
1109
|
+
summary: Delete a work order and its dependents
|
|
1110
|
+
tags:
|
|
1111
|
+
- Work Orders
|
|
1112
|
+
parameters:
|
|
1113
|
+
- name: id
|
|
1114
|
+
in: path
|
|
1115
|
+
required: true
|
|
1116
|
+
schema:
|
|
1117
|
+
type: integer
|
|
1118
|
+
description: Work order ID
|
|
1119
|
+
- $ref: '#/components/parameters/Format'
|
|
1120
|
+
responses:
|
|
1121
|
+
'200':
|
|
1122
|
+
description: Confirmation message
|
|
1123
|
+
content:
|
|
1124
|
+
application/json:
|
|
1125
|
+
schema:
|
|
1126
|
+
type: string
|
|
1127
|
+
examples:
|
|
1128
|
+
- " Work order '123' was deleted"
|
|
1129
|
+
'401':
|
|
1130
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1131
|
+
default:
|
|
1132
|
+
$ref: '#/components/responses/Error'
|
|
1133
|
+
/api/initiate:
|
|
1134
|
+
post:
|
|
1135
|
+
operationId: initiate
|
|
1136
|
+
summary: Initiate a new work order
|
|
1137
|
+
description: |
|
|
1138
|
+
Starts a new work order for the specified workflow.
|
|
1139
|
+
|
|
1140
|
+
Runtime input values are passed under the `external_parameters` key.
|
|
1141
|
+
To discover what parameters a workflow accepts, call `/api/workflow_inputs_spec/{workflow_id}` first.
|
|
1142
|
+
With format `json`, the keys of a JSON body are also merged into the runtime parameters.
|
|
1143
|
+
tags:
|
|
1144
|
+
- Work Orders
|
|
1145
|
+
parameters:
|
|
1146
|
+
- $ref: '#/components/parameters/Format'
|
|
1147
|
+
- name: synchronous
|
|
1148
|
+
in: query
|
|
1149
|
+
schema:
|
|
1150
|
+
type: string
|
|
1151
|
+
enum:
|
|
1152
|
+
- 'true'
|
|
1153
|
+
- 'false'
|
|
1154
|
+
description: '`true`: wait for the end of the work order'
|
|
1155
|
+
- name: timeout
|
|
1156
|
+
in: query
|
|
1157
|
+
schema:
|
|
1158
|
+
type: integer
|
|
1159
|
+
minimum: 0
|
|
1160
|
+
description: 'With `synchronous`, maximum wait in seconds (0 or not set: no limit)'
|
|
1161
|
+
- name: explicit_output
|
|
1162
|
+
in: query
|
|
1163
|
+
schema:
|
|
1164
|
+
type: string
|
|
1165
|
+
description: Return only this output, as `<step name>:<output name>`
|
|
1166
|
+
- name: explicit_output_step
|
|
1167
|
+
in: query
|
|
1168
|
+
schema:
|
|
1169
|
+
type: string
|
|
1170
|
+
description: Return only an output of this step (with `explicit_output_variable`)
|
|
1171
|
+
- name: explicit_output_variable
|
|
1172
|
+
in: query
|
|
1173
|
+
schema:
|
|
1174
|
+
type: string
|
|
1175
|
+
description: Name of the output to return (with `explicit_output_step`)
|
|
1176
|
+
- name: on_error_return_code
|
|
1177
|
+
in: query
|
|
1178
|
+
schema:
|
|
1179
|
+
type: integer
|
|
1180
|
+
description: HTTP status to return when the work order ends with status `Error`
|
|
1181
|
+
- name: on_failed_return_code
|
|
1182
|
+
in: query
|
|
1183
|
+
schema:
|
|
1184
|
+
type: integer
|
|
1185
|
+
description: HTTP status to return when the work order ends with status `Failed`
|
|
1186
|
+
- name: tags
|
|
1187
|
+
in: query
|
|
1188
|
+
style: form
|
|
1189
|
+
explode: false
|
|
1190
|
+
schema:
|
|
1191
|
+
type: array
|
|
1192
|
+
items:
|
|
1193
|
+
type: string
|
|
1194
|
+
description: Comma-separated tags of the work order
|
|
1195
|
+
- name: preemptive_level
|
|
1196
|
+
in: query
|
|
1197
|
+
schema:
|
|
1198
|
+
type: integer
|
|
1199
|
+
description: Priority of the work order (its opposite is used)
|
|
1200
|
+
- name: wo_id_only
|
|
1201
|
+
in: query
|
|
1202
|
+
schema:
|
|
1203
|
+
type: string
|
|
1204
|
+
enum:
|
|
1205
|
+
- 'true'
|
|
1206
|
+
- 'false'
|
|
1207
|
+
description: '`true`: return only the work order ID'
|
|
1208
|
+
requestBody:
|
|
1209
|
+
required: true
|
|
1210
|
+
content:
|
|
1211
|
+
application/json:
|
|
1212
|
+
schema:
|
|
1213
|
+
type: object
|
|
1214
|
+
required:
|
|
1215
|
+
- workflow_id
|
|
1216
|
+
properties:
|
|
1217
|
+
workflow_id:
|
|
1218
|
+
type: string
|
|
1219
|
+
description: ID, portable ID or name of the workflow to execute
|
|
1220
|
+
examples:
|
|
1221
|
+
- '123'
|
|
1222
|
+
external_parameters:
|
|
1223
|
+
type: object
|
|
1224
|
+
description: Runtime parameters of the workflow (name to value)
|
|
1225
|
+
additionalProperties: true
|
|
1226
|
+
responses:
|
|
1227
|
+
'200':
|
|
1228
|
+
description: Work order initiated (or the status given by `on_error_return_code`, `on_failed_return_code`)
|
|
1229
|
+
content:
|
|
1230
|
+
application/json:
|
|
1231
|
+
schema:
|
|
1232
|
+
anyOf:
|
|
1233
|
+
- title: Work order
|
|
1234
|
+
allOf:
|
|
1235
|
+
- $ref: '#/components/schemas/WorkOrderWithSteps'
|
|
1236
|
+
properties:
|
|
1237
|
+
parameters:
|
|
1238
|
+
type: object
|
|
1239
|
+
description: Runtime parameters of the work order
|
|
1240
|
+
- title: Output value
|
|
1241
|
+
description: With `explicit_output`, or `explicit_output_step` and `explicit_output_variable`
|
|
1242
|
+
'400':
|
|
1243
|
+
description: Workflow not found or not published, or missing required parameters
|
|
1244
|
+
content:
|
|
1245
|
+
application/json:
|
|
1246
|
+
schema:
|
|
1247
|
+
oneOf:
|
|
1248
|
+
- $ref: '#/components/schemas/Error'
|
|
1249
|
+
- title: Missing parameters
|
|
1250
|
+
type: object
|
|
1251
|
+
required:
|
|
1252
|
+
- work_order
|
|
1253
|
+
- missing_parameters
|
|
1254
|
+
properties:
|
|
1255
|
+
work_order:
|
|
1256
|
+
allOf:
|
|
1257
|
+
- $ref: '#/components/schemas/WorkOrder'
|
|
1258
|
+
properties:
|
|
1259
|
+
status:
|
|
1260
|
+
const: Not started
|
|
1261
|
+
status_details:
|
|
1262
|
+
const: Missing required parameters
|
|
1263
|
+
missing_parameters:
|
|
1264
|
+
type: array
|
|
1265
|
+
items:
|
|
1266
|
+
type: string
|
|
1267
|
+
'401':
|
|
1268
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1269
|
+
/api/work_step_status/{id}:
|
|
1270
|
+
get:
|
|
1271
|
+
operationId: work_step_status
|
|
1272
|
+
summary: Status, inputs and outputs of a work step, or change its status
|
|
1273
|
+
description: |
|
|
1274
|
+
Returns the work step with its inputs and outputs,
|
|
1275
|
+
or only the value of an output (`output_name`), or only the status (`status_only`, as plain text).
|
|
1276
|
+
With `set_status` or `set_status_details`, modifies the work step and returns its new status.
|
|
1277
|
+
tags:
|
|
1278
|
+
- Work Steps
|
|
1279
|
+
parameters:
|
|
1280
|
+
- name: id
|
|
1281
|
+
in: path
|
|
1282
|
+
required: true
|
|
1283
|
+
schema:
|
|
1284
|
+
type: string
|
|
1285
|
+
description: Work step ID, or `work_order` to use `work_order_id` and `step_name`
|
|
1286
|
+
- name: work_order_id
|
|
1287
|
+
in: query
|
|
1288
|
+
schema:
|
|
1289
|
+
type: integer
|
|
1290
|
+
description: Work order ID, when `id` is `work_order`
|
|
1291
|
+
- name: step_name
|
|
1292
|
+
in: query
|
|
1293
|
+
schema:
|
|
1294
|
+
type: string
|
|
1295
|
+
description: Step name, when `id` is `work_order`
|
|
1296
|
+
- name: output_name
|
|
1297
|
+
in: query
|
|
1298
|
+
schema:
|
|
1299
|
+
type: string
|
|
1300
|
+
description: Return only the value of this output
|
|
1301
|
+
- name: status_only
|
|
1302
|
+
in: query
|
|
1303
|
+
schema:
|
|
1304
|
+
type: string
|
|
1305
|
+
description: Return only the status (any value except `false`)
|
|
1306
|
+
- name: set_status
|
|
1307
|
+
in: query
|
|
1308
|
+
schema:
|
|
1309
|
+
type: string
|
|
1310
|
+
description: New status of the work step
|
|
1311
|
+
- name: set_status_details
|
|
1312
|
+
in: query
|
|
1313
|
+
schema:
|
|
1314
|
+
type: string
|
|
1315
|
+
description: New status details of the work step
|
|
1316
|
+
- name: set_percent_complete
|
|
1317
|
+
in: query
|
|
1318
|
+
schema:
|
|
1319
|
+
type: integer
|
|
1320
|
+
minimum: 0
|
|
1321
|
+
maximum: 100
|
|
1322
|
+
description: New percentage of completion, with `set_status` or `set_status_details`
|
|
1323
|
+
- name: format
|
|
1324
|
+
in: query
|
|
1325
|
+
schema:
|
|
1326
|
+
type: string
|
|
1327
|
+
enum:
|
|
1328
|
+
- xml
|
|
1329
|
+
- json
|
|
1330
|
+
- txt
|
|
1331
|
+
default: xml
|
|
1332
|
+
description: Response format (`txt` for a value or a status as plain text)
|
|
1333
|
+
responses:
|
|
1334
|
+
'200':
|
|
1335
|
+
description: Work step status
|
|
1336
|
+
content:
|
|
1337
|
+
application/json:
|
|
1338
|
+
schema:
|
|
1339
|
+
anyOf:
|
|
1340
|
+
- title: Work step
|
|
1341
|
+
type: object
|
|
1342
|
+
properties:
|
|
1343
|
+
work_step:
|
|
1344
|
+
$ref: '#/components/schemas/WorkStep'
|
|
1345
|
+
outputs:
|
|
1346
|
+
type: array
|
|
1347
|
+
items:
|
|
1348
|
+
$ref: '#/components/schemas/StepVariable'
|
|
1349
|
+
inputs:
|
|
1350
|
+
type: array
|
|
1351
|
+
items:
|
|
1352
|
+
$ref: '#/components/schemas/StepVariable'
|
|
1353
|
+
carry_thrus:
|
|
1354
|
+
type: array
|
|
1355
|
+
description: Variables of other steps
|
|
1356
|
+
items:
|
|
1357
|
+
$ref: '#/components/schemas/StepVariable'
|
|
1358
|
+
- title: New status
|
|
1359
|
+
description: With `set_status` or `set_status_details`
|
|
1360
|
+
type: object
|
|
1361
|
+
properties:
|
|
1362
|
+
Work_step_id:
|
|
1363
|
+
type: integer
|
|
1364
|
+
Work_step_status:
|
|
1365
|
+
type: string
|
|
1366
|
+
Work_step_status_details:
|
|
1367
|
+
type: [string, 'null']
|
|
1368
|
+
Work_step_percent_complete:
|
|
1369
|
+
type: [integer, 'null']
|
|
1370
|
+
- title: Output value
|
|
1371
|
+
description: With `output_name`
|
|
1372
|
+
text/plain:
|
|
1373
|
+
schema:
|
|
1374
|
+
type: string
|
|
1375
|
+
description: 'Format `txt`: a value or a status. With `status_only`, the status is also plain text in format `json`.'
|
|
1376
|
+
'401':
|
|
1377
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1378
|
+
default:
|
|
1379
|
+
$ref: '#/components/responses/Error'
|
|
1380
|
+
/api/work_step_cancel/{id}:
|
|
1381
|
+
get:
|
|
1382
|
+
operationId: work_step_cancel
|
|
1383
|
+
summary: Cancel a work step
|
|
1384
|
+
tags:
|
|
1385
|
+
- Work Steps
|
|
1386
|
+
parameters:
|
|
1387
|
+
- name: id
|
|
1388
|
+
in: path
|
|
1389
|
+
required: true
|
|
1390
|
+
schema:
|
|
1391
|
+
type: integer
|
|
1392
|
+
description: Work step ID
|
|
1393
|
+
- $ref: '#/components/parameters/Format'
|
|
1394
|
+
responses:
|
|
1395
|
+
'200':
|
|
1396
|
+
description: The work step
|
|
1397
|
+
content:
|
|
1398
|
+
application/json:
|
|
1399
|
+
schema:
|
|
1400
|
+
$ref: '#/components/schemas/WorkStep'
|
|
1401
|
+
'401':
|
|
1402
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1403
|
+
default:
|
|
1404
|
+
$ref: '#/components/responses/Error'
|
|
1405
|
+
/api/workstep_reset/{id}:
|
|
1406
|
+
get:
|
|
1407
|
+
operationId: workstep_reset
|
|
1408
|
+
summary: Restart work orders from work steps
|
|
1409
|
+
tags:
|
|
1410
|
+
- Work Steps
|
|
1411
|
+
parameters:
|
|
1412
|
+
- name: id
|
|
1413
|
+
in: path
|
|
1414
|
+
required: true
|
|
1415
|
+
schema:
|
|
1416
|
+
type: array
|
|
1417
|
+
items:
|
|
1418
|
+
type: integer
|
|
1419
|
+
description: Work step ID, or comma-separated list of IDs
|
|
1420
|
+
- $ref: '#/components/parameters/Format'
|
|
1421
|
+
responses:
|
|
1422
|
+
'200':
|
|
1423
|
+
description: The restarted work orders
|
|
1424
|
+
content:
|
|
1425
|
+
application/json:
|
|
1426
|
+
schema:
|
|
1427
|
+
oneOf:
|
|
1428
|
+
- $ref: '#/components/schemas/WorkstepReset'
|
|
1429
|
+
- type: array
|
|
1430
|
+
description: For several work step IDs
|
|
1431
|
+
items:
|
|
1432
|
+
$ref: '#/components/schemas/WorkstepReset'
|
|
1433
|
+
'401':
|
|
1434
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1435
|
+
default:
|
|
1436
|
+
$ref: '#/components/responses/Error'
|
|
1437
|
+
/api/queues_list:
|
|
1438
|
+
get:
|
|
1439
|
+
operationId: queues_list
|
|
1440
|
+
summary: List all queues
|
|
1441
|
+
tags:
|
|
1442
|
+
- Queues
|
|
1443
|
+
parameters:
|
|
1444
|
+
- $ref: '#/components/parameters/Format'
|
|
1445
|
+
responses:
|
|
1446
|
+
'200':
|
|
1447
|
+
description: List of queues
|
|
1448
|
+
content:
|
|
1449
|
+
application/json:
|
|
1450
|
+
schema:
|
|
1451
|
+
type: object
|
|
1452
|
+
properties:
|
|
1453
|
+
Queues:
|
|
1454
|
+
type: object
|
|
1455
|
+
properties:
|
|
1456
|
+
queue:
|
|
1457
|
+
type: array
|
|
1458
|
+
items:
|
|
1459
|
+
type: object
|
|
1460
|
+
properties:
|
|
1461
|
+
id:
|
|
1462
|
+
type: integer
|
|
1463
|
+
name:
|
|
1464
|
+
type: string
|
|
1465
|
+
displayed_name:
|
|
1466
|
+
type: [string, 'null']
|
|
1467
|
+
update_at:
|
|
1468
|
+
type: string
|
|
1469
|
+
format: date-time
|
|
1470
|
+
created_at:
|
|
1471
|
+
type: string
|
|
1472
|
+
format: date-time
|
|
1473
|
+
'401':
|
|
1474
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1475
|
+
default:
|
|
1476
|
+
$ref: '#/components/responses/Error'
|
|
1477
|
+
/api/queued_items/{id}:
|
|
1478
|
+
get:
|
|
1479
|
+
operationId: queued_items
|
|
1480
|
+
summary: Items of a queue
|
|
1481
|
+
tags:
|
|
1482
|
+
- Queues
|
|
1483
|
+
parameters:
|
|
1484
|
+
- name: id
|
|
1485
|
+
in: path
|
|
1486
|
+
required: true
|
|
1487
|
+
schema:
|
|
1488
|
+
type: string
|
|
1489
|
+
description: Queue name
|
|
1490
|
+
- $ref: '#/components/parameters/Format'
|
|
1491
|
+
responses:
|
|
1492
|
+
'200':
|
|
1493
|
+
description: Queued items
|
|
1494
|
+
content:
|
|
1495
|
+
application/json:
|
|
1496
|
+
schema:
|
|
1497
|
+
$ref: '#/components/schemas/QueuedItems'
|
|
1498
|
+
'401':
|
|
1499
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1500
|
+
default:
|
|
1501
|
+
$ref: '#/components/responses/Error'
|
|
1502
|
+
/api/queue_item/{id}:
|
|
1503
|
+
get:
|
|
1504
|
+
operationId: queue_item
|
|
1505
|
+
summary: Add an item to a queue
|
|
1506
|
+
tags:
|
|
1507
|
+
- Queues
|
|
1508
|
+
parameters:
|
|
1509
|
+
- name: id
|
|
1510
|
+
in: path
|
|
1511
|
+
required: true
|
|
1512
|
+
schema:
|
|
1513
|
+
type: string
|
|
1514
|
+
description: Queue name
|
|
1515
|
+
- name: queued_item
|
|
1516
|
+
in: query
|
|
1517
|
+
required: true
|
|
1518
|
+
schema:
|
|
1519
|
+
type: string
|
|
1520
|
+
description: Item to queue
|
|
1521
|
+
- name: description
|
|
1522
|
+
in: query
|
|
1523
|
+
schema:
|
|
1524
|
+
type: string
|
|
1525
|
+
description: Description of the item
|
|
1526
|
+
- name: priority
|
|
1527
|
+
in: query
|
|
1528
|
+
schema:
|
|
1529
|
+
type: integer
|
|
1530
|
+
description: Priority of the item
|
|
1531
|
+
- name: weight
|
|
1532
|
+
in: query
|
|
1533
|
+
schema:
|
|
1534
|
+
type: integer
|
|
1535
|
+
description: Weight of the item
|
|
1536
|
+
- name: tags
|
|
1537
|
+
in: query
|
|
1538
|
+
style: form
|
|
1539
|
+
explode: false
|
|
1540
|
+
schema:
|
|
1541
|
+
type: array
|
|
1542
|
+
items:
|
|
1543
|
+
type: string
|
|
1544
|
+
description: Comma-separated tags
|
|
1545
|
+
- $ref: '#/components/parameters/Format'
|
|
1546
|
+
responses:
|
|
1547
|
+
'200':
|
|
1548
|
+
description: The queued item
|
|
1549
|
+
content:
|
|
1550
|
+
application/json:
|
|
1551
|
+
schema:
|
|
1552
|
+
type: object
|
|
1553
|
+
properties:
|
|
1554
|
+
item:
|
|
1555
|
+
description: The queued item
|
|
1556
|
+
description:
|
|
1557
|
+
type: string
|
|
1558
|
+
rank:
|
|
1559
|
+
type: integer
|
|
1560
|
+
priority:
|
|
1561
|
+
type: integer
|
|
1562
|
+
weight:
|
|
1563
|
+
type: integer
|
|
1564
|
+
id:
|
|
1565
|
+
type: integer
|
|
1566
|
+
'401':
|
|
1567
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1568
|
+
default:
|
|
1569
|
+
$ref: '#/components/responses/Error'
|
|
1570
|
+
/api/lookup_queued_item:
|
|
1571
|
+
get:
|
|
1572
|
+
operationId: lookup_queued_item
|
|
1573
|
+
summary: Find queued items
|
|
1574
|
+
description: By item ID, by item (optionally in a queue), or by description (optionally in a queue). Same response as `queued_items`.
|
|
1575
|
+
tags:
|
|
1576
|
+
- Queues
|
|
1577
|
+
parameters:
|
|
1578
|
+
- name: queued_item_id
|
|
1579
|
+
in: query
|
|
1580
|
+
schema:
|
|
1581
|
+
type: integer
|
|
1582
|
+
description: ID of the queued item
|
|
1583
|
+
- name: queued_item
|
|
1584
|
+
in: query
|
|
1585
|
+
schema:
|
|
1586
|
+
type: string
|
|
1587
|
+
description: Queued item
|
|
1588
|
+
- name: queue_desc
|
|
1589
|
+
in: query
|
|
1590
|
+
schema:
|
|
1591
|
+
type: string
|
|
1592
|
+
description: Description of the queued item
|
|
1593
|
+
- name: queue_name
|
|
1594
|
+
in: query
|
|
1595
|
+
schema:
|
|
1596
|
+
type: string
|
|
1597
|
+
description: Queue name, to restrict the search by `queued_item` or `queue_desc`
|
|
1598
|
+
- $ref: '#/components/parameters/Format'
|
|
1599
|
+
responses:
|
|
1600
|
+
'200':
|
|
1601
|
+
description: Queued items found
|
|
1602
|
+
content:
|
|
1603
|
+
application/json:
|
|
1604
|
+
schema:
|
|
1605
|
+
$ref: '#/components/schemas/QueuedItems'
|
|
1606
|
+
'401':
|
|
1607
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1608
|
+
default:
|
|
1609
|
+
$ref: '#/components/responses/Error'
|
|
1610
|
+
/api/reorder_queued_item:
|
|
1611
|
+
get:
|
|
1612
|
+
operationId: reorder_queued_item
|
|
1613
|
+
summary: Move a queued item
|
|
1614
|
+
tags:
|
|
1615
|
+
- Queues
|
|
1616
|
+
parameters:
|
|
1617
|
+
- name: operation
|
|
1618
|
+
in: query
|
|
1619
|
+
required: true
|
|
1620
|
+
schema:
|
|
1621
|
+
type: string
|
|
1622
|
+
enum:
|
|
1623
|
+
- up
|
|
1624
|
+
- down
|
|
1625
|
+
- first
|
|
1626
|
+
- last
|
|
1627
|
+
description: Move
|
|
1628
|
+
- name: queued_item_id
|
|
1629
|
+
in: query
|
|
1630
|
+
schema:
|
|
1631
|
+
type: integer
|
|
1632
|
+
description: ID of the queued item
|
|
1633
|
+
- name: queued_item
|
|
1634
|
+
in: query
|
|
1635
|
+
schema:
|
|
1636
|
+
type: string
|
|
1637
|
+
description: Queued item, when `queued_item_id` is not given
|
|
1638
|
+
- name: queue_name
|
|
1639
|
+
in: query
|
|
1640
|
+
schema:
|
|
1641
|
+
type: string
|
|
1642
|
+
description: Queue name, to find `queued_item`
|
|
1643
|
+
- $ref: '#/components/parameters/Format'
|
|
1644
|
+
responses:
|
|
1645
|
+
'200':
|
|
1646
|
+
description: The moved item
|
|
1647
|
+
content:
|
|
1648
|
+
application/json:
|
|
1649
|
+
schema:
|
|
1650
|
+
$ref: '#/components/schemas/QueuedItems'
|
|
1651
|
+
'401':
|
|
1652
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1653
|
+
default:
|
|
1654
|
+
$ref: '#/components/responses/Error'
|
|
1655
|
+
/api/bulk_reorder_queue:
|
|
1656
|
+
get:
|
|
1657
|
+
operationId: bulk_reorder_queue
|
|
1658
|
+
summary: Move several queued items
|
|
1659
|
+
tags:
|
|
1660
|
+
- Queues
|
|
1661
|
+
parameters:
|
|
1662
|
+
- name: queued_item_ids
|
|
1663
|
+
in: query
|
|
1664
|
+
style: form
|
|
1665
|
+
explode: false
|
|
1666
|
+
required: true
|
|
1667
|
+
schema:
|
|
1668
|
+
type: array
|
|
1669
|
+
items:
|
|
1670
|
+
type: integer
|
|
1671
|
+
description: Comma-separated IDs of queued items
|
|
1672
|
+
- name: operation
|
|
1673
|
+
in: query
|
|
1674
|
+
required: true
|
|
1675
|
+
schema:
|
|
1676
|
+
type: string
|
|
1677
|
+
enum:
|
|
1678
|
+
- up
|
|
1679
|
+
- down
|
|
1680
|
+
- first
|
|
1681
|
+
- last
|
|
1682
|
+
description: Move
|
|
1683
|
+
- $ref: '#/components/parameters/Format'
|
|
1684
|
+
responses:
|
|
1685
|
+
'200':
|
|
1686
|
+
description: The moved items
|
|
1687
|
+
content:
|
|
1688
|
+
application/json:
|
|
1689
|
+
schema:
|
|
1690
|
+
type: object
|
|
1691
|
+
properties:
|
|
1692
|
+
queued_items:
|
|
1693
|
+
type: array
|
|
1694
|
+
items:
|
|
1695
|
+
type: object
|
|
1696
|
+
properties:
|
|
1697
|
+
queued_item:
|
|
1698
|
+
$ref: '#/components/schemas/QueuedItem'
|
|
1699
|
+
queue_data:
|
|
1700
|
+
$ref: '#/components/schemas/QueueMetadata'
|
|
1701
|
+
'401':
|
|
1702
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1703
|
+
default:
|
|
1704
|
+
$ref: '#/components/responses/Error'
|
|
1705
|
+
/api/delete_queued_item:
|
|
1706
|
+
get:
|
|
1707
|
+
operationId: delete_queued_item
|
|
1708
|
+
summary: Delete a queued item
|
|
1709
|
+
tags:
|
|
1710
|
+
- Queues
|
|
1711
|
+
parameters:
|
|
1712
|
+
- name: queue_name
|
|
1713
|
+
in: query
|
|
1714
|
+
required: true
|
|
1715
|
+
schema:
|
|
1716
|
+
type: string
|
|
1717
|
+
description: Queue name
|
|
1718
|
+
- name: queued_item_id
|
|
1719
|
+
in: query
|
|
1720
|
+
required: true
|
|
1721
|
+
schema:
|
|
1722
|
+
type: integer
|
|
1723
|
+
description: ID of the queued item
|
|
1724
|
+
- $ref: '#/components/parameters/Format'
|
|
1725
|
+
responses:
|
|
1726
|
+
'200':
|
|
1727
|
+
description: Confirmation message
|
|
1728
|
+
content:
|
|
1729
|
+
application/json:
|
|
1730
|
+
schema:
|
|
1731
|
+
type: string
|
|
1732
|
+
description: Plain text, not JSON-encoded, although the content type is `application/json`
|
|
1733
|
+
examples:
|
|
1734
|
+
- Item with id 21 was succesfully deleted.
|
|
1735
|
+
'401':
|
|
1736
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1737
|
+
default:
|
|
1738
|
+
$ref: '#/components/responses/Error'
|
|
1739
|
+
/api/monitor_snapshot:
|
|
1740
|
+
get:
|
|
1741
|
+
operationId: monitor_snapshot
|
|
1742
|
+
summary: Status of the monitors
|
|
1743
|
+
tags:
|
|
1744
|
+
- Monitors
|
|
1745
|
+
parameters:
|
|
1746
|
+
- name: id
|
|
1747
|
+
in: query
|
|
1748
|
+
schema:
|
|
1749
|
+
type: string
|
|
1750
|
+
enum:
|
|
1751
|
+
- workflows
|
|
1752
|
+
- workorders
|
|
1753
|
+
- folders
|
|
1754
|
+
- nodes
|
|
1755
|
+
- scripts
|
|
1756
|
+
description: 'Only monitors of this type (also in the path `/api/monitor_snapshot/<type>`). Not set: all.'
|
|
1757
|
+
- $ref: '#/components/parameters/Format'
|
|
1758
|
+
responses:
|
|
1759
|
+
'200':
|
|
1760
|
+
description: Monitor snapshot data
|
|
1761
|
+
content:
|
|
1762
|
+
application/json:
|
|
1763
|
+
schema:
|
|
1764
|
+
type: object
|
|
1765
|
+
properties:
|
|
1766
|
+
monitor:
|
|
1767
|
+
type: object
|
|
1768
|
+
properties:
|
|
1769
|
+
monitor_workflows:
|
|
1770
|
+
type: object
|
|
1771
|
+
description: Empty when there is no monitor
|
|
1772
|
+
properties:
|
|
1773
|
+
monitor_workflow:
|
|
1774
|
+
type: array
|
|
1775
|
+
items:
|
|
1776
|
+
type: object
|
|
1777
|
+
properties:
|
|
1778
|
+
id:
|
|
1779
|
+
type: integer
|
|
1780
|
+
workflow_id:
|
|
1781
|
+
type: integer
|
|
1782
|
+
workflow_name:
|
|
1783
|
+
type: string
|
|
1784
|
+
last_activity:
|
|
1785
|
+
description: Only when active
|
|
1786
|
+
active:
|
|
1787
|
+
type: boolean
|
|
1788
|
+
status:
|
|
1789
|
+
type: string
|
|
1790
|
+
status_report:
|
|
1791
|
+
description: Only when active
|
|
1792
|
+
last_polled:
|
|
1793
|
+
description: Only when active
|
|
1794
|
+
monitor_workorders:
|
|
1795
|
+
type: object
|
|
1796
|
+
description: Empty when there is no monitor
|
|
1797
|
+
properties:
|
|
1798
|
+
monitor_workorder:
|
|
1799
|
+
type: array
|
|
1800
|
+
items:
|
|
1801
|
+
type: object
|
|
1802
|
+
properties:
|
|
1803
|
+
id:
|
|
1804
|
+
type: integer
|
|
1805
|
+
workflow_id:
|
|
1806
|
+
type: integer
|
|
1807
|
+
workflow_name:
|
|
1808
|
+
type: string
|
|
1809
|
+
last_activity:
|
|
1810
|
+
description: Only when active
|
|
1811
|
+
active:
|
|
1812
|
+
type: boolean
|
|
1813
|
+
status:
|
|
1814
|
+
type: string
|
|
1815
|
+
status_report:
|
|
1816
|
+
description: Only when active
|
|
1817
|
+
last_polled:
|
|
1818
|
+
description: Only when active
|
|
1819
|
+
monitor_folders:
|
|
1820
|
+
type: object
|
|
1821
|
+
description: Empty when there is no monitor
|
|
1822
|
+
properties:
|
|
1823
|
+
monitor_folder:
|
|
1824
|
+
type: array
|
|
1825
|
+
items:
|
|
1826
|
+
type: object
|
|
1827
|
+
properties:
|
|
1828
|
+
id:
|
|
1829
|
+
type: integer
|
|
1830
|
+
folder:
|
|
1831
|
+
type: string
|
|
1832
|
+
description: Description of the monitor
|
|
1833
|
+
path:
|
|
1834
|
+
type: string
|
|
1835
|
+
content:
|
|
1836
|
+
description: Only when active
|
|
1837
|
+
age_range:
|
|
1838
|
+
description: Only when active
|
|
1839
|
+
active:
|
|
1840
|
+
type: boolean
|
|
1841
|
+
status:
|
|
1842
|
+
type: string
|
|
1843
|
+
status_report:
|
|
1844
|
+
description: Only when active
|
|
1845
|
+
last_polled:
|
|
1846
|
+
description: Only when active
|
|
1847
|
+
monitor_nodes:
|
|
1848
|
+
type: object
|
|
1849
|
+
description: Empty when there is no monitor
|
|
1850
|
+
properties:
|
|
1851
|
+
monitor_node:
|
|
1852
|
+
type: array
|
|
1853
|
+
items:
|
|
1854
|
+
type: object
|
|
1855
|
+
properties:
|
|
1856
|
+
id:
|
|
1857
|
+
type: integer
|
|
1858
|
+
name:
|
|
1859
|
+
type: string
|
|
1860
|
+
remote_node:
|
|
1861
|
+
type: string
|
|
1862
|
+
active:
|
|
1863
|
+
type: boolean
|
|
1864
|
+
status:
|
|
1865
|
+
type: string
|
|
1866
|
+
status_report:
|
|
1867
|
+
description: Only when active
|
|
1868
|
+
last_polled:
|
|
1869
|
+
description: Only when active
|
|
1870
|
+
monitor_scripts:
|
|
1871
|
+
type: object
|
|
1872
|
+
description: Empty when there is no monitor
|
|
1873
|
+
properties:
|
|
1874
|
+
monitor_script:
|
|
1875
|
+
type: array
|
|
1876
|
+
items:
|
|
1877
|
+
type: object
|
|
1878
|
+
properties:
|
|
1879
|
+
id:
|
|
1880
|
+
type: integer
|
|
1881
|
+
script:
|
|
1882
|
+
type: string
|
|
1883
|
+
description: Description of the monitor
|
|
1884
|
+
node:
|
|
1885
|
+
type: string
|
|
1886
|
+
path:
|
|
1887
|
+
type: string
|
|
1888
|
+
active:
|
|
1889
|
+
type: boolean
|
|
1890
|
+
status:
|
|
1891
|
+
type: string
|
|
1892
|
+
status_report:
|
|
1893
|
+
description: Only when active
|
|
1894
|
+
last_polled:
|
|
1895
|
+
description: Only when active
|
|
1896
|
+
'401':
|
|
1897
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1898
|
+
default:
|
|
1899
|
+
$ref: '#/components/responses/Error'
|
|
1900
|
+
/api/list_monitors/{id}:
|
|
1901
|
+
get:
|
|
1902
|
+
operationId: list_monitors
|
|
1903
|
+
summary: List the monitors of a type
|
|
1904
|
+
tags:
|
|
1905
|
+
- Monitors
|
|
1906
|
+
parameters:
|
|
1907
|
+
- $ref: '#/components/parameters/AnyId'
|
|
1908
|
+
- $ref: '#/components/parameters/MonitorType'
|
|
1909
|
+
- $ref: '#/components/parameters/Format'
|
|
1910
|
+
responses:
|
|
1911
|
+
'200':
|
|
1912
|
+
description: List of monitors
|
|
1913
|
+
content:
|
|
1914
|
+
application/json:
|
|
1915
|
+
schema:
|
|
1916
|
+
type: array
|
|
1917
|
+
description: All the attributes of the monitors. For type `workorder`, each monitor is in an object with key `monitor-workorder`. Remote node monitors give the names of the monitored remote nodes (`remote_node_name`).
|
|
1918
|
+
items:
|
|
1919
|
+
type: object
|
|
1920
|
+
'401':
|
|
1921
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1922
|
+
default:
|
|
1923
|
+
$ref: '#/components/responses/Error'
|
|
1924
|
+
/api/activate_monitor/{id}:
|
|
1925
|
+
get:
|
|
1926
|
+
operationId: activate_monitor
|
|
1927
|
+
summary: Activate a monitor
|
|
1928
|
+
tags:
|
|
1929
|
+
- Monitors
|
|
1930
|
+
parameters:
|
|
1931
|
+
- name: id
|
|
1932
|
+
in: path
|
|
1933
|
+
required: true
|
|
1934
|
+
schema:
|
|
1935
|
+
type: string
|
|
1936
|
+
description: Monitor ID or portable ID
|
|
1937
|
+
- name: portable_id
|
|
1938
|
+
in: query
|
|
1939
|
+
schema:
|
|
1940
|
+
type: string
|
|
1941
|
+
description: Portable ID of the monitor, used when the `id` segment is empty
|
|
1942
|
+
- $ref: '#/components/parameters/MonitorType'
|
|
1943
|
+
- $ref: '#/components/parameters/Format'
|
|
1944
|
+
responses:
|
|
1945
|
+
'200':
|
|
1946
|
+
description: Monitor activated
|
|
1947
|
+
content:
|
|
1948
|
+
application/json:
|
|
1949
|
+
schema:
|
|
1950
|
+
$ref: '#/components/schemas/MonitorChange'
|
|
1951
|
+
'401':
|
|
1952
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1953
|
+
default:
|
|
1954
|
+
$ref: '#/components/responses/Error'
|
|
1955
|
+
/api/deactivate_monitor/{id}:
|
|
1956
|
+
get:
|
|
1957
|
+
operationId: deactivate_monitor
|
|
1958
|
+
summary: Deactivate a monitor
|
|
1959
|
+
tags:
|
|
1960
|
+
- Monitors
|
|
1961
|
+
parameters:
|
|
1962
|
+
- name: id
|
|
1963
|
+
in: path
|
|
1964
|
+
required: true
|
|
1965
|
+
schema:
|
|
1966
|
+
type: string
|
|
1967
|
+
description: Monitor ID or portable ID
|
|
1968
|
+
- name: portable_id
|
|
1969
|
+
in: query
|
|
1970
|
+
schema:
|
|
1971
|
+
type: string
|
|
1972
|
+
description: Portable ID of the monitor, used when the `id` segment is empty
|
|
1973
|
+
- $ref: '#/components/parameters/MonitorType'
|
|
1974
|
+
- $ref: '#/components/parameters/Format'
|
|
1975
|
+
responses:
|
|
1976
|
+
'200':
|
|
1977
|
+
description: Monitor deactivated
|
|
1978
|
+
content:
|
|
1979
|
+
application/json:
|
|
1980
|
+
schema:
|
|
1981
|
+
$ref: '#/components/schemas/MonitorChange'
|
|
1982
|
+
'401':
|
|
1983
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
1984
|
+
default:
|
|
1985
|
+
$ref: '#/components/responses/Error'
|
|
1986
|
+
/api/list_tasks/{id}:
|
|
1987
|
+
get:
|
|
1988
|
+
operationId: list_tasks
|
|
1989
|
+
summary: Tasks (user inputs) waiting for a user
|
|
1990
|
+
tags:
|
|
1991
|
+
- Tasks
|
|
1992
|
+
parameters:
|
|
1993
|
+
- name: id
|
|
1994
|
+
in: path
|
|
1995
|
+
required: true
|
|
1996
|
+
schema:
|
|
1997
|
+
type: string
|
|
1998
|
+
description: User login or ID, or `self`. Only an administrator can list the tasks of another user.
|
|
1999
|
+
- $ref: '#/components/parameters/Format'
|
|
2000
|
+
responses:
|
|
2001
|
+
'200':
|
|
2002
|
+
description: List of tasks
|
|
2003
|
+
content:
|
|
2004
|
+
application/json:
|
|
2005
|
+
schema:
|
|
2006
|
+
type: object
|
|
2007
|
+
properties:
|
|
2008
|
+
user:
|
|
2009
|
+
type: string
|
|
2010
|
+
description: Login of the user
|
|
2011
|
+
tasks:
|
|
2012
|
+
type: array
|
|
2013
|
+
items:
|
|
2014
|
+
allOf:
|
|
2015
|
+
- $ref: '#/components/schemas/Task'
|
|
2016
|
+
properties:
|
|
2017
|
+
event:
|
|
2018
|
+
type: string
|
|
2019
|
+
group:
|
|
2020
|
+
type: string
|
|
2021
|
+
description: Group the task is assigned to
|
|
2022
|
+
user:
|
|
2023
|
+
type: string
|
|
2024
|
+
description: User the task is assigned to
|
|
2025
|
+
requested_user_inputs:
|
|
2026
|
+
type: array
|
|
2027
|
+
items:
|
|
2028
|
+
type: object
|
|
2029
|
+
properties:
|
|
2030
|
+
name:
|
|
2031
|
+
type: string
|
|
2032
|
+
required:
|
|
2033
|
+
type: boolean
|
|
2034
|
+
value_type:
|
|
2035
|
+
type: string
|
|
2036
|
+
'401':
|
|
2037
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2038
|
+
default:
|
|
2039
|
+
$ref: '#/components/responses/Error'
|
|
2040
|
+
/api/task_details/{id}:
|
|
2041
|
+
get:
|
|
2042
|
+
operationId: task_details
|
|
2043
|
+
summary: Details of a task
|
|
2044
|
+
tags:
|
|
2045
|
+
- Tasks
|
|
2046
|
+
parameters:
|
|
2047
|
+
- name: id
|
|
2048
|
+
in: path
|
|
2049
|
+
required: true
|
|
2050
|
+
schema:
|
|
2051
|
+
type: string
|
|
2052
|
+
pattern: ^(WO)?[0-9]+$
|
|
2053
|
+
description: Task ID, or `WO<work order ID>` for the user input of a work order
|
|
2054
|
+
- name: step_name
|
|
2055
|
+
in: query
|
|
2056
|
+
schema:
|
|
2057
|
+
type: string
|
|
2058
|
+
description: 'With `WO<id>`, step of the user input when the work order has several. Orchestrator 4.1.6 checks that `Step_name` is set and compares `step_name`: give both.'
|
|
2059
|
+
- name: Step_name
|
|
2060
|
+
in: query
|
|
2061
|
+
schema:
|
|
2062
|
+
type: string
|
|
2063
|
+
description: Same value as `step_name` (see `step_name`)
|
|
2064
|
+
- $ref: '#/components/parameters/Format'
|
|
2065
|
+
responses:
|
|
2066
|
+
'200':
|
|
2067
|
+
description: Task details
|
|
2068
|
+
content:
|
|
2069
|
+
application/json:
|
|
2070
|
+
schema:
|
|
2071
|
+
type: object
|
|
2072
|
+
properties:
|
|
2073
|
+
task:
|
|
2074
|
+
$ref: '#/components/schemas/Task'
|
|
2075
|
+
task_inputs:
|
|
2076
|
+
type: object
|
|
2077
|
+
description: Parameters received by the task (name to value)
|
|
2078
|
+
user_inputs:
|
|
2079
|
+
type: array
|
|
2080
|
+
items:
|
|
2081
|
+
$ref: '#/components/schemas/UserInput'
|
|
2082
|
+
'401':
|
|
2083
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2084
|
+
default:
|
|
2085
|
+
$ref: '#/components/responses/Error'
|
|
2086
|
+
/api/submit_task/{id}:
|
|
2087
|
+
get:
|
|
2088
|
+
operationId: submit_task
|
|
2089
|
+
summary: Complete a task with the user inputs
|
|
2090
|
+
tags:
|
|
2091
|
+
- Tasks
|
|
2092
|
+
parameters:
|
|
2093
|
+
- name: id
|
|
2094
|
+
in: path
|
|
2095
|
+
required: true
|
|
2096
|
+
schema:
|
|
2097
|
+
type: integer
|
|
2098
|
+
description: Task ID
|
|
2099
|
+
- name: outputs
|
|
2100
|
+
in: query
|
|
2101
|
+
style: deepObject
|
|
2102
|
+
explode: true
|
|
2103
|
+
schema:
|
|
2104
|
+
type: object
|
|
2105
|
+
additionalProperties: true
|
|
2106
|
+
description: Values of the user inputs, e.g. `outputs[Filename]=tron.avi`. All required inputs must be given.
|
|
2107
|
+
- name: input_provider
|
|
2108
|
+
in: query
|
|
2109
|
+
schema:
|
|
2110
|
+
type: string
|
|
2111
|
+
description: Login of the user who provides the inputs (administrator only)
|
|
2112
|
+
- $ref: '#/components/parameters/Format'
|
|
2113
|
+
responses:
|
|
2114
|
+
'200':
|
|
2115
|
+
description: The completed task
|
|
2116
|
+
content:
|
|
2117
|
+
application/json:
|
|
2118
|
+
schema:
|
|
2119
|
+
type: object
|
|
2120
|
+
properties:
|
|
2121
|
+
task:
|
|
2122
|
+
$ref: '#/components/schemas/Task'
|
|
2123
|
+
user_inputs:
|
|
2124
|
+
type: object
|
|
2125
|
+
description: Values of the user inputs (name to value)
|
|
2126
|
+
input_provider:
|
|
2127
|
+
type: string
|
|
2128
|
+
'401':
|
|
2129
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2130
|
+
default:
|
|
2131
|
+
$ref: '#/components/responses/Error'
|
|
2132
|
+
/api/search_tasks/{id}:
|
|
2133
|
+
get:
|
|
2134
|
+
operationId: search_tasks
|
|
2135
|
+
summary: Search the tasks of the current user
|
|
2136
|
+
tags:
|
|
2137
|
+
- Tasks
|
|
2138
|
+
parameters:
|
|
2139
|
+
- $ref: '#/components/parameters/AnyId'
|
|
2140
|
+
- name: value
|
|
2141
|
+
in: query
|
|
2142
|
+
required: true
|
|
2143
|
+
schema:
|
|
2144
|
+
type: string
|
|
2145
|
+
description: Search key
|
|
2146
|
+
- $ref: '#/components/parameters/Format'
|
|
2147
|
+
responses:
|
|
2148
|
+
'200':
|
|
2149
|
+
description: Tasks found
|
|
2150
|
+
content:
|
|
2151
|
+
application/json:
|
|
2152
|
+
schema:
|
|
2153
|
+
type: array
|
|
2154
|
+
items:
|
|
2155
|
+
anyOf:
|
|
2156
|
+
- title: Task
|
|
2157
|
+
type: object
|
|
2158
|
+
properties:
|
|
2159
|
+
id:
|
|
2160
|
+
type: integer
|
|
2161
|
+
task:
|
|
2162
|
+
$ref: '#/components/schemas/Task'
|
|
2163
|
+
task_inputs:
|
|
2164
|
+
type: object
|
|
2165
|
+
description: Parameters received by the task (name to value)
|
|
2166
|
+
user_inputs:
|
|
2167
|
+
type: array
|
|
2168
|
+
items:
|
|
2169
|
+
$ref: '#/components/schemas/UserInput'
|
|
2170
|
+
- title: Task without access
|
|
2171
|
+
type: object
|
|
2172
|
+
properties:
|
|
2173
|
+
id:
|
|
2174
|
+
type: integer
|
|
2175
|
+
error:
|
|
2176
|
+
type: string
|
|
2177
|
+
'401':
|
|
2178
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2179
|
+
default:
|
|
2180
|
+
$ref: '#/components/responses/Error'
|
|
2181
|
+
/api/plugin_version:
|
|
2182
|
+
get:
|
|
2183
|
+
operationId: plugin_version
|
|
2184
|
+
summary: Versions of the plugins
|
|
2185
|
+
tags:
|
|
2186
|
+
- Plugins
|
|
2187
|
+
parameters:
|
|
2188
|
+
- name: id
|
|
2189
|
+
in: query
|
|
2190
|
+
schema:
|
|
2191
|
+
type: string
|
|
2192
|
+
description: Only this plugin (action type), e.g. `ascp client` (also in the path `/api/plugin_version/<name>`)
|
|
2193
|
+
- $ref: '#/components/parameters/Format'
|
|
2194
|
+
responses:
|
|
2195
|
+
'200':
|
|
2196
|
+
description: Plugin versions
|
|
2197
|
+
content:
|
|
2198
|
+
application/json:
|
|
2199
|
+
schema:
|
|
2200
|
+
type: object
|
|
2201
|
+
properties:
|
|
2202
|
+
Plugin:
|
|
2203
|
+
type: array
|
|
2204
|
+
items:
|
|
2205
|
+
type: object
|
|
2206
|
+
properties:
|
|
2207
|
+
name:
|
|
2208
|
+
type: string
|
|
2209
|
+
version:
|
|
2210
|
+
type: string
|
|
2211
|
+
examples:
|
|
2212
|
+
- 1.2.3
|
|
2213
|
+
'401':
|
|
2214
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2215
|
+
default:
|
|
2216
|
+
$ref: '#/components/responses/Error'
|
|
2217
|
+
/api/reload_plugin:
|
|
2218
|
+
get:
|
|
2219
|
+
operationId: reload_plugin
|
|
2220
|
+
summary: Reload a plugin, or all enabled plugins
|
|
2221
|
+
tags:
|
|
2222
|
+
- Plugins
|
|
2223
|
+
parameters:
|
|
2224
|
+
- name: action_type
|
|
2225
|
+
in: query
|
|
2226
|
+
schema:
|
|
2227
|
+
type: string
|
|
2228
|
+
description: 'Plugin class name, e.g. `Adi3Parser`. Not set: all enabled plugins.'
|
|
2229
|
+
- $ref: '#/components/parameters/Format'
|
|
2230
|
+
responses:
|
|
2231
|
+
'200':
|
|
2232
|
+
description: Reload status of each plugin
|
|
2233
|
+
content:
|
|
2234
|
+
application/json:
|
|
2235
|
+
schema:
|
|
2236
|
+
$ref: '#/components/schemas/PluginReloadStatus'
|
|
2237
|
+
'401':
|
|
2238
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2239
|
+
default:
|
|
2240
|
+
$ref: '#/components/responses/Error'
|
|
2241
|
+
/api/reload_plugin_set:
|
|
2242
|
+
post:
|
|
2243
|
+
operationId: reload_plugin_set
|
|
2244
|
+
summary: Reload a set of plugins
|
|
2245
|
+
description: 'With format `json`, the body is `{"plugin_set": [...]}`; with format `xml`, `<plugin_set><action_type>...</action_type>...</plugin_set>`.'
|
|
2246
|
+
tags:
|
|
2247
|
+
- Plugins
|
|
2248
|
+
parameters:
|
|
2249
|
+
- $ref: '#/components/parameters/Format'
|
|
2250
|
+
requestBody:
|
|
2251
|
+
required: true
|
|
2252
|
+
content:
|
|
2253
|
+
application/json:
|
|
2254
|
+
schema:
|
|
2255
|
+
type: object
|
|
2256
|
+
required:
|
|
2257
|
+
- plugin_set
|
|
2258
|
+
properties:
|
|
2259
|
+
plugin_set:
|
|
2260
|
+
type: array
|
|
2261
|
+
description: Plugin class names
|
|
2262
|
+
items:
|
|
2263
|
+
type: string
|
|
2264
|
+
examples:
|
|
2265
|
+
- - Adi3Parser
|
|
2266
|
+
- AdiParser
|
|
2267
|
+
application/xml:
|
|
2268
|
+
schema:
|
|
2269
|
+
type: string
|
|
2270
|
+
examples:
|
|
2271
|
+
- <plugin_set><action_type>Adi3Parser</action_type></plugin_set>
|
|
2272
|
+
responses:
|
|
2273
|
+
'200':
|
|
2274
|
+
description: Reload status of each plugin
|
|
2275
|
+
content:
|
|
2276
|
+
application/json:
|
|
2277
|
+
schema:
|
|
2278
|
+
$ref: '#/components/schemas/PluginReloadStatus'
|
|
2279
|
+
'401':
|
|
2280
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2281
|
+
default:
|
|
2282
|
+
$ref: '#/components/responses/Error'
|
|
2283
|
+
/api/enable_plugin/{id}:
|
|
2284
|
+
get:
|
|
2285
|
+
operationId: enable_plugin
|
|
2286
|
+
summary: Enable a plugin, or all plugins
|
|
2287
|
+
tags:
|
|
2288
|
+
- Plugins
|
|
2289
|
+
parameters:
|
|
2290
|
+
- $ref: '#/components/parameters/AnyId'
|
|
2291
|
+
- name: action_type
|
|
2292
|
+
in: query
|
|
2293
|
+
schema:
|
|
2294
|
+
type: string
|
|
2295
|
+
description: 'Plugin class name. Not set: all plugins.'
|
|
2296
|
+
- $ref: '#/components/parameters/Format'
|
|
2297
|
+
responses:
|
|
2298
|
+
'200':
|
|
2299
|
+
description: Installation ID
|
|
2300
|
+
content:
|
|
2301
|
+
application/json:
|
|
2302
|
+
schema:
|
|
2303
|
+
type: object
|
|
2304
|
+
properties:
|
|
2305
|
+
install_id:
|
|
2306
|
+
type: integer
|
|
2307
|
+
description: '`0` for all plugins'
|
|
2308
|
+
'401':
|
|
2309
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2310
|
+
default:
|
|
2311
|
+
$ref: '#/components/responses/Error'
|
|
2312
|
+
/api/import_plugin/{id}:
|
|
2313
|
+
get:
|
|
2314
|
+
operationId: import_plugin
|
|
2315
|
+
summary: Import a plugin from a file on the Orchestrator host
|
|
2316
|
+
tags:
|
|
2317
|
+
- Plugins
|
|
2318
|
+
parameters:
|
|
2319
|
+
- $ref: '#/components/parameters/AnyId'
|
|
2320
|
+
- name: file
|
|
2321
|
+
in: query
|
|
2322
|
+
required: true
|
|
2323
|
+
schema:
|
|
2324
|
+
type: string
|
|
2325
|
+
description: Path of the plugin archive on the Orchestrator host
|
|
2326
|
+
- $ref: '#/components/parameters/Format'
|
|
2327
|
+
responses:
|
|
2328
|
+
'200':
|
|
2329
|
+
description: Class name of the imported plugin
|
|
2330
|
+
content:
|
|
2331
|
+
application/json:
|
|
2332
|
+
schema:
|
|
2333
|
+
type: object
|
|
2334
|
+
properties:
|
|
2335
|
+
action_type:
|
|
2336
|
+
type: string
|
|
2337
|
+
'401':
|
|
2338
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2339
|
+
default:
|
|
2340
|
+
$ref: '#/components/responses/Error'
|
|
2341
|
+
/api/portlet_version:
|
|
2342
|
+
get:
|
|
2343
|
+
operationId: portlet_version
|
|
2344
|
+
summary: Versions of the portlets
|
|
2345
|
+
tags:
|
|
2346
|
+
- Portlets
|
|
2347
|
+
parameters:
|
|
2348
|
+
- name: id
|
|
2349
|
+
in: query
|
|
2350
|
+
schema:
|
|
2351
|
+
type: string
|
|
2352
|
+
description: Only this portlet (name), also in the path `/api/portlet_version/<name>`
|
|
2353
|
+
- $ref: '#/components/parameters/Format'
|
|
2354
|
+
responses:
|
|
2355
|
+
'200':
|
|
2356
|
+
description: Portlet versions
|
|
2357
|
+
content:
|
|
2358
|
+
application/json:
|
|
2359
|
+
schema:
|
|
2360
|
+
type: object
|
|
2361
|
+
properties:
|
|
2362
|
+
Portlet:
|
|
2363
|
+
type: array
|
|
2364
|
+
items:
|
|
2365
|
+
type: object
|
|
2366
|
+
properties:
|
|
2367
|
+
name:
|
|
2368
|
+
type: string
|
|
2369
|
+
version:
|
|
2370
|
+
type: string
|
|
2371
|
+
examples:
|
|
2372
|
+
- 1.2.3
|
|
2373
|
+
'401':
|
|
2374
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2375
|
+
default:
|
|
2376
|
+
$ref: '#/components/responses/Error'
|
|
2377
|
+
/api/processes_status:
|
|
2378
|
+
get:
|
|
2379
|
+
operationId: processes_status
|
|
2380
|
+
summary: Status of the processes (engine, monitor, workers)
|
|
2381
|
+
tags:
|
|
2382
|
+
- System
|
|
2383
|
+
parameters:
|
|
2384
|
+
- $ref: '#/components/parameters/Format'
|
|
2385
|
+
responses:
|
|
2386
|
+
'200':
|
|
2387
|
+
description: Process status information
|
|
2388
|
+
content:
|
|
2389
|
+
application/json:
|
|
2390
|
+
schema:
|
|
2391
|
+
type: object
|
|
2392
|
+
description: Conversion of the XML, so all values are strings
|
|
2393
|
+
properties:
|
|
2394
|
+
processes:
|
|
2395
|
+
type: object
|
|
2396
|
+
properties:
|
|
2397
|
+
time:
|
|
2398
|
+
type: string
|
|
2399
|
+
action:
|
|
2400
|
+
type: string
|
|
2401
|
+
const: status
|
|
2402
|
+
engine_id:
|
|
2403
|
+
type: string
|
|
2404
|
+
node:
|
|
2405
|
+
description: A node, or a list when there are several
|
|
2406
|
+
oneOf:
|
|
2407
|
+
- $ref: '#/components/schemas/ProcessNode'
|
|
2408
|
+
- type: array
|
|
2409
|
+
items:
|
|
2410
|
+
$ref: '#/components/schemas/ProcessNode'
|
|
2411
|
+
'401':
|
|
2412
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2413
|
+
default:
|
|
2414
|
+
$ref: '#/components/responses/Error'
|
|
2415
|
+
/api/control_process/{id}:
|
|
2416
|
+
get:
|
|
2417
|
+
operationId: control_process
|
|
2418
|
+
summary: Start, stop or kill a process
|
|
2419
|
+
description: Returns the status of the processes (in XML, the same as `processes_status`).
|
|
2420
|
+
tags:
|
|
2421
|
+
- System
|
|
2422
|
+
parameters:
|
|
2423
|
+
- name: id
|
|
2424
|
+
in: path
|
|
2425
|
+
required: true
|
|
2426
|
+
schema:
|
|
2427
|
+
type: string
|
|
2428
|
+
enum:
|
|
2429
|
+
- engine
|
|
2430
|
+
- monitor
|
|
2431
|
+
- worker
|
|
2432
|
+
description: Process type
|
|
2433
|
+
- name: command
|
|
2434
|
+
in: query
|
|
2435
|
+
required: true
|
|
2436
|
+
schema:
|
|
2437
|
+
type: string
|
|
2438
|
+
enum:
|
|
2439
|
+
- start
|
|
2440
|
+
- stop
|
|
2441
|
+
- kill
|
|
2442
|
+
- status
|
|
2443
|
+
description: Command (`status` does nothing but returns the status)
|
|
2444
|
+
- name: worker_id
|
|
2445
|
+
in: query
|
|
2446
|
+
style: form
|
|
2447
|
+
explode: false
|
|
2448
|
+
schema:
|
|
2449
|
+
type: array
|
|
2450
|
+
items:
|
|
2451
|
+
type: integer
|
|
2452
|
+
description: Comma-separated worker IDs, required for type `worker`
|
|
2453
|
+
- $ref: '#/components/parameters/Format'
|
|
2454
|
+
responses:
|
|
2455
|
+
'200':
|
|
2456
|
+
description: Status of the processes
|
|
2457
|
+
content:
|
|
2458
|
+
application/json:
|
|
2459
|
+
schema:
|
|
2460
|
+
type: object
|
|
2461
|
+
properties:
|
|
2462
|
+
processes:
|
|
2463
|
+
type: object
|
|
2464
|
+
properties:
|
|
2465
|
+
time:
|
|
2466
|
+
type: string
|
|
2467
|
+
action:
|
|
2468
|
+
type: string
|
|
2469
|
+
const: status
|
|
2470
|
+
engine_id:
|
|
2471
|
+
type: integer
|
|
2472
|
+
process:
|
|
2473
|
+
type: array
|
|
2474
|
+
items:
|
|
2475
|
+
type: object
|
|
2476
|
+
properties:
|
|
2477
|
+
class:
|
|
2478
|
+
type: string
|
|
2479
|
+
enum:
|
|
2480
|
+
- engine
|
|
2481
|
+
- monitor
|
|
2482
|
+
- node_mesh
|
|
2483
|
+
- worker
|
|
2484
|
+
id:
|
|
2485
|
+
type: integer
|
|
2486
|
+
description: Worker ID
|
|
2487
|
+
pid:
|
|
2488
|
+
type: [integer, string]
|
|
2489
|
+
description: '`-` when not running'
|
|
2490
|
+
status:
|
|
2491
|
+
type: string
|
|
2492
|
+
enum:
|
|
2493
|
+
- running
|
|
2494
|
+
- not running
|
|
2495
|
+
type:
|
|
2496
|
+
type: string
|
|
2497
|
+
description: Worker type
|
|
2498
|
+
enum:
|
|
2499
|
+
- normal
|
|
2500
|
+
- asynchronous
|
|
2501
|
+
- dedicated
|
|
2502
|
+
'401':
|
|
2503
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2504
|
+
default:
|
|
2505
|
+
$ref: '#/components/responses/Error'
|
|
2506
|
+
/api/custom_api_call:
|
|
2507
|
+
get:
|
|
2508
|
+
operationId: custom_api_call
|
|
2509
|
+
summary: Store data in the shared state, for a database trigger
|
|
2510
|
+
description: The query parameters and the request body are stored in table `SharedState`, where a workflow can watch them with a database trigger. The response is always XML.
|
|
2511
|
+
tags:
|
|
2512
|
+
- System
|
|
2513
|
+
parameters:
|
|
2514
|
+
- name: identifier
|
|
2515
|
+
in: query
|
|
2516
|
+
schema:
|
|
2517
|
+
type: string
|
|
2518
|
+
description: 'Aggregate type of the shared state (default: `custom_api_call`)'
|
|
2519
|
+
- name: uniq_id
|
|
2520
|
+
in: query
|
|
2521
|
+
required: true
|
|
2522
|
+
schema:
|
|
2523
|
+
type: integer
|
|
2524
|
+
description: Aggregate ID of the shared state, an integer
|
|
2525
|
+
- name: object
|
|
2526
|
+
in: query
|
|
2527
|
+
schema:
|
|
2528
|
+
type: string
|
|
2529
|
+
description: JSON text of the object to store
|
|
2530
|
+
responses:
|
|
2531
|
+
'200':
|
|
2532
|
+
description: ID of the shared state (XML)
|
|
2533
|
+
'401':
|
|
2534
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2535
|
+
default:
|
|
2536
|
+
$ref: '#/components/responses/Error'
|
|
2537
|
+
/api/execution_queue_stats/{id}:
|
|
2538
|
+
get:
|
|
2539
|
+
operationId: execution_queue_stats
|
|
2540
|
+
summary: Statistics of the execution queue of the engine
|
|
2541
|
+
tags:
|
|
2542
|
+
- System
|
|
2543
|
+
parameters:
|
|
2544
|
+
- $ref: '#/components/parameters/AnyId'
|
|
2545
|
+
- $ref: '#/components/parameters/Format'
|
|
2546
|
+
responses:
|
|
2547
|
+
'200':
|
|
2548
|
+
description: Queue statistics
|
|
2549
|
+
content:
|
|
2550
|
+
application/json:
|
|
2551
|
+
schema:
|
|
2552
|
+
type: object
|
|
2553
|
+
properties:
|
|
2554
|
+
next_polling_due:
|
|
2555
|
+
type: [integer, string]
|
|
2556
|
+
description: Seconds until the next polling, or `-`
|
|
2557
|
+
completed_items:
|
|
2558
|
+
type: integer
|
|
2559
|
+
unassigned_items:
|
|
2560
|
+
type: integer
|
|
2561
|
+
error_items:
|
|
2562
|
+
type: integer
|
|
2563
|
+
inprogress_synch_count:
|
|
2564
|
+
type: integer
|
|
2565
|
+
inprogress_asynch_count:
|
|
2566
|
+
type: integer
|
|
2567
|
+
created:
|
|
2568
|
+
type: integer
|
|
2569
|
+
description: Number of work orders with this status
|
|
2570
|
+
ready:
|
|
2571
|
+
type: integer
|
|
2572
|
+
initializing:
|
|
2573
|
+
type: integer
|
|
2574
|
+
initialized:
|
|
2575
|
+
type: integer
|
|
2576
|
+
in_progress:
|
|
2577
|
+
type: integer
|
|
2578
|
+
paused:
|
|
2579
|
+
type: integer
|
|
2580
|
+
time_executed:
|
|
2581
|
+
type: string
|
|
2582
|
+
engine_id:
|
|
2583
|
+
type: integer
|
|
2584
|
+
'401':
|
|
2585
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2586
|
+
default:
|
|
2587
|
+
$ref: '#/components/responses/Error'
|
|
2588
|
+
/api/alerts/{id}:
|
|
2589
|
+
get:
|
|
2590
|
+
operationId: alerts
|
|
2591
|
+
summary: Alerts of the categories the user is subscribed to
|
|
2592
|
+
tags:
|
|
2593
|
+
- System
|
|
2594
|
+
parameters:
|
|
2595
|
+
- $ref: '#/components/parameters/AnyId'
|
|
2596
|
+
- name: count_only
|
|
2597
|
+
in: query
|
|
2598
|
+
schema:
|
|
2599
|
+
type: string
|
|
2600
|
+
enum:
|
|
2601
|
+
- 'true'
|
|
2602
|
+
- 'false'
|
|
2603
|
+
description: 'Return only the number of alerts: `{"count"}`'
|
|
2604
|
+
- name: category
|
|
2605
|
+
in: query
|
|
2606
|
+
schema:
|
|
2607
|
+
type: string
|
|
2608
|
+
description: Only alerts of this category, e.g. `user`
|
|
2609
|
+
- $ref: '#/components/parameters/Format'
|
|
2610
|
+
responses:
|
|
2611
|
+
'200':
|
|
2612
|
+
description: List of alerts, or their number
|
|
2613
|
+
content:
|
|
2614
|
+
application/json:
|
|
2615
|
+
schema:
|
|
2616
|
+
oneOf:
|
|
2617
|
+
- title: Count
|
|
2618
|
+
description: With `count_only=true`
|
|
2619
|
+
type: object
|
|
2620
|
+
properties:
|
|
2621
|
+
count:
|
|
2622
|
+
type: integer
|
|
2623
|
+
- type: array
|
|
2624
|
+
items:
|
|
2625
|
+
$ref: '#/components/schemas/AlertNotification'
|
|
2626
|
+
'401':
|
|
2627
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2628
|
+
default:
|
|
2629
|
+
$ref: '#/components/responses/Error'
|
|
2630
|
+
/api/remote_node_ping:
|
|
2631
|
+
get:
|
|
2632
|
+
operationId: remote_node_ping
|
|
2633
|
+
summary: Version and platform of this Orchestrator
|
|
2634
|
+
tags:
|
|
2635
|
+
- Remote Nodes
|
|
2636
|
+
parameters:
|
|
2637
|
+
- $ref: '#/components/parameters/Format'
|
|
2638
|
+
responses:
|
|
2639
|
+
'200':
|
|
2640
|
+
description: Orchestrator information
|
|
2641
|
+
content:
|
|
2642
|
+
application/json:
|
|
2643
|
+
schema:
|
|
2644
|
+
type: object
|
|
2645
|
+
properties:
|
|
2646
|
+
remote_orchestrator_info:
|
|
2647
|
+
type: object
|
|
2648
|
+
properties:
|
|
2649
|
+
orchestrator-version:
|
|
2650
|
+
type: string
|
|
2651
|
+
platform:
|
|
2652
|
+
type: string
|
|
2653
|
+
engine_id:
|
|
2654
|
+
type: integer
|
|
2655
|
+
'401':
|
|
2656
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2657
|
+
default:
|
|
2658
|
+
$ref: '#/components/responses/Error'
|
|
2659
|
+
/api/test_step/{id}:
|
|
2660
|
+
get:
|
|
2661
|
+
operationId: test_step
|
|
2662
|
+
summary: Launch test cases for a workflow step
|
|
2663
|
+
description: |
|
|
2664
|
+
Launches test cases against a workflow and returns a **Test_run_id** UUID.
|
|
2665
|
+
Pass that UUID to `/api/test_step_status` to poll for results.
|
|
2666
|
+
tags:
|
|
2667
|
+
- Testing
|
|
2668
|
+
parameters:
|
|
2669
|
+
- name: id
|
|
2670
|
+
in: path
|
|
2671
|
+
required: true
|
|
2672
|
+
schema:
|
|
2673
|
+
type: string
|
|
2674
|
+
description: Workflow ID or portable ID to test
|
|
2675
|
+
example: my_workflow
|
|
2676
|
+
- name: step
|
|
2677
|
+
in: query
|
|
2678
|
+
style: form
|
|
2679
|
+
explode: false
|
|
2680
|
+
schema:
|
|
2681
|
+
type: array
|
|
2682
|
+
items:
|
|
2683
|
+
type: string
|
|
2684
|
+
description: Comma-separated step name(s) to test. Omit to test all steps.
|
|
2685
|
+
example:
|
|
2686
|
+
- Get file size
|
|
2687
|
+
- name: case
|
|
2688
|
+
in: query
|
|
2689
|
+
schema:
|
|
2690
|
+
type: string
|
|
2691
|
+
description: Test case name to run. Omit to run all cases for the step.
|
|
2692
|
+
example: File doesnt exist
|
|
2693
|
+
- name: synchronous
|
|
2694
|
+
in: query
|
|
2695
|
+
schema:
|
|
2696
|
+
type: string
|
|
2697
|
+
enum:
|
|
2698
|
+
- 'true'
|
|
2699
|
+
- 'false'
|
|
2700
|
+
description: '`true`: wait for all test cases to complete before returning'
|
|
2701
|
+
- $ref: '#/components/parameters/Format'
|
|
2702
|
+
responses:
|
|
2703
|
+
'200':
|
|
2704
|
+
description: Test run launched. Response contains `Test_run_id` UUID to use with `/api/test_step_status`.
|
|
2705
|
+
content:
|
|
2706
|
+
application/json:
|
|
2707
|
+
schema:
|
|
2708
|
+
$ref: '#/components/schemas/TestRun'
|
|
2709
|
+
'401':
|
|
2710
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2711
|
+
default:
|
|
2712
|
+
$ref: '#/components/responses/Error'
|
|
2713
|
+
'404':
|
|
2714
|
+
description: Workflow not found
|
|
2715
|
+
/api/test_step_status/{id}:
|
|
2716
|
+
get:
|
|
2717
|
+
operationId: test_step_status
|
|
2718
|
+
summary: Get test step status
|
|
2719
|
+
description: |
|
|
2720
|
+
Poll the status of a test run previously launched by `/api/test_step`.
|
|
2721
|
+
The `id` parameter must be the **Test_run_id UUID** returned by that call, not a numeric workflow or step ID.
|
|
2722
|
+
tags:
|
|
2723
|
+
- Testing
|
|
2724
|
+
parameters:
|
|
2725
|
+
- name: id
|
|
2726
|
+
in: path
|
|
2727
|
+
required: true
|
|
2728
|
+
schema:
|
|
2729
|
+
type: string
|
|
2730
|
+
format: uuid
|
|
2731
|
+
description: Test run UUID returned by /api/test_step (e.g. 935e0080-97f5-0135-26f8-34363bc6aedc)
|
|
2732
|
+
example: 935e0080-97f5-0135-26f8-34363bc6aedc
|
|
2733
|
+
- $ref: '#/components/parameters/Format'
|
|
2734
|
+
responses:
|
|
2735
|
+
'200':
|
|
2736
|
+
description: Test status
|
|
2737
|
+
content:
|
|
2738
|
+
application/json:
|
|
2739
|
+
schema:
|
|
2740
|
+
$ref: '#/components/schemas/TestRun'
|
|
2741
|
+
'401':
|
|
2742
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2743
|
+
default:
|
|
2744
|
+
$ref: '#/components/responses/Error'
|
|
2745
|
+
/api/work_order_stats/{id}:
|
|
2746
|
+
get:
|
|
2747
|
+
operationId: work_order_stats
|
|
2748
|
+
summary: Work order statistics, monthly or for a day
|
|
2749
|
+
description: Returns the text `No Statistics found. Change the filter and try again.` when there is none.
|
|
2750
|
+
tags:
|
|
2751
|
+
- Statistics
|
|
2752
|
+
parameters:
|
|
2753
|
+
- $ref: '#/components/parameters/AnyId'
|
|
2754
|
+
- name: workflow_id
|
|
2755
|
+
in: query
|
|
2756
|
+
schema:
|
|
2757
|
+
type: integer
|
|
2758
|
+
description: Only this workflow
|
|
2759
|
+
- name: label
|
|
2760
|
+
in: query
|
|
2761
|
+
schema:
|
|
2762
|
+
type: string
|
|
2763
|
+
description: Only work orders with this label
|
|
2764
|
+
- name: date
|
|
2765
|
+
in: query
|
|
2766
|
+
schema:
|
|
2767
|
+
type: string
|
|
2768
|
+
format: date
|
|
2769
|
+
description: 'Statistics of this day, e.g. `2017-04-04`. Not set: monthly statistics.'
|
|
2770
|
+
- $ref: '#/components/parameters/Format'
|
|
2771
|
+
responses:
|
|
2772
|
+
'200':
|
|
2773
|
+
description: Work order statistics
|
|
2774
|
+
content:
|
|
2775
|
+
application/json:
|
|
2776
|
+
schema:
|
|
2777
|
+
type: array
|
|
2778
|
+
description: By day (monthly statistics of the last 30 days), or by hour (statistics of a day). The sums are decimal strings.
|
|
2779
|
+
items:
|
|
2780
|
+
type: object
|
|
2781
|
+
properties:
|
|
2782
|
+
Date:
|
|
2783
|
+
type: string
|
|
2784
|
+
Last_hour:
|
|
2785
|
+
type: string
|
|
2786
|
+
format: date-time
|
|
2787
|
+
Complete_Work_Orders:
|
|
2788
|
+
type: [string, integer]
|
|
2789
|
+
Failed_Work_Orders:
|
|
2790
|
+
type: [string, integer]
|
|
2791
|
+
Errored_Work_Orders:
|
|
2792
|
+
type: [string, integer]
|
|
2793
|
+
Canceled_Work_Orders:
|
|
2794
|
+
type: [string, integer]
|
|
2795
|
+
Rolled_Back_Work_Orders:
|
|
2796
|
+
type: [string, integer]
|
|
2797
|
+
Destroyed_Work_Orders:
|
|
2798
|
+
type: [string, integer]
|
|
2799
|
+
Cleared_Work_Orders:
|
|
2800
|
+
type: [string, integer]
|
|
2801
|
+
Flagged_Work_Orders:
|
|
2802
|
+
type: [string, integer]
|
|
2803
|
+
Initializing_Work_Orders:
|
|
2804
|
+
type: [string, integer]
|
|
2805
|
+
Initialized_Work_Orders:
|
|
2806
|
+
type: [string, integer]
|
|
2807
|
+
Created_Work_Orders:
|
|
2808
|
+
type: [string, integer]
|
|
2809
|
+
Ready_Work_Orders:
|
|
2810
|
+
type: [string, integer]
|
|
2811
|
+
In_Progress_Work_Orders:
|
|
2812
|
+
type: [string, integer]
|
|
2813
|
+
Unknown_Work_Orders:
|
|
2814
|
+
type: [string, integer]
|
|
2815
|
+
text/plain:
|
|
2816
|
+
schema:
|
|
2817
|
+
type: string
|
|
2818
|
+
const: No Statistics found. Change the filter and try again.
|
|
2819
|
+
'401':
|
|
2820
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2821
|
+
default:
|
|
2822
|
+
$ref: '#/components/responses/Error'
|
|
2823
|
+
/api/work_step_stats/{id}:
|
|
2824
|
+
get:
|
|
2825
|
+
operationId: work_step_stats
|
|
2826
|
+
summary: Work step statistics, monthly or for a day
|
|
2827
|
+
description: 'Returns the text `No Statistics found. Change the filter and try again.` when there is none. The filters are inserted as is in an SQL condition (`workflow_id in (...)`): give comma-separated numbers or quoted values.'
|
|
2828
|
+
tags:
|
|
2829
|
+
- Statistics
|
|
2830
|
+
parameters:
|
|
2831
|
+
- $ref: '#/components/parameters/AnyId'
|
|
2832
|
+
- name: workflow_id
|
|
2833
|
+
in: query
|
|
2834
|
+
style: form
|
|
2835
|
+
explode: false
|
|
2836
|
+
schema:
|
|
2837
|
+
type: array
|
|
2838
|
+
items:
|
|
2839
|
+
type: integer
|
|
2840
|
+
description: Comma-separated workflow IDs
|
|
2841
|
+
- name: step_id
|
|
2842
|
+
in: query
|
|
2843
|
+
style: form
|
|
2844
|
+
explode: false
|
|
2845
|
+
schema:
|
|
2846
|
+
type: array
|
|
2847
|
+
items:
|
|
2848
|
+
type: integer
|
|
2849
|
+
description: Comma-separated step IDs
|
|
2850
|
+
- name: step_type
|
|
2851
|
+
in: query
|
|
2852
|
+
style: form
|
|
2853
|
+
explode: false
|
|
2854
|
+
schema:
|
|
2855
|
+
type: array
|
|
2856
|
+
items:
|
|
2857
|
+
type: string
|
|
2858
|
+
description: Comma-separated step types, quoted (e.g. `'CustomRuby'`)
|
|
2859
|
+
- name: date
|
|
2860
|
+
in: query
|
|
2861
|
+
schema:
|
|
2862
|
+
type: string
|
|
2863
|
+
format: date
|
|
2864
|
+
description: 'Statistics of this day, e.g. `2017-04-04`. Not set: monthly statistics.'
|
|
2865
|
+
- $ref: '#/components/parameters/Format'
|
|
2866
|
+
responses:
|
|
2867
|
+
'200':
|
|
2868
|
+
description: Work step statistics
|
|
2869
|
+
content:
|
|
2870
|
+
application/json:
|
|
2871
|
+
schema:
|
|
2872
|
+
type: array
|
|
2873
|
+
description: By day (monthly statistics of the last 30 days), or by hour (statistics of a day). The sums are decimal strings.
|
|
2874
|
+
items:
|
|
2875
|
+
type: object
|
|
2876
|
+
properties:
|
|
2877
|
+
Date:
|
|
2878
|
+
type: string
|
|
2879
|
+
Last_hour:
|
|
2880
|
+
type: string
|
|
2881
|
+
format: date-time
|
|
2882
|
+
Completed_Steps:
|
|
2883
|
+
type: [string, integer]
|
|
2884
|
+
Failed_Steps:
|
|
2885
|
+
type: [string, integer]
|
|
2886
|
+
Errored_steps:
|
|
2887
|
+
type: [string, integer]
|
|
2888
|
+
Obsolete_Steps:
|
|
2889
|
+
type: [string, integer]
|
|
2890
|
+
Activating_Steps:
|
|
2891
|
+
type: [string, integer]
|
|
2892
|
+
In_Progress_Steps:
|
|
2893
|
+
type: [string, integer]
|
|
2894
|
+
Paused_Steps:
|
|
2895
|
+
type: [string, integer]
|
|
2896
|
+
Pausing_Steps:
|
|
2897
|
+
type: [string, integer]
|
|
2898
|
+
Canceling_Steps:
|
|
2899
|
+
type: [string, integer]
|
|
2900
|
+
Resuming_Steps:
|
|
2901
|
+
type: [string, integer]
|
|
2902
|
+
Rolling_Back_Steps:
|
|
2903
|
+
type: [string, integer]
|
|
2904
|
+
Undefined_Steps:
|
|
2905
|
+
type: [string, integer]
|
|
2906
|
+
text/plain:
|
|
2907
|
+
schema:
|
|
2908
|
+
type: string
|
|
2909
|
+
const: No Statistics found. Change the filter and try again.
|
|
2910
|
+
'401':
|
|
2911
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
2912
|
+
default:
|
|
2913
|
+
$ref: '#/components/responses/Error'
|
|
2914
|
+
/api/journal_files/{id}:
|
|
2915
|
+
get:
|
|
2916
|
+
operationId: journal_files
|
|
2917
|
+
summary: Files recorded in a journal book
|
|
2918
|
+
tags:
|
|
2919
|
+
- Journals
|
|
2920
|
+
parameters:
|
|
2921
|
+
- name: id
|
|
2922
|
+
in: path
|
|
2923
|
+
required: true
|
|
2924
|
+
schema:
|
|
2925
|
+
type: string
|
|
2926
|
+
description: Journal book name or ID
|
|
2927
|
+
- name: details
|
|
2928
|
+
in: query
|
|
2929
|
+
schema:
|
|
2930
|
+
type: string
|
|
2931
|
+
enum:
|
|
2932
|
+
- 'true'
|
|
2933
|
+
- 'false'
|
|
2934
|
+
description: '`false`: without the states (steps) of each file'
|
|
2935
|
+
- name: status
|
|
2936
|
+
in: query
|
|
2937
|
+
style: form
|
|
2938
|
+
explode: false
|
|
2939
|
+
schema:
|
|
2940
|
+
type: array
|
|
2941
|
+
items:
|
|
2942
|
+
type: string
|
|
2943
|
+
description: Comma-separated statuses, e.g. `In Progress,Processing complete`
|
|
2944
|
+
- name: file
|
|
2945
|
+
in: query
|
|
2946
|
+
style: form
|
|
2947
|
+
explode: false
|
|
2948
|
+
schema:
|
|
2949
|
+
type: array
|
|
2950
|
+
items:
|
|
2951
|
+
type: string
|
|
2952
|
+
description: Comma-separated file paths
|
|
2953
|
+
- name: package
|
|
2954
|
+
in: query
|
|
2955
|
+
style: form
|
|
2956
|
+
explode: false
|
|
2957
|
+
schema:
|
|
2958
|
+
type: array
|
|
2959
|
+
items:
|
|
2960
|
+
type: string
|
|
2961
|
+
description: Comma-separated package names (not with `package_id`)
|
|
2962
|
+
- name: package_id
|
|
2963
|
+
in: query
|
|
2964
|
+
style: form
|
|
2965
|
+
explode: false
|
|
2966
|
+
schema:
|
|
2967
|
+
type: array
|
|
2968
|
+
items:
|
|
2969
|
+
type: integer
|
|
2970
|
+
description: Comma-separated package IDs (not with `package`)
|
|
2971
|
+
- $ref: '#/components/parameters/Format'
|
|
2972
|
+
responses:
|
|
2973
|
+
'200':
|
|
2974
|
+
description: Journal entries
|
|
2975
|
+
content:
|
|
2976
|
+
application/json:
|
|
2977
|
+
schema:
|
|
2978
|
+
type: object
|
|
2979
|
+
properties:
|
|
2980
|
+
Journal:
|
|
2981
|
+
type: object
|
|
2982
|
+
properties:
|
|
2983
|
+
name:
|
|
2984
|
+
type: string
|
|
2985
|
+
id:
|
|
2986
|
+
type: integer
|
|
2987
|
+
description:
|
|
2988
|
+
type: [string, 'null']
|
|
2989
|
+
active:
|
|
2990
|
+
type: [boolean, 'null']
|
|
2991
|
+
Packages:
|
|
2992
|
+
type: array
|
|
2993
|
+
description: Only when the journal has packages
|
|
2994
|
+
items:
|
|
2995
|
+
type: object
|
|
2996
|
+
properties:
|
|
2997
|
+
name:
|
|
2998
|
+
type: string
|
|
2999
|
+
id:
|
|
3000
|
+
type: integer
|
|
3001
|
+
files:
|
|
3002
|
+
type: array
|
|
3003
|
+
items:
|
|
3004
|
+
$ref: '#/components/schemas/JournalFile'
|
|
3005
|
+
Files:
|
|
3006
|
+
type: array
|
|
3007
|
+
description: Files without package
|
|
3008
|
+
items:
|
|
3009
|
+
$ref: '#/components/schemas/JournalFile'
|
|
3010
|
+
'401':
|
|
3011
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
3012
|
+
default:
|
|
3013
|
+
$ref: '#/components/responses/Error'
|
|
3014
|
+
/api/add_resource/{id}:
|
|
3015
|
+
get:
|
|
3016
|
+
operationId: add_resource
|
|
3017
|
+
summary: Add a resource to a resource pool
|
|
3018
|
+
tags:
|
|
3019
|
+
- Resources
|
|
3020
|
+
parameters:
|
|
3021
|
+
- $ref: '#/components/parameters/AnyId'
|
|
3022
|
+
- $ref: '#/components/parameters/PoolName'
|
|
3023
|
+
- $ref: '#/components/parameters/ResourceName'
|
|
3024
|
+
- name: capacity
|
|
3025
|
+
in: query
|
|
3026
|
+
schema:
|
|
3027
|
+
type: integer
|
|
3028
|
+
default: 1
|
|
3029
|
+
description: Capacity of the resource
|
|
3030
|
+
- name: tags
|
|
3031
|
+
in: query
|
|
3032
|
+
style: form
|
|
3033
|
+
explode: false
|
|
3034
|
+
schema:
|
|
3035
|
+
type: array
|
|
3036
|
+
items:
|
|
3037
|
+
type: string
|
|
3038
|
+
description: Comma-separated tags
|
|
3039
|
+
- $ref: '#/components/parameters/Format'
|
|
3040
|
+
responses:
|
|
3041
|
+
'200':
|
|
3042
|
+
description: The new resource
|
|
3043
|
+
content:
|
|
3044
|
+
application/json:
|
|
3045
|
+
schema:
|
|
3046
|
+
type: object
|
|
3047
|
+
properties:
|
|
3048
|
+
ManagedResource:
|
|
3049
|
+
$ref: '#/components/schemas/ManagedResource'
|
|
3050
|
+
'401':
|
|
3051
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
3052
|
+
default:
|
|
3053
|
+
$ref: '#/components/responses/Error'
|
|
3054
|
+
/api/edit_resource_capacity/{id}:
|
|
3055
|
+
get:
|
|
3056
|
+
operationId: edit_resource_capacity
|
|
3057
|
+
summary: Change the capacity of a resource
|
|
3058
|
+
tags:
|
|
3059
|
+
- Resources
|
|
3060
|
+
parameters:
|
|
3061
|
+
- name: id
|
|
3062
|
+
in: path
|
|
3063
|
+
required: true
|
|
3064
|
+
schema:
|
|
3065
|
+
type: integer
|
|
3066
|
+
minimum: 1
|
|
3067
|
+
description: New capacity, a positive integer
|
|
3068
|
+
- $ref: '#/components/parameters/PoolName'
|
|
3069
|
+
- $ref: '#/components/parameters/ResourceName'
|
|
3070
|
+
- $ref: '#/components/parameters/Format'
|
|
3071
|
+
responses:
|
|
3072
|
+
'200':
|
|
3073
|
+
description: The resource
|
|
3074
|
+
content:
|
|
3075
|
+
application/json:
|
|
3076
|
+
schema:
|
|
3077
|
+
type: object
|
|
3078
|
+
properties:
|
|
3079
|
+
ManagedResource:
|
|
3080
|
+
$ref: '#/components/schemas/ManagedResource'
|
|
3081
|
+
'401':
|
|
3082
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
3083
|
+
default:
|
|
3084
|
+
$ref: '#/components/responses/Error'
|
|
3085
|
+
/api/edit_pool_capacity/{id}:
|
|
3086
|
+
get:
|
|
3087
|
+
operationId: edit_pool_capacity
|
|
3088
|
+
summary: Change the capacity of a resource pool
|
|
3089
|
+
tags:
|
|
3090
|
+
- Resources
|
|
3091
|
+
parameters:
|
|
3092
|
+
- name: id
|
|
3093
|
+
in: path
|
|
3094
|
+
required: true
|
|
3095
|
+
schema:
|
|
3096
|
+
type: integer
|
|
3097
|
+
minimum: 1
|
|
3098
|
+
description: New capacity, a positive integer
|
|
3099
|
+
- $ref: '#/components/parameters/PoolName'
|
|
3100
|
+
- $ref: '#/components/parameters/Format'
|
|
3101
|
+
responses:
|
|
3102
|
+
'200':
|
|
3103
|
+
description: The resources of the pool
|
|
3104
|
+
content:
|
|
3105
|
+
application/json:
|
|
3106
|
+
schema:
|
|
3107
|
+
type: object
|
|
3108
|
+
properties:
|
|
3109
|
+
ManagedResource:
|
|
3110
|
+
type: array
|
|
3111
|
+
items:
|
|
3112
|
+
$ref: '#/components/schemas/ManagedResource'
|
|
3113
|
+
'401':
|
|
3114
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
3115
|
+
default:
|
|
3116
|
+
$ref: '#/components/responses/Error'
|
|
3117
|
+
/api/resource_online/{id}:
|
|
3118
|
+
get:
|
|
3119
|
+
operationId: resource_online
|
|
3120
|
+
summary: Take a resource online
|
|
3121
|
+
tags:
|
|
3122
|
+
- Resources
|
|
3123
|
+
parameters:
|
|
3124
|
+
- $ref: '#/components/parameters/AnyId'
|
|
3125
|
+
- $ref: '#/components/parameters/PoolName'
|
|
3126
|
+
- $ref: '#/components/parameters/ResourceName'
|
|
3127
|
+
- $ref: '#/components/parameters/Format'
|
|
3128
|
+
responses:
|
|
3129
|
+
'200':
|
|
3130
|
+
description: The resource is online
|
|
3131
|
+
content:
|
|
3132
|
+
application/json:
|
|
3133
|
+
schema:
|
|
3134
|
+
type: object
|
|
3135
|
+
properties:
|
|
3136
|
+
ManagedResource:
|
|
3137
|
+
type: object
|
|
3138
|
+
description: Resource ID (with `>` replaced by `-`) to new status
|
|
3139
|
+
additionalProperties:
|
|
3140
|
+
const: Online
|
|
3141
|
+
'401':
|
|
3142
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
3143
|
+
default:
|
|
3144
|
+
$ref: '#/components/responses/Error'
|
|
3145
|
+
/api/resource_offline/{id}:
|
|
3146
|
+
get:
|
|
3147
|
+
operationId: resource_offline
|
|
3148
|
+
summary: Take a resource offline
|
|
3149
|
+
tags:
|
|
3150
|
+
- Resources
|
|
3151
|
+
parameters:
|
|
3152
|
+
- $ref: '#/components/parameters/AnyId'
|
|
3153
|
+
- $ref: '#/components/parameters/PoolName'
|
|
3154
|
+
- $ref: '#/components/parameters/ResourceName'
|
|
3155
|
+
- $ref: '#/components/parameters/Format'
|
|
3156
|
+
responses:
|
|
3157
|
+
'200':
|
|
3158
|
+
description: The resource is offline
|
|
3159
|
+
content:
|
|
3160
|
+
application/json:
|
|
3161
|
+
schema:
|
|
3162
|
+
type: object
|
|
3163
|
+
properties:
|
|
3164
|
+
ManagedResource:
|
|
3165
|
+
type: object
|
|
3166
|
+
description: Resource ID (with `>` replaced by `-`) to new status
|
|
3167
|
+
additionalProperties:
|
|
3168
|
+
const: Offline
|
|
3169
|
+
'401':
|
|
3170
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
3171
|
+
default:
|
|
3172
|
+
$ref: '#/components/responses/Error'
|
|
3173
|
+
/api/pool_status/{id}:
|
|
3174
|
+
get:
|
|
3175
|
+
operationId: pool_status
|
|
3176
|
+
summary: Resources of a resource pool and their status
|
|
3177
|
+
tags:
|
|
3178
|
+
- Resources
|
|
3179
|
+
parameters:
|
|
3180
|
+
- $ref: '#/components/parameters/AnyId'
|
|
3181
|
+
- name: name
|
|
3182
|
+
in: query
|
|
3183
|
+
required: true
|
|
3184
|
+
schema:
|
|
3185
|
+
type: string
|
|
3186
|
+
description: Name of the resource pool (with or without the suffix `__a` of the database)
|
|
3187
|
+
- $ref: '#/components/parameters/Format'
|
|
3188
|
+
responses:
|
|
3189
|
+
'200':
|
|
3190
|
+
description: Pool status
|
|
3191
|
+
content:
|
|
3192
|
+
application/json:
|
|
3193
|
+
schema:
|
|
3194
|
+
type: object
|
|
3195
|
+
properties:
|
|
3196
|
+
ManagedResource:
|
|
3197
|
+
type: array
|
|
3198
|
+
items:
|
|
3199
|
+
type: object
|
|
3200
|
+
properties:
|
|
3201
|
+
id:
|
|
3202
|
+
type: string
|
|
3203
|
+
description: Resource name
|
|
3204
|
+
taken:
|
|
3205
|
+
type: integer
|
|
3206
|
+
capacity:
|
|
3207
|
+
type: integer
|
|
3208
|
+
status:
|
|
3209
|
+
type: string
|
|
3210
|
+
'401':
|
|
3211
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
3212
|
+
default:
|
|
3213
|
+
$ref: '#/components/responses/Error'
|
|
3214
|
+
/api/create_user/{id}:
|
|
3215
|
+
post:
|
|
3216
|
+
operationId: create_user
|
|
3217
|
+
summary: Create a user
|
|
3218
|
+
description: The response is JSON unless format is `xml`.
|
|
3219
|
+
tags:
|
|
3220
|
+
- Users
|
|
3221
|
+
parameters:
|
|
3222
|
+
- $ref: '#/components/parameters/AnyId'
|
|
3223
|
+
- $ref: '#/components/parameters/Format'
|
|
3224
|
+
requestBody:
|
|
3225
|
+
required: true
|
|
3226
|
+
content:
|
|
3227
|
+
application/json:
|
|
3228
|
+
schema:
|
|
3229
|
+
type: object
|
|
3230
|
+
required:
|
|
3231
|
+
- login
|
|
3232
|
+
- password
|
|
3233
|
+
- email
|
|
3234
|
+
properties:
|
|
3235
|
+
login:
|
|
3236
|
+
type: string
|
|
3237
|
+
description: Login of the user
|
|
3238
|
+
password:
|
|
3239
|
+
type: string
|
|
3240
|
+
format: password
|
|
3241
|
+
first_name:
|
|
3242
|
+
type: string
|
|
3243
|
+
last_name:
|
|
3244
|
+
type: string
|
|
3245
|
+
email:
|
|
3246
|
+
type: string
|
|
3247
|
+
format: email
|
|
3248
|
+
description: Email of the user, unique
|
|
3249
|
+
phone:
|
|
3250
|
+
type: string
|
|
3251
|
+
SMS:
|
|
3252
|
+
type: string
|
|
3253
|
+
is_active:
|
|
3254
|
+
type: boolean
|
|
3255
|
+
default: false
|
|
3256
|
+
require_password_change_on_login:
|
|
3257
|
+
type: boolean
|
|
3258
|
+
default: false
|
|
3259
|
+
alternate_emails:
|
|
3260
|
+
type: array
|
|
3261
|
+
items:
|
|
3262
|
+
type: string
|
|
3263
|
+
format: email
|
|
3264
|
+
groups:
|
|
3265
|
+
type: array
|
|
3266
|
+
description: Names of existing groups
|
|
3267
|
+
items:
|
|
3268
|
+
type: string
|
|
3269
|
+
responses:
|
|
3270
|
+
'200':
|
|
3271
|
+
description: Confirmation message
|
|
3272
|
+
content:
|
|
3273
|
+
application/json:
|
|
3274
|
+
schema:
|
|
3275
|
+
type: object
|
|
3276
|
+
properties:
|
|
3277
|
+
create_user:
|
|
3278
|
+
type: object
|
|
3279
|
+
properties:
|
|
3280
|
+
success:
|
|
3281
|
+
type: string
|
|
3282
|
+
examples:
|
|
3283
|
+
- User 'jdoe' was successfully created.
|
|
3284
|
+
'401':
|
|
3285
|
+
$ref: '#/components/responses/UnauthorizedError'
|
|
3286
|
+
default:
|
|
3287
|
+
$ref: '#/components/responses/Error'
|
|
3288
|
+
components:
|
|
3289
|
+
securitySchemes:
|
|
3290
|
+
bearerAuth:
|
|
3291
|
+
type: http
|
|
3292
|
+
scheme: bearer
|
|
3293
|
+
bearerFormat: JWT
|
|
3294
|
+
description: JWT token obtained from /api/login endpoint
|
|
3295
|
+
basicAuth:
|
|
3296
|
+
type: http
|
|
3297
|
+
scheme: basic
|
|
3298
|
+
description: Login and password, when JWT authentication is disabled
|
|
3299
|
+
loginQuery:
|
|
3300
|
+
type: apiKey
|
|
3301
|
+
in: query
|
|
3302
|
+
name: login
|
|
3303
|
+
description: User login, with `password` or `api_key`, when JWT authentication is disabled
|
|
3304
|
+
passwordQuery:
|
|
3305
|
+
type: apiKey
|
|
3306
|
+
in: query
|
|
3307
|
+
name: password
|
|
3308
|
+
description: User password, when JWT authentication is disabled
|
|
3309
|
+
apiKeyQuery:
|
|
3310
|
+
type: apiKey
|
|
3311
|
+
in: query
|
|
3312
|
+
name: api_key
|
|
3313
|
+
description: API key of the user, when JWT authentication is disabled
|
|
3314
|
+
parameters:
|
|
3315
|
+
Format:
|
|
3316
|
+
name: format
|
|
3317
|
+
in: query
|
|
3318
|
+
schema:
|
|
3319
|
+
type: string
|
|
3320
|
+
enum:
|
|
3321
|
+
- xml
|
|
3322
|
+
- json
|
|
3323
|
+
default: xml
|
|
3324
|
+
description: Response format (also given by the extension `.json` or `.xml` of the path)
|
|
3325
|
+
AnyId:
|
|
3326
|
+
name: id
|
|
3327
|
+
in: path
|
|
3328
|
+
required: true
|
|
3329
|
+
schema:
|
|
3330
|
+
type: string
|
|
3331
|
+
default: '0'
|
|
3332
|
+
description: Not used by the endpoint, but required by the route (any value, e.g. `0`)
|
|
3333
|
+
MonitorType:
|
|
3334
|
+
name: monitor_type
|
|
3335
|
+
in: query
|
|
3336
|
+
required: true
|
|
3337
|
+
schema:
|
|
3338
|
+
type: string
|
|
3339
|
+
enum:
|
|
3340
|
+
- workflow
|
|
3341
|
+
- workorder
|
|
3342
|
+
- folder
|
|
3343
|
+
- node
|
|
3344
|
+
- script
|
|
3345
|
+
description: Type of monitor (also accepted `work_order`, `remotenode`, `remote_node`, `remotescript`, `remote_script`)
|
|
3346
|
+
PoolName:
|
|
3347
|
+
name: pool_name
|
|
3348
|
+
in: query
|
|
3349
|
+
required: true
|
|
3350
|
+
schema:
|
|
3351
|
+
type: string
|
|
3352
|
+
description: Name of the resource pool
|
|
3353
|
+
ResourceName:
|
|
3354
|
+
name: resource_name
|
|
3355
|
+
in: query
|
|
3356
|
+
required: true
|
|
3357
|
+
schema:
|
|
3358
|
+
type: string
|
|
3359
|
+
description: Name of the resource, e.g. an IP address
|
|
3360
|
+
schemas:
|
|
3361
|
+
Error:
|
|
3362
|
+
type: object
|
|
3363
|
+
description: 'Error of an API call in format `json`. In format `xml`: `<error time="..." action="..." id="...">message</error>`.'
|
|
3364
|
+
required:
|
|
3365
|
+
- error
|
|
3366
|
+
properties:
|
|
3367
|
+
error:
|
|
3368
|
+
type: object
|
|
3369
|
+
required:
|
|
3370
|
+
- action
|
|
3371
|
+
- time
|
|
3372
|
+
- id
|
|
3373
|
+
- description
|
|
3374
|
+
properties:
|
|
3375
|
+
action:
|
|
3376
|
+
type: string
|
|
3377
|
+
description: Called endpoint
|
|
3378
|
+
time:
|
|
3379
|
+
type: string
|
|
3380
|
+
description: UTC time
|
|
3381
|
+
examples:
|
|
3382
|
+
- '2026-10-21 08:30:00'
|
|
3383
|
+
id:
|
|
3384
|
+
type: string
|
|
3385
|
+
description: The `id` of the call, or `0`
|
|
3386
|
+
description:
|
|
3387
|
+
type: string
|
|
3388
|
+
description: Error message and backtrace
|
|
3389
|
+
Workflow:
|
|
3390
|
+
type: object
|
|
3391
|
+
description: Workflow (database record)
|
|
3392
|
+
properties:
|
|
3393
|
+
id:
|
|
3394
|
+
type: integer
|
|
3395
|
+
name:
|
|
3396
|
+
type: string
|
|
3397
|
+
portable_id:
|
|
3398
|
+
type: [string, 'null']
|
|
3399
|
+
created_by:
|
|
3400
|
+
type: [integer, 'null']
|
|
3401
|
+
description: User ID
|
|
3402
|
+
folder_id:
|
|
3403
|
+
type: [integer, 'null']
|
|
3404
|
+
generated_from:
|
|
3405
|
+
type: [integer, 'null']
|
|
3406
|
+
description: Published whiteboard, `null` for a draft
|
|
3407
|
+
revision_id:
|
|
3408
|
+
type: [integer, 'null']
|
|
3409
|
+
description: Published revision
|
|
3410
|
+
label:
|
|
3411
|
+
type: [string, 'null']
|
|
3412
|
+
run_as:
|
|
3413
|
+
type: [string, 'null']
|
|
3414
|
+
source_revision:
|
|
3415
|
+
type: [string, 'null']
|
|
3416
|
+
comments:
|
|
3417
|
+
type: [string, 'null']
|
|
3418
|
+
description:
|
|
3419
|
+
type: [string, 'null']
|
|
3420
|
+
tags:
|
|
3421
|
+
type: [string, 'null']
|
|
3422
|
+
templates:
|
|
3423
|
+
type: [string, 'null']
|
|
3424
|
+
max_running:
|
|
3425
|
+
type: [integer, 'null']
|
|
3426
|
+
cleanup_after_days:
|
|
3427
|
+
type: [integer, 'null']
|
|
3428
|
+
purge_after_days:
|
|
3429
|
+
type: [integer, 'null']
|
|
3430
|
+
user_lock:
|
|
3431
|
+
type: [boolean, 'null']
|
|
3432
|
+
locked_by:
|
|
3433
|
+
type: [integer, 'null']
|
|
3434
|
+
created_at:
|
|
3435
|
+
type: string
|
|
3436
|
+
format: date-time
|
|
3437
|
+
updated_at:
|
|
3438
|
+
type: string
|
|
3439
|
+
format: date-time
|
|
3440
|
+
WorkOrder:
|
|
3441
|
+
type: object
|
|
3442
|
+
description: Work order (database record)
|
|
3443
|
+
properties:
|
|
3444
|
+
id:
|
|
3445
|
+
type: integer
|
|
3446
|
+
name:
|
|
3447
|
+
type: [string, 'null']
|
|
3448
|
+
monitor_id:
|
|
3449
|
+
type: [integer, 'null']
|
|
3450
|
+
workflow_id:
|
|
3451
|
+
type: [integer, 'null']
|
|
3452
|
+
workflow_revision_id:
|
|
3453
|
+
type: [integer, 'null']
|
|
3454
|
+
workflow_name:
|
|
3455
|
+
type: [string, 'null']
|
|
3456
|
+
branched_from_order:
|
|
3457
|
+
type: [integer, 'null']
|
|
3458
|
+
description: Parent work order, for a sub-workflow
|
|
3459
|
+
branched_from:
|
|
3460
|
+
type: [integer, 'null']
|
|
3461
|
+
description: Parent work step, for a sub-workflow
|
|
3462
|
+
forked_at:
|
|
3463
|
+
type: [integer, 'null']
|
|
3464
|
+
derived_from:
|
|
3465
|
+
type: [integer, 'null']
|
|
3466
|
+
master_id:
|
|
3467
|
+
type: [integer, 'null']
|
|
3468
|
+
launched_by:
|
|
3469
|
+
type: [integer, 'null']
|
|
3470
|
+
description: User ID
|
|
3471
|
+
initiated_by:
|
|
3472
|
+
type: [integer, 'null']
|
|
3473
|
+
description: User ID
|
|
3474
|
+
running_as:
|
|
3475
|
+
type: [integer, 'null']
|
|
3476
|
+
priority:
|
|
3477
|
+
type: [integer, 'null']
|
|
3478
|
+
exec_priority:
|
|
3479
|
+
type: [number, 'null']
|
|
3480
|
+
higher_priority:
|
|
3481
|
+
type: [boolean, 'null']
|
|
3482
|
+
label:
|
|
3483
|
+
type: [string, 'null']
|
|
3484
|
+
status:
|
|
3485
|
+
type: [string, 'null']
|
|
3486
|
+
examples:
|
|
3487
|
+
- In Progress
|
|
3488
|
+
status_details:
|
|
3489
|
+
type: [string, 'null']
|
|
3490
|
+
comments:
|
|
3491
|
+
type: [string, 'null']
|
|
3492
|
+
tags:
|
|
3493
|
+
type: [string, 'null']
|
|
3494
|
+
description: Tags separated by `|`, e.g. `|tag1|tag2|`
|
|
3495
|
+
initiate_date:
|
|
3496
|
+
type: [string, 'null']
|
|
3497
|
+
format: date-time
|
|
3498
|
+
completion_date:
|
|
3499
|
+
type: [string, 'null']
|
|
3500
|
+
format: date-time
|
|
3501
|
+
max_running:
|
|
3502
|
+
type: [integer, 'null']
|
|
3503
|
+
cleanup_after_days:
|
|
3504
|
+
type: [integer, 'null']
|
|
3505
|
+
purge_after_days:
|
|
3506
|
+
type: [integer, 'null']
|
|
3507
|
+
created_at:
|
|
3508
|
+
type: string
|
|
3509
|
+
format: date-time
|
|
3510
|
+
updated_at:
|
|
3511
|
+
type: string
|
|
3512
|
+
format: date-time
|
|
3513
|
+
WorkStepBase:
|
|
3514
|
+
type: object
|
|
3515
|
+
description: Work step (database record), common columns
|
|
3516
|
+
properties:
|
|
3517
|
+
id:
|
|
3518
|
+
type: integer
|
|
3519
|
+
action_id:
|
|
3520
|
+
type: [integer, 'null']
|
|
3521
|
+
step_id:
|
|
3522
|
+
type: [integer, 'null']
|
|
3523
|
+
step_type:
|
|
3524
|
+
type: [string, 'null']
|
|
3525
|
+
description: Plugin class name, e.g. `CustomRuby`
|
|
3526
|
+
step_name:
|
|
3527
|
+
type: [string, 'null']
|
|
3528
|
+
work_step_name:
|
|
3529
|
+
type: [string, 'null']
|
|
3530
|
+
attempt:
|
|
3531
|
+
type: [integer, 'null']
|
|
3532
|
+
execution_timeout:
|
|
3533
|
+
type: [integer, 'null']
|
|
3534
|
+
group:
|
|
3535
|
+
type: [integer, 'null']
|
|
3536
|
+
percent_complete:
|
|
3537
|
+
type: [integer, 'null']
|
|
3538
|
+
rank:
|
|
3539
|
+
type: [integer, 'null']
|
|
3540
|
+
running_as:
|
|
3541
|
+
type: [integer, 'null']
|
|
3542
|
+
synch_filter:
|
|
3543
|
+
type: [integer, 'null']
|
|
3544
|
+
timeout:
|
|
3545
|
+
type: [integer, 'null']
|
|
3546
|
+
weight:
|
|
3547
|
+
type: [integer, 'null']
|
|
3548
|
+
activation_time:
|
|
3549
|
+
type: [number, 'null']
|
|
3550
|
+
on_timeout:
|
|
3551
|
+
type: [string, 'null']
|
|
3552
|
+
status:
|
|
3553
|
+
type: [string, 'null']
|
|
3554
|
+
status_details:
|
|
3555
|
+
type: [string, 'null']
|
|
3556
|
+
prerequisites:
|
|
3557
|
+
type: [string, 'null']
|
|
3558
|
+
episteps:
|
|
3559
|
+
type: [string, 'null']
|
|
3560
|
+
journaling:
|
|
3561
|
+
type: [string, 'null']
|
|
3562
|
+
work_inputs:
|
|
3563
|
+
type: [string, 'null']
|
|
3564
|
+
work_outputs:
|
|
3565
|
+
type: [string, 'null']
|
|
3566
|
+
activable_date:
|
|
3567
|
+
type: [string, 'null']
|
|
3568
|
+
format: date-time
|
|
3569
|
+
activation_date:
|
|
3570
|
+
type: [string, 'null']
|
|
3571
|
+
format: date-time
|
|
3572
|
+
original_activation_date:
|
|
3573
|
+
type: [string, 'null']
|
|
3574
|
+
format: date-time
|
|
3575
|
+
completion_date:
|
|
3576
|
+
type: [string, 'null']
|
|
3577
|
+
format: date-time
|
|
3578
|
+
created_at:
|
|
3579
|
+
type: string
|
|
3580
|
+
format: date-time
|
|
3581
|
+
updated_at:
|
|
3582
|
+
type: string
|
|
3583
|
+
format: date-time
|
|
3584
|
+
WorkStep:
|
|
3585
|
+
description: Work step (database record)
|
|
3586
|
+
allOf:
|
|
3587
|
+
- $ref: '#/components/schemas/WorkStepBase'
|
|
3588
|
+
properties:
|
|
3589
|
+
work_order_id:
|
|
3590
|
+
type: [integer, 'null']
|
|
3591
|
+
workflow_id:
|
|
3592
|
+
type: [integer, 'null']
|
|
3593
|
+
pre_processing:
|
|
3594
|
+
type: [string, 'null']
|
|
3595
|
+
post_processing:
|
|
3596
|
+
type: [string, 'null']
|
|
3597
|
+
WorkStepStatus:
|
|
3598
|
+
description: Work step in `work_order_status`, without `workflow_id`, `pre_processing` and `post_processing`
|
|
3599
|
+
allOf:
|
|
3600
|
+
- $ref: '#/components/schemas/WorkStepBase'
|
|
3601
|
+
properties:
|
|
3602
|
+
percent_complete:
|
|
3603
|
+
type: integer
|
|
3604
|
+
description: 0 for a running step, 100 for a finished step, when not set
|
|
3605
|
+
category:
|
|
3606
|
+
type: string
|
|
3607
|
+
description: Category of the plugin, e.g. `Basic/Ruby`, or `-`
|
|
3608
|
+
work_order_id:
|
|
3609
|
+
type: [integer, string]
|
|
3610
|
+
description: 'Only for steps of type `SubWorkflow`, `WorkflowLauncher` and `FederatedWorkflow`: the launched work order, or `-`'
|
|
3611
|
+
node_id:
|
|
3612
|
+
type: string
|
|
3613
|
+
description: 'Only for `FederatedWorkflow`: execution node, or `-`'
|
|
3614
|
+
address:
|
|
3615
|
+
type: string
|
|
3616
|
+
description: 'Only for `FederatedWorkflow`: execution address, or `-`'
|
|
3617
|
+
WorkOrderWithSteps:
|
|
3618
|
+
type: object
|
|
3619
|
+
properties:
|
|
3620
|
+
work_order:
|
|
3621
|
+
$ref: '#/components/schemas/WorkOrder'
|
|
3622
|
+
work_steps:
|
|
3623
|
+
type: array
|
|
3624
|
+
items:
|
|
3625
|
+
$ref: '#/components/schemas/WorkStep'
|
|
3626
|
+
WorkstepReset:
|
|
3627
|
+
allOf:
|
|
3628
|
+
- $ref: '#/components/schemas/WorkOrderWithSteps'
|
|
3629
|
+
properties:
|
|
3630
|
+
workstep_reset:
|
|
3631
|
+
const: true
|
|
3632
|
+
StepVariable:
|
|
3633
|
+
type: object
|
|
3634
|
+
description: Input or output of a work step
|
|
3635
|
+
properties:
|
|
3636
|
+
value:
|
|
3637
|
+
description: Value, of any type
|
|
3638
|
+
name:
|
|
3639
|
+
type: string
|
|
3640
|
+
id:
|
|
3641
|
+
type: integer
|
|
3642
|
+
type:
|
|
3643
|
+
type: string
|
|
3644
|
+
description: Value type
|
|
3645
|
+
QueuedItem:
|
|
3646
|
+
type: object
|
|
3647
|
+
description: Item of a queue (database record, without the columns of the queue)
|
|
3648
|
+
properties:
|
|
3649
|
+
id:
|
|
3650
|
+
type: integer
|
|
3651
|
+
queued_item:
|
|
3652
|
+
description: The queued item
|
|
3653
|
+
item_description:
|
|
3654
|
+
type: [string, 'null']
|
|
3655
|
+
priority:
|
|
3656
|
+
type: [integer, 'null']
|
|
3657
|
+
weight:
|
|
3658
|
+
type: [integer, 'null']
|
|
3659
|
+
position:
|
|
3660
|
+
type: [integer, 'null']
|
|
3661
|
+
rank:
|
|
3662
|
+
type: [integer, 'null']
|
|
3663
|
+
description: Position in the queue, from 0
|
|
3664
|
+
originator_type:
|
|
3665
|
+
type: [string, 'null']
|
|
3666
|
+
originator_id:
|
|
3667
|
+
type: [integer, 'null']
|
|
3668
|
+
tags:
|
|
3669
|
+
type: [string, 'null']
|
|
3670
|
+
created_at:
|
|
3671
|
+
type: string
|
|
3672
|
+
format: date-time
|
|
3673
|
+
updated_at:
|
|
3674
|
+
type: string
|
|
3675
|
+
format: date-time
|
|
3676
|
+
QueueMetadata:
|
|
3677
|
+
type: object
|
|
3678
|
+
properties:
|
|
3679
|
+
id:
|
|
3680
|
+
type: string
|
|
3681
|
+
description: Queue name given in the call (`queued_items` only)
|
|
3682
|
+
name:
|
|
3683
|
+
type: string
|
|
3684
|
+
description: Displayed name of the queue
|
|
3685
|
+
comments:
|
|
3686
|
+
type: [string, 'null']
|
|
3687
|
+
administrators:
|
|
3688
|
+
type: object
|
|
3689
|
+
properties:
|
|
3690
|
+
groups:
|
|
3691
|
+
type: array
|
|
3692
|
+
items:
|
|
3693
|
+
type: integer
|
|
3694
|
+
users:
|
|
3695
|
+
type: array
|
|
3696
|
+
items:
|
|
3697
|
+
type: integer
|
|
3698
|
+
paused:
|
|
3699
|
+
type: [boolean, 'null']
|
|
3700
|
+
QueuedItems:
|
|
3701
|
+
type: object
|
|
3702
|
+
properties:
|
|
3703
|
+
queued_items:
|
|
3704
|
+
type: array
|
|
3705
|
+
items:
|
|
3706
|
+
$ref: '#/components/schemas/QueuedItem'
|
|
3707
|
+
queue_metadata:
|
|
3708
|
+
$ref: '#/components/schemas/QueueMetadata'
|
|
3709
|
+
Task:
|
|
3710
|
+
type: object
|
|
3711
|
+
description: Task, i.e. a user input waiting for a user (database record)
|
|
3712
|
+
properties:
|
|
3713
|
+
id:
|
|
3714
|
+
type: integer
|
|
3715
|
+
state_id:
|
|
3716
|
+
type: [integer, 'null']
|
|
3717
|
+
description: Work step ID
|
|
3718
|
+
user_input_id:
|
|
3719
|
+
type: [integer, 'null']
|
|
3720
|
+
role_id:
|
|
3721
|
+
type: [integer, 'null']
|
|
3722
|
+
description: Group ID
|
|
3723
|
+
user_id:
|
|
3724
|
+
type: [integer, 'null']
|
|
3725
|
+
status:
|
|
3726
|
+
type: [string, 'null']
|
|
3727
|
+
completed_by:
|
|
3728
|
+
type: [integer, 'null']
|
|
3729
|
+
description: User ID
|
|
3730
|
+
created_at:
|
|
3731
|
+
type: string
|
|
3732
|
+
format: date-time
|
|
3733
|
+
updated_at:
|
|
3734
|
+
type: string
|
|
3735
|
+
format: date-time
|
|
3736
|
+
UserInput:
|
|
3737
|
+
type: object
|
|
3738
|
+
properties:
|
|
3739
|
+
name:
|
|
3740
|
+
type: string
|
|
3741
|
+
type:
|
|
3742
|
+
type: string
|
|
3743
|
+
description: Value type
|
|
3744
|
+
value:
|
|
3745
|
+
description: Current value
|
|
3746
|
+
required:
|
|
3747
|
+
type: boolean
|
|
3748
|
+
MonitorChange:
|
|
3749
|
+
type: object
|
|
3750
|
+
properties:
|
|
3751
|
+
action:
|
|
3752
|
+
type: string
|
|
3753
|
+
enum:
|
|
3754
|
+
- activate_monitor
|
|
3755
|
+
- deactivate_monitor
|
|
3756
|
+
time:
|
|
3757
|
+
type: string
|
|
3758
|
+
description: Local time
|
|
3759
|
+
id:
|
|
3760
|
+
type: string
|
|
3761
|
+
description: Monitor ID
|
|
3762
|
+
description:
|
|
3763
|
+
type: string
|
|
3764
|
+
enum:
|
|
3765
|
+
- activated
|
|
3766
|
+
- deactivated
|
|
3767
|
+
PluginReloadStatus:
|
|
3768
|
+
type: object
|
|
3769
|
+
description: 'Plugin class name, or `All Plugins`, to `true`, `false` or an error message'
|
|
3770
|
+
additionalProperties:
|
|
3771
|
+
type: [boolean, string]
|
|
3772
|
+
ProcessNode:
|
|
3773
|
+
type: object
|
|
3774
|
+
properties:
|
|
3775
|
+
id:
|
|
3776
|
+
type: string
|
|
3777
|
+
name:
|
|
3778
|
+
type: string
|
|
3779
|
+
current:
|
|
3780
|
+
type: string
|
|
3781
|
+
enum:
|
|
3782
|
+
- 'true'
|
|
3783
|
+
- 'false'
|
|
3784
|
+
process:
|
|
3785
|
+
type: array
|
|
3786
|
+
items:
|
|
3787
|
+
type: object
|
|
3788
|
+
properties:
|
|
3789
|
+
class:
|
|
3790
|
+
type: string
|
|
3791
|
+
enum:
|
|
3792
|
+
- engine
|
|
3793
|
+
- monitor
|
|
3794
|
+
- process_manager
|
|
3795
|
+
- node_mesh
|
|
3796
|
+
- worker
|
|
3797
|
+
id:
|
|
3798
|
+
type: string
|
|
3799
|
+
description: Worker ID
|
|
3800
|
+
pid:
|
|
3801
|
+
type: string
|
|
3802
|
+
description: '`-` when not running'
|
|
3803
|
+
status:
|
|
3804
|
+
type: string
|
|
3805
|
+
type:
|
|
3806
|
+
type: string
|
|
3807
|
+
description: Worker type
|
|
3808
|
+
enum:
|
|
3809
|
+
- normal
|
|
3810
|
+
- asynchronous
|
|
3811
|
+
- dedicated
|
|
3812
|
+
AlertNotification:
|
|
3813
|
+
type: object
|
|
3814
|
+
properties:
|
|
3815
|
+
id:
|
|
3816
|
+
type: integer
|
|
3817
|
+
category_id:
|
|
3818
|
+
type: [integer, 'null']
|
|
3819
|
+
alert_header:
|
|
3820
|
+
type: [string, 'null']
|
|
3821
|
+
alert_description:
|
|
3822
|
+
type: [string, 'null']
|
|
3823
|
+
created_at:
|
|
3824
|
+
type: string
|
|
3825
|
+
format: date-time
|
|
3826
|
+
updated_at:
|
|
3827
|
+
type: string
|
|
3828
|
+
format: date-time
|
|
3829
|
+
TestRun:
|
|
3830
|
+
type: object
|
|
3831
|
+
properties:
|
|
3832
|
+
Test_run_id:
|
|
3833
|
+
type: string
|
|
3834
|
+
format: uuid
|
|
3835
|
+
Workflow_id:
|
|
3836
|
+
type: [integer, 'null']
|
|
3837
|
+
Test_cases_launched:
|
|
3838
|
+
type: integer
|
|
3839
|
+
Steps:
|
|
3840
|
+
type: array
|
|
3841
|
+
description: Only when synchronous, and in `test_step_status`
|
|
3842
|
+
items:
|
|
3843
|
+
type: object
|
|
3844
|
+
properties:
|
|
3845
|
+
Step_name:
|
|
3846
|
+
type: string
|
|
3847
|
+
Result:
|
|
3848
|
+
type: boolean
|
|
3849
|
+
Test_cases:
|
|
3850
|
+
type: array
|
|
3851
|
+
items:
|
|
3852
|
+
type: object
|
|
3853
|
+
properties:
|
|
3854
|
+
Id:
|
|
3855
|
+
type: integer
|
|
3856
|
+
Name:
|
|
3857
|
+
type: string
|
|
3858
|
+
status:
|
|
3859
|
+
type: string
|
|
3860
|
+
Status_details:
|
|
3861
|
+
type: [string, 'null']
|
|
3862
|
+
Result_message:
|
|
3863
|
+
type: [string, 'null']
|
|
3864
|
+
Last_update:
|
|
3865
|
+
type: string
|
|
3866
|
+
format: date-time
|
|
3867
|
+
Inputs:
|
|
3868
|
+
description: Inputs of the test case
|
|
3869
|
+
Outputs:
|
|
3870
|
+
description: Outputs of the test case
|
|
3871
|
+
Result:
|
|
3872
|
+
type: [boolean, 'null']
|
|
3873
|
+
Result:
|
|
3874
|
+
type: boolean
|
|
3875
|
+
description: Only when synchronous, and in `test_step_status`
|
|
3876
|
+
JournalFile:
|
|
3877
|
+
type: object
|
|
3878
|
+
properties:
|
|
3879
|
+
file_id:
|
|
3880
|
+
type: integer
|
|
3881
|
+
file:
|
|
3882
|
+
type: string
|
|
3883
|
+
status:
|
|
3884
|
+
type: [string, 'null']
|
|
3885
|
+
status_details:
|
|
3886
|
+
type: [string, 'null']
|
|
3887
|
+
created_at:
|
|
3888
|
+
type: string
|
|
3889
|
+
format: date-time
|
|
3890
|
+
updated_at:
|
|
3891
|
+
type: string
|
|
3892
|
+
format: date-time
|
|
3893
|
+
states:
|
|
3894
|
+
type: array
|
|
3895
|
+
description: Steps that processed the file, unless `details=false`
|
|
3896
|
+
items:
|
|
3897
|
+
type: object
|
|
3898
|
+
properties:
|
|
3899
|
+
path:
|
|
3900
|
+
type: [string, 'null']
|
|
3901
|
+
status:
|
|
3902
|
+
type: [string, 'null']
|
|
3903
|
+
status_details:
|
|
3904
|
+
type: [string, 'null']
|
|
3905
|
+
progress:
|
|
3906
|
+
type: [integer, 'null']
|
|
3907
|
+
work_step_id:
|
|
3908
|
+
type: [integer, 'null']
|
|
3909
|
+
work_order_id:
|
|
3910
|
+
type: [integer, 'null']
|
|
3911
|
+
step_name:
|
|
3912
|
+
type: [string, 'null']
|
|
3913
|
+
workflow_id:
|
|
3914
|
+
type: [integer, 'null']
|
|
3915
|
+
workflow_name:
|
|
3916
|
+
type: [string, 'null']
|
|
3917
|
+
created_at:
|
|
3918
|
+
type: string
|
|
3919
|
+
format: date-time
|
|
3920
|
+
ManagedResource:
|
|
3921
|
+
type: object
|
|
3922
|
+
description: Resource of a resource pool (database record)
|
|
3923
|
+
properties:
|
|
3924
|
+
id:
|
|
3925
|
+
type: integer
|
|
3926
|
+
resource_id:
|
|
3927
|
+
type: string
|
|
3928
|
+
resource_name:
|
|
3929
|
+
type: string
|
|
3930
|
+
description: Pool name, with the suffix `__a`
|
|
3931
|
+
status:
|
|
3932
|
+
type: [string, 'null']
|
|
3933
|
+
max:
|
|
3934
|
+
type: [integer, 'null']
|
|
3935
|
+
description: Capacity
|
|
3936
|
+
reserved:
|
|
3937
|
+
type: [integer, 'null']
|
|
3938
|
+
properties:
|
|
3939
|
+
type: [string, 'null']
|
|
3940
|
+
tags:
|
|
3941
|
+
type: [string, 'null']
|
|
3942
|
+
created_at:
|
|
3943
|
+
type: string
|
|
3944
|
+
format: date-time
|
|
3945
|
+
updated_at:
|
|
3946
|
+
type: string
|
|
3947
|
+
format: date-time
|
|
3948
|
+
responses:
|
|
3949
|
+
UnauthorizedError:
|
|
3950
|
+
description: Authentication required or token invalid
|
|
3951
|
+
content:
|
|
3952
|
+
application/json:
|
|
3953
|
+
schema:
|
|
3954
|
+
anyOf:
|
|
3955
|
+
- title: JWT authentication
|
|
3956
|
+
type: object
|
|
3957
|
+
properties:
|
|
3958
|
+
error:
|
|
3959
|
+
type: string
|
|
3960
|
+
examples:
|
|
3961
|
+
- Unauthorized
|
|
3962
|
+
- $ref: '#/components/schemas/Error'
|
|
3963
|
+
Error:
|
|
3964
|
+
description: 'Error: status 403 when access is denied, else 404 when the server option `strict_api_validation` is set, else 200 (see Errors in the introduction)'
|
|
3965
|
+
content:
|
|
3966
|
+
application/json:
|
|
3967
|
+
schema:
|
|
3968
|
+
$ref: '#/components/schemas/Error'
|
|
3969
|
+
tags:
|
|
3970
|
+
- name: Authentication
|
|
3971
|
+
description: Obtain JWT tokens for API access. All other endpoints require authentication.
|
|
3972
|
+
- name: Workflows
|
|
3973
|
+
description: Import, export, publish and inspect workflow definitions.
|
|
3974
|
+
- name: Work Orders
|
|
3975
|
+
description: Initiate and track workflow executions. Each work order is one execution of a workflow.
|
|
3976
|
+
- name: Work Steps
|
|
3977
|
+
description: Status and control of the steps of a work order.
|
|
3978
|
+
- name: Queues
|
|
3979
|
+
description: Managed queues (plugin Queue stager) and their items.
|
|
3980
|
+
- name: Monitors
|
|
3981
|
+
description: Monitors of workflows, work orders, folders, remote nodes and scripts.
|
|
3982
|
+
- name: Tasks
|
|
3983
|
+
description: User inputs (tasks) waiting for an operator.
|
|
3984
|
+
- name: Plugins
|
|
3985
|
+
description: Versions, import, enabling and reloading of action plugins.
|
|
3986
|
+
- name: Portlets
|
|
3987
|
+
description: Versions of the portlets of the web interface.
|
|
3988
|
+
- name: System
|
|
3989
|
+
description: Processes, execution queue, alerts, and shared state for external applications.
|
|
3990
|
+
- name: Remote Nodes
|
|
3991
|
+
description: Information on this Orchestrator, used by remote Orchestrator nodes.
|
|
3992
|
+
- name: Testing
|
|
3993
|
+
description: Test cases of workflow steps.
|
|
3994
|
+
- name: Statistics
|
|
3995
|
+
description: Statistics of work orders and work steps.
|
|
3996
|
+
- name: Journals
|
|
3997
|
+
description: Journal books and the files recorded in them.
|
|
3998
|
+
- name: Resources
|
|
3999
|
+
description: Resource pools (plugin Load manager) and their resources.
|
|
4000
|
+
- name: Users
|
|
4001
|
+
description: User accounts.
|