aspera-cli 4.27.0 → 4.27.2
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 +46 -1
- data/CONTRIBUTING.md +1 -7
- data/TODO.md +50 -0
- data/docs/README.md +709 -489
- data/lib/aspera/agent/base.rb +10 -2
- data/lib/aspera/agent/connect.rb +7 -7
- data/lib/aspera/agent/desktop.rb +3 -3
- data/lib/aspera/agent/direct.rb +48 -19
- data/lib/aspera/agent/factory.rb +3 -3
- data/lib/aspera/agent/httpgw.rb +55 -14
- data/lib/aspera/agent/node.rb +2 -2
- data/lib/aspera/agent/transferd.rb +12 -12
- data/lib/aspera/api/aoc.rb +28 -28
- data/lib/aspera/api/cos_node.rb +10 -9
- data/lib/aspera/api/faspex.rb +2 -2
- data/lib/aspera/api/httpgw.rb +20 -20
- data/lib/aspera/api/node.rb +31 -53
- data/lib/aspera/ascmd.rb +13 -13
- data/lib/aspera/ascp/installation.rb +43 -36
- data/lib/aspera/ascp/management.rb +6 -6
- data/lib/aspera/assert.rb +12 -13
- data/lib/aspera/cli/ascp_actions.rb +7 -7
- data/lib/aspera/cli/async_transfer_store.rb +49 -5
- data/lib/aspera/cli/bootstrapper.rb +9 -9
- data/lib/aspera/cli/command_registry.rb +1 -1
- data/lib/aspera/cli/command_spec.rb +6 -3
- data/lib/aspera/cli/context.rb +3 -3
- data/lib/aspera/cli/extended_value.rb +26 -26
- data/lib/aspera/cli/formatter.rb +76 -54
- data/lib/aspera/cli/gem_checker.rb +1 -1
- data/lib/aspera/cli/hints.rb +2 -2
- data/lib/aspera/cli/http.rb +22 -29
- data/lib/aspera/cli/mailer.rb +7 -7
- data/lib/aspera/cli/mcp_tool.rb +31 -4
- data/lib/aspera/cli/option_declarator.rb +77 -0
- data/lib/aspera/cli/options.schema.yaml +273 -3
- data/lib/aspera/cli/parser.rb +539 -280
- data/lib/aspera/cli/plugins/alee.rb +1 -1
- data/lib/aspera/cli/plugins/aoc.rb +303 -314
- data/lib/aspera/cli/plugins/ats.rb +25 -21
- data/lib/aspera/cli/plugins/base.rb +357 -186
- data/lib/aspera/cli/plugins/basic_auth.rb +0 -12
- data/lib/aspera/cli/plugins/config.rb +76 -73
- data/lib/aspera/cli/plugins/console.rb +8 -8
- data/lib/aspera/cli/plugins/cos.rb +4 -3
- data/lib/aspera/cli/plugins/factory.rb +2 -2
- data/lib/aspera/cli/plugins/faspex5.rb +259 -248
- data/lib/aspera/cli/plugins/faspio.rb +7 -2
- data/lib/aspera/cli/plugins/httpgw.rb +1 -1
- data/lib/aspera/cli/plugins/mcp.rb +11 -11
- data/lib/aspera/cli/plugins/node.rb +227 -283
- data/lib/aspera/cli/plugins/orchestrator.rb +23 -23
- data/lib/aspera/cli/plugins/preview.rb +61 -64
- data/lib/aspera/cli/plugins/server.rb +36 -31
- data/lib/aspera/cli/plugins/shares.rb +174 -135
- data/lib/aspera/cli/preset_actions.rb +39 -19
- data/lib/aspera/cli/preset_manager.rb +74 -32
- data/lib/aspera/cli/result.rb +18 -16
- data/lib/aspera/cli/runner.rb +75 -39
- data/lib/aspera/cli/secret_finder.rb +1 -1
- data/lib/aspera/cli/sync_actions.rb +36 -35
- data/lib/aspera/cli/terminal_formatter.rb +2 -2
- data/lib/aspera/cli/transfer_actions.rb +17 -10
- data/lib/aspera/cli/transfer_agent.rb +44 -44
- data/lib/aspera/cli/transfer_progress.rb +7 -7
- data/lib/aspera/cli/vault_manager.rb +34 -12
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/cli/wizard.rb +17 -20
- data/lib/aspera/colors.rb +3 -3
- data/lib/aspera/command_line_builder.rb +17 -16
- data/lib/aspera/command_line_converter.rb +1 -1
- data/lib/aspera/coverage.rb +1 -2
- data/lib/aspera/data_repository.rb +1 -1
- data/lib/aspera/dot_container.rb +8 -8
- data/lib/aspera/environment.rb +13 -13
- data/lib/aspera/faspex_gw.rb +4 -4
- data/lib/aspera/faspex_postproc.rb +14 -9
- data/lib/aspera/graphql.rb +4 -2
- data/lib/aspera/hash_ext.rb +2 -2
- data/lib/aspera/json_rpc/client.rb +1 -1
- data/lib/aspera/keychain/base.rb +10 -3
- data/lib/aspera/keychain/encrypted_hash.rb +92 -17
- data/lib/aspera/keychain/factory.rb +17 -5
- data/lib/aspera/keychain/hashicorp_vault.rb +1 -1
- data/lib/aspera/keychain/macos_security.rb +23 -25
- data/lib/aspera/keychain/one_password_api.rb +86 -0
- data/lib/aspera/keychain/one_password_base.rb +34 -0
- data/lib/aspera/keychain/one_password_cli.rb +98 -0
- data/lib/aspera/link_header.rb +2 -2
- data/lib/aspera/log.rb +13 -13
- data/lib/aspera/markdown.rb +5 -5
- data/lib/aspera/nagios.rb +8 -8
- data/lib/aspera/node_simulator.rb +33 -27
- data/lib/aspera/oauth/base.rb +4 -5
- data/lib/aspera/oauth/boot.rb +3 -3
- data/lib/aspera/oauth/factory.rb +5 -5
- data/lib/aspera/oauth/jwt.rb +5 -7
- data/lib/aspera/oauth/web.rb +4 -4
- data/lib/aspera/persistency_action_once.rb +4 -4
- data/lib/aspera/persistency_folder.rb +8 -8
- data/lib/aspera/preview/file_types.rb +4 -4
- data/lib/aspera/preview/generator.rb +49 -46
- data/lib/aspera/preview/options.rb +3 -2
- data/lib/aspera/preview/terminal.rb +5 -5
- data/lib/aspera/preview/utils.rb +65 -18
- data/lib/aspera/products/connect.rb +2 -2
- data/lib/aspera/products/desktop.rb +1 -1
- data/lib/aspera/products/other.rb +2 -2
- data/lib/aspera/products/transferd.rb +3 -3
- data/lib/aspera/proxy_auto_config.rb +10 -10
- data/lib/aspera/rest.rb +149 -115
- data/lib/aspera/rest_error_analyzer.rb +3 -3
- data/lib/aspera/rest_list.rb +10 -9
- data/lib/aspera/schema/IBM Aspera Node API-4.4.6.yaml +6232 -0
- data/lib/aspera/schema/IBM Aspera faspio Gateway API-1.0.0.yaml +249 -0
- data/lib/aspera/schema/IBM Aspera on Cloud API-0.2.6-enhanced.yaml +39 -0
- data/lib/aspera/schema/IBM_Aspera_Shares.yaml +4653 -0
- data/lib/aspera/schema/documentation.rb +17 -11
- data/lib/aspera/schema/reader.rb +78 -4
- data/lib/aspera/schema/registry.rb +26 -7
- data/lib/aspera/secret_hider.rb +5 -5
- data/lib/aspera/ssh.rb +64 -31
- data/lib/aspera/ssl.rb +3 -3
- data/lib/aspera/sync/database.rb +2 -2
- data/lib/aspera/sync/operations.rb +13 -13
- data/lib/aspera/temp_file_manager.rb +24 -4
- data/lib/aspera/transfer/faux_file.rb +2 -2
- data/lib/aspera/transfer/parameters.rb +15 -15
- data/lib/aspera/transfer/resumer.rb +9 -9
- data/lib/aspera/transfer/spec.rb +1 -1
- data/lib/aspera/transfer/spec.schema.yaml +1 -0
- data/lib/aspera/uri_reader.rb +52 -15
- data/lib/aspera/web_auth.rb +6 -5
- data/lib/aspera/web_server_simple.rb +9 -9
- data/lib/aspera/yaml.rb +4 -4
- data.tar.gz.sig +0 -0
- metadata +10 -4
- metadata.gz.sig +0 -0
- data/lib/aspera/cli/plugins/faspex.rb +0 -576
- data/lib/aspera/transfer/uri.rb +0 -56
|
@@ -0,0 +1,4653 @@
|
|
|
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_Aspera_Shares.yaml
|
|
4
|
+
# Use 'rake tools:openapi' to update this file
|
|
5
|
+
|
|
6
|
+
openapi: 3.0.3
|
|
7
|
+
info:
|
|
8
|
+
title: Aspera Shares API
|
|
9
|
+
contact:
|
|
10
|
+
name: IBM
|
|
11
|
+
email: aspera@ibm.com
|
|
12
|
+
url: https://ibm.com/aspera
|
|
13
|
+
version: 1.0.0
|
|
14
|
+
license:
|
|
15
|
+
name: Proprietary
|
|
16
|
+
url: "https://ibm.com/products/aspera"
|
|
17
|
+
description: |
|
|
18
|
+
Complete API documentation for Aspera Shares, a secure file sharing and collaboration platform.
|
|
19
|
+
|
|
20
|
+
In case of doubt, refer to the [official IBM Aspera Shares API reference](https://developer.ibm.com/apis/catalog/aspera--aspera-shares-api).
|
|
21
|
+
|
|
22
|
+
This API provides comprehensive access to:
|
|
23
|
+
- Files operations
|
|
24
|
+
- Transfer authorizations
|
|
25
|
+
- User and Group management
|
|
26
|
+
- Shares and access control
|
|
27
|
+
- Node operations
|
|
28
|
+
- Administrative functions
|
|
29
|
+
|
|
30
|
+
## Authentication
|
|
31
|
+
|
|
32
|
+
The API uses HTTP Basic Authentication.
|
|
33
|
+
Include your credentials in the Authorization header:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Authorization: Basic base64(username:password)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Base URLs
|
|
40
|
+
|
|
41
|
+
- `/node_api` - API for file and transfer operation. A subset of HSTS Node API.
|
|
42
|
+
- `/api/v1` - API for Administration.
|
|
43
|
+
servers:
|
|
44
|
+
- url: https://{hostname}
|
|
45
|
+
description: Aspera Shares Server
|
|
46
|
+
variables:
|
|
47
|
+
hostname:
|
|
48
|
+
default: shares.example.com
|
|
49
|
+
description: Your Aspera Shares hostname
|
|
50
|
+
security:
|
|
51
|
+
- basicAuth: []
|
|
52
|
+
tags:
|
|
53
|
+
- name: Information
|
|
54
|
+
description: Information information and health checks
|
|
55
|
+
- name: API Information
|
|
56
|
+
description: List of base endpoints and their capabilities
|
|
57
|
+
- name: Files
|
|
58
|
+
description: File operations (browse, info, create, rename, delete)
|
|
59
|
+
- name: Node Transfers
|
|
60
|
+
description: Transfer management
|
|
61
|
+
- name: Watch Folder
|
|
62
|
+
description: Watch folder management and monitoring
|
|
63
|
+
- name: Users
|
|
64
|
+
description: |
|
|
65
|
+
To create users, refer to Local User Management, SAML User Management, or LDAP User Management.
|
|
66
|
+
However, delete occurs under Authorizable Users although you can also delete local users from Local User Management.
|
|
67
|
+
It is important to note that only when the user type is database will the `local_user_id` be returned.
|
|
68
|
+
|
|
69
|
+
> [!NOTE]
|
|
70
|
+
> Manager authorization to these resources depends on the configuration option selected in the UI.
|
|
71
|
+
- name: Groups
|
|
72
|
+
description: Group management
|
|
73
|
+
- name: Shares
|
|
74
|
+
description: Share management and operations
|
|
75
|
+
- name: Nodes
|
|
76
|
+
description: Node management
|
|
77
|
+
- name: Transfer Settings
|
|
78
|
+
description: Transfer management and monitoring
|
|
79
|
+
- name: SMTP Servers
|
|
80
|
+
description: SMTP server configuration
|
|
81
|
+
# ReDoc organization
|
|
82
|
+
x-tagGroups:
|
|
83
|
+
- name: User Actions
|
|
84
|
+
tags:
|
|
85
|
+
- Information
|
|
86
|
+
- Files
|
|
87
|
+
- Node Transfers
|
|
88
|
+
- Watch Folder
|
|
89
|
+
- name: Administrative
|
|
90
|
+
tags:
|
|
91
|
+
- Users
|
|
92
|
+
- Groups
|
|
93
|
+
- Shares
|
|
94
|
+
- Nodes
|
|
95
|
+
- Transfer Settings
|
|
96
|
+
- SMTP Servers
|
|
97
|
+
paths:
|
|
98
|
+
# API v1 Endpoints
|
|
99
|
+
/api/v1:
|
|
100
|
+
get:
|
|
101
|
+
tags:
|
|
102
|
+
- API Information
|
|
103
|
+
summary: Get API v1 information
|
|
104
|
+
description: Returns general information about API v1
|
|
105
|
+
operationId: getApiV1Info
|
|
106
|
+
responses:
|
|
107
|
+
"200":
|
|
108
|
+
description: API information
|
|
109
|
+
content:
|
|
110
|
+
application/json:
|
|
111
|
+
schema:
|
|
112
|
+
type: object
|
|
113
|
+
properties:
|
|
114
|
+
resource_type:
|
|
115
|
+
type: string
|
|
116
|
+
links:
|
|
117
|
+
type: array
|
|
118
|
+
items:
|
|
119
|
+
type: object
|
|
120
|
+
properties:
|
|
121
|
+
rel:
|
|
122
|
+
type: string
|
|
123
|
+
href:
|
|
124
|
+
type: string
|
|
125
|
+
required:
|
|
126
|
+
- rel
|
|
127
|
+
- href
|
|
128
|
+
required:
|
|
129
|
+
- resource_type
|
|
130
|
+
- links
|
|
131
|
+
"401":
|
|
132
|
+
$ref: "#/components/responses/Unauthorized"
|
|
133
|
+
# User Endpoints
|
|
134
|
+
/api/v1/data/users:
|
|
135
|
+
get:
|
|
136
|
+
tags:
|
|
137
|
+
- Users
|
|
138
|
+
summary: List Authorizable Users
|
|
139
|
+
description: Get All Authorizable Users
|
|
140
|
+
operationId: listUsers
|
|
141
|
+
responses:
|
|
142
|
+
"200":
|
|
143
|
+
description: List of users
|
|
144
|
+
content:
|
|
145
|
+
application/json:
|
|
146
|
+
schema:
|
|
147
|
+
type: array
|
|
148
|
+
items:
|
|
149
|
+
$ref: "#/components/schemas/AuthorizableUser"
|
|
150
|
+
"401":
|
|
151
|
+
$ref: "#/components/responses/Unauthorized"
|
|
152
|
+
/api/v1/data/users/{id}:
|
|
153
|
+
get:
|
|
154
|
+
tags:
|
|
155
|
+
- Users
|
|
156
|
+
summary: Get specific Authorizable User
|
|
157
|
+
description: Returns details of a specific user
|
|
158
|
+
operationId: getUser
|
|
159
|
+
parameters:
|
|
160
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
161
|
+
responses:
|
|
162
|
+
"200":
|
|
163
|
+
description: User details
|
|
164
|
+
content:
|
|
165
|
+
application/json:
|
|
166
|
+
schema:
|
|
167
|
+
$ref: "#/components/schemas/AuthorizableUser"
|
|
168
|
+
"401":
|
|
169
|
+
$ref: "#/components/responses/Unauthorized"
|
|
170
|
+
"404":
|
|
171
|
+
$ref: "#/components/responses/NotFound"
|
|
172
|
+
delete:
|
|
173
|
+
tags:
|
|
174
|
+
- Users
|
|
175
|
+
summary: Delete user
|
|
176
|
+
description: |
|
|
177
|
+
Delete a Authorizable User.
|
|
178
|
+
|
|
179
|
+
> NOTE: This will delete any type of user (local, LDAP, and SAML).
|
|
180
|
+
operationId: deleteUser
|
|
181
|
+
parameters:
|
|
182
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
183
|
+
responses:
|
|
184
|
+
"204":
|
|
185
|
+
description: User deleted
|
|
186
|
+
"401":
|
|
187
|
+
$ref: "#/components/responses/Unauthorized"
|
|
188
|
+
"404":
|
|
189
|
+
$ref: "#/components/responses/NotFound"
|
|
190
|
+
/api/v1/data/local_users:
|
|
191
|
+
get:
|
|
192
|
+
tags:
|
|
193
|
+
- Users
|
|
194
|
+
summary: List Local Users
|
|
195
|
+
description: Get All Local Users
|
|
196
|
+
operationId: listLocalUsers
|
|
197
|
+
responses:
|
|
198
|
+
"200":
|
|
199
|
+
description: List of local users
|
|
200
|
+
content:
|
|
201
|
+
application/json:
|
|
202
|
+
schema:
|
|
203
|
+
type: array
|
|
204
|
+
items:
|
|
205
|
+
$ref: "#/components/schemas/LocalUser"
|
|
206
|
+
"401":
|
|
207
|
+
$ref: "#/components/responses/Unauthorized"
|
|
208
|
+
post:
|
|
209
|
+
tags:
|
|
210
|
+
- Users
|
|
211
|
+
summary: Create local user
|
|
212
|
+
description: Creates a new local user account
|
|
213
|
+
operationId: createLocalUser
|
|
214
|
+
requestBody:
|
|
215
|
+
required: true
|
|
216
|
+
content:
|
|
217
|
+
application/json:
|
|
218
|
+
schema:
|
|
219
|
+
$ref: "#/components/schemas/LocalUserCreate"
|
|
220
|
+
responses:
|
|
221
|
+
"201":
|
|
222
|
+
description: User created
|
|
223
|
+
content:
|
|
224
|
+
application/json:
|
|
225
|
+
schema:
|
|
226
|
+
$ref: "#/components/schemas/LocalUser"
|
|
227
|
+
"400":
|
|
228
|
+
$ref: "#/components/responses/BadRequest"
|
|
229
|
+
"401":
|
|
230
|
+
$ref: "#/components/responses/Unauthorized"
|
|
231
|
+
"403":
|
|
232
|
+
$ref: "#/components/responses/Forbidden"
|
|
233
|
+
/api/v1/data/local_users/{id}:
|
|
234
|
+
get:
|
|
235
|
+
tags:
|
|
236
|
+
- Users
|
|
237
|
+
summary: Get specific Local User
|
|
238
|
+
description: Returns details of a specific user
|
|
239
|
+
operationId: getLocalUser
|
|
240
|
+
parameters:
|
|
241
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
242
|
+
responses:
|
|
243
|
+
"200":
|
|
244
|
+
description: User details
|
|
245
|
+
content:
|
|
246
|
+
application/json:
|
|
247
|
+
schema:
|
|
248
|
+
$ref: "#/components/schemas/LocalUser"
|
|
249
|
+
"401":
|
|
250
|
+
$ref: "#/components/responses/Unauthorized"
|
|
251
|
+
"404":
|
|
252
|
+
$ref: "#/components/responses/NotFound"
|
|
253
|
+
put:
|
|
254
|
+
tags:
|
|
255
|
+
- Users
|
|
256
|
+
summary: Update local user
|
|
257
|
+
description: Updates an existing local user
|
|
258
|
+
operationId: updateLocalUser
|
|
259
|
+
parameters:
|
|
260
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
261
|
+
requestBody:
|
|
262
|
+
required: true
|
|
263
|
+
content:
|
|
264
|
+
application/json:
|
|
265
|
+
schema:
|
|
266
|
+
$ref: "#/components/schemas/LocalUserUpdate"
|
|
267
|
+
responses:
|
|
268
|
+
"200":
|
|
269
|
+
description: User updated
|
|
270
|
+
content:
|
|
271
|
+
application/json:
|
|
272
|
+
schema:
|
|
273
|
+
$ref: "#/components/schemas/LocalUser"
|
|
274
|
+
"400":
|
|
275
|
+
$ref: "#/components/responses/BadRequest"
|
|
276
|
+
"401":
|
|
277
|
+
$ref: "#/components/responses/Unauthorized"
|
|
278
|
+
"404":
|
|
279
|
+
$ref: "#/components/responses/NotFound"
|
|
280
|
+
delete:
|
|
281
|
+
tags:
|
|
282
|
+
- Users
|
|
283
|
+
summary: Delete local user
|
|
284
|
+
description: Delete a local User.
|
|
285
|
+
operationId: deleteLocalUser
|
|
286
|
+
parameters:
|
|
287
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
288
|
+
responses:
|
|
289
|
+
"204":
|
|
290
|
+
description: User deleted
|
|
291
|
+
"401":
|
|
292
|
+
$ref: "#/components/responses/Unauthorized"
|
|
293
|
+
"404":
|
|
294
|
+
$ref: "#/components/responses/NotFound"
|
|
295
|
+
/api/v1/data/local_groups:
|
|
296
|
+
get:
|
|
297
|
+
tags:
|
|
298
|
+
- Groups
|
|
299
|
+
summary: List local groups
|
|
300
|
+
description: Returns a list of local groups
|
|
301
|
+
operationId: listLocalGroups
|
|
302
|
+
responses:
|
|
303
|
+
"200":
|
|
304
|
+
description: List of local groups
|
|
305
|
+
content:
|
|
306
|
+
application/json:
|
|
307
|
+
schema:
|
|
308
|
+
type: array
|
|
309
|
+
items:
|
|
310
|
+
$ref: "#/components/schemas/LocalGroup"
|
|
311
|
+
"401":
|
|
312
|
+
$ref: "#/components/responses/Unauthorized"
|
|
313
|
+
post:
|
|
314
|
+
tags:
|
|
315
|
+
- Groups
|
|
316
|
+
summary: Create local group
|
|
317
|
+
description: Creates a new local group
|
|
318
|
+
operationId: createLocalGroup
|
|
319
|
+
requestBody:
|
|
320
|
+
required: true
|
|
321
|
+
content:
|
|
322
|
+
application/json:
|
|
323
|
+
schema:
|
|
324
|
+
$ref: "#/components/schemas/LocalGroupCreate"
|
|
325
|
+
responses:
|
|
326
|
+
"201":
|
|
327
|
+
description: Local group created
|
|
328
|
+
content:
|
|
329
|
+
application/json:
|
|
330
|
+
schema:
|
|
331
|
+
$ref: "#/components/schemas/LocalGroup"
|
|
332
|
+
"400":
|
|
333
|
+
$ref: "#/components/responses/BadRequest"
|
|
334
|
+
"401":
|
|
335
|
+
$ref: "#/components/responses/Unauthorized"
|
|
336
|
+
/api/v1/data/local_groups/{id}:
|
|
337
|
+
get:
|
|
338
|
+
tags:
|
|
339
|
+
- Groups
|
|
340
|
+
summary: Get local group
|
|
341
|
+
description: Returns details of a specific local group
|
|
342
|
+
operationId: getLocalGroup
|
|
343
|
+
parameters:
|
|
344
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
345
|
+
responses:
|
|
346
|
+
"200":
|
|
347
|
+
description: Local group details
|
|
348
|
+
content:
|
|
349
|
+
application/json:
|
|
350
|
+
schema:
|
|
351
|
+
$ref: "#/components/schemas/LocalGroup"
|
|
352
|
+
"401":
|
|
353
|
+
$ref: "#/components/responses/Unauthorized"
|
|
354
|
+
"404":
|
|
355
|
+
$ref: "#/components/responses/NotFound"
|
|
356
|
+
put:
|
|
357
|
+
tags:
|
|
358
|
+
- Groups
|
|
359
|
+
summary: Update local group
|
|
360
|
+
description: Updates an existing local group
|
|
361
|
+
operationId: updateLocalGroup
|
|
362
|
+
parameters:
|
|
363
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
364
|
+
requestBody:
|
|
365
|
+
required: true
|
|
366
|
+
content:
|
|
367
|
+
application/json:
|
|
368
|
+
schema:
|
|
369
|
+
$ref: "#/components/schemas/LocalGroupUpdate"
|
|
370
|
+
responses:
|
|
371
|
+
"200":
|
|
372
|
+
description: Local group updated
|
|
373
|
+
content:
|
|
374
|
+
application/json:
|
|
375
|
+
schema:
|
|
376
|
+
$ref: "#/components/schemas/LocalGroup"
|
|
377
|
+
"400":
|
|
378
|
+
$ref: "#/components/responses/BadRequest"
|
|
379
|
+
"401":
|
|
380
|
+
$ref: "#/components/responses/Unauthorized"
|
|
381
|
+
"404":
|
|
382
|
+
$ref: "#/components/responses/NotFound"
|
|
383
|
+
delete:
|
|
384
|
+
tags:
|
|
385
|
+
- Groups
|
|
386
|
+
summary: Delete local group
|
|
387
|
+
description: Deletes a local group
|
|
388
|
+
operationId: deleteLocalGroup
|
|
389
|
+
parameters:
|
|
390
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
391
|
+
responses:
|
|
392
|
+
"204":
|
|
393
|
+
description: Local group deleted
|
|
394
|
+
"401":
|
|
395
|
+
$ref: "#/components/responses/Unauthorized"
|
|
396
|
+
"404":
|
|
397
|
+
$ref: "#/components/responses/NotFound"
|
|
398
|
+
/api/v1/data/local_groups/{local_group_id}/local_users:
|
|
399
|
+
get:
|
|
400
|
+
tags:
|
|
401
|
+
- Groups
|
|
402
|
+
summary: List users of a local group
|
|
403
|
+
description: Returns all local users belonging to a specific local group
|
|
404
|
+
operationId: listLocalGroupUsers
|
|
405
|
+
parameters:
|
|
406
|
+
- name: local_group_id
|
|
407
|
+
in: path
|
|
408
|
+
required: true
|
|
409
|
+
schema:
|
|
410
|
+
type: integer
|
|
411
|
+
description: Local group ID
|
|
412
|
+
responses:
|
|
413
|
+
"200":
|
|
414
|
+
description: List of local users in the group
|
|
415
|
+
content:
|
|
416
|
+
application/json:
|
|
417
|
+
schema:
|
|
418
|
+
type: array
|
|
419
|
+
items:
|
|
420
|
+
$ref: "#/components/schemas/LocalUser"
|
|
421
|
+
"401":
|
|
422
|
+
$ref: "#/components/responses/Unauthorized"
|
|
423
|
+
"404":
|
|
424
|
+
$ref: "#/components/responses/NotFound"
|
|
425
|
+
/api/v1/data/local_groups/{local_group_id}/local_users/{id}:
|
|
426
|
+
get:
|
|
427
|
+
tags:
|
|
428
|
+
- Groups
|
|
429
|
+
summary: Get user of a local group
|
|
430
|
+
operationId: getLocalGroupUser
|
|
431
|
+
parameters:
|
|
432
|
+
- name: local_group_id
|
|
433
|
+
in: path
|
|
434
|
+
required: true
|
|
435
|
+
schema:
|
|
436
|
+
type: integer
|
|
437
|
+
description: Local group ID
|
|
438
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
439
|
+
responses:
|
|
440
|
+
"200":
|
|
441
|
+
description: Local user details
|
|
442
|
+
content:
|
|
443
|
+
application/json:
|
|
444
|
+
schema:
|
|
445
|
+
$ref: "#/components/schemas/LocalUser"
|
|
446
|
+
"401":
|
|
447
|
+
$ref: "#/components/responses/Unauthorized"
|
|
448
|
+
"404":
|
|
449
|
+
$ref: "#/components/responses/NotFound"
|
|
450
|
+
put:
|
|
451
|
+
tags:
|
|
452
|
+
- Groups
|
|
453
|
+
summary: Update user of a local group
|
|
454
|
+
operationId: updateLocalGroupUser
|
|
455
|
+
parameters:
|
|
456
|
+
- name: local_group_id
|
|
457
|
+
in: path
|
|
458
|
+
required: true
|
|
459
|
+
schema:
|
|
460
|
+
type: integer
|
|
461
|
+
description: Local group ID
|
|
462
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
463
|
+
requestBody:
|
|
464
|
+
required: true
|
|
465
|
+
content:
|
|
466
|
+
application/json:
|
|
467
|
+
schema:
|
|
468
|
+
$ref: "#/components/schemas/LocalUserUpdate"
|
|
469
|
+
responses:
|
|
470
|
+
"200":
|
|
471
|
+
description: Local user updated
|
|
472
|
+
content:
|
|
473
|
+
application/json:
|
|
474
|
+
schema:
|
|
475
|
+
$ref: "#/components/schemas/LocalUser"
|
|
476
|
+
"400":
|
|
477
|
+
$ref: "#/components/responses/BadRequest"
|
|
478
|
+
"401":
|
|
479
|
+
$ref: "#/components/responses/Unauthorized"
|
|
480
|
+
"404":
|
|
481
|
+
$ref: "#/components/responses/NotFound"
|
|
482
|
+
delete:
|
|
483
|
+
tags:
|
|
484
|
+
- Groups
|
|
485
|
+
summary: Remove user from a local group
|
|
486
|
+
operationId: deleteLocalGroupUser
|
|
487
|
+
parameters:
|
|
488
|
+
- name: local_group_id
|
|
489
|
+
in: path
|
|
490
|
+
required: true
|
|
491
|
+
schema:
|
|
492
|
+
type: integer
|
|
493
|
+
description: Local group ID
|
|
494
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
495
|
+
responses:
|
|
496
|
+
"204":
|
|
497
|
+
description: User removed from group
|
|
498
|
+
"401":
|
|
499
|
+
$ref: "#/components/responses/Unauthorized"
|
|
500
|
+
"404":
|
|
501
|
+
$ref: "#/components/responses/NotFound"
|
|
502
|
+
/api/v1/data/ldap_configs:
|
|
503
|
+
get:
|
|
504
|
+
tags:
|
|
505
|
+
- Users
|
|
506
|
+
summary: List LDAP configurations
|
|
507
|
+
operationId: listLdapConfigs
|
|
508
|
+
responses:
|
|
509
|
+
"200":
|
|
510
|
+
description: List of LDAP configurations
|
|
511
|
+
content:
|
|
512
|
+
application/json:
|
|
513
|
+
schema:
|
|
514
|
+
type: array
|
|
515
|
+
items:
|
|
516
|
+
$ref: "#/components/schemas/LdapConfig"
|
|
517
|
+
"401":
|
|
518
|
+
$ref: "#/components/responses/Unauthorized"
|
|
519
|
+
post:
|
|
520
|
+
tags:
|
|
521
|
+
- Users
|
|
522
|
+
summary: Create LDAP configuration
|
|
523
|
+
operationId: createLdapConfig
|
|
524
|
+
requestBody:
|
|
525
|
+
required: true
|
|
526
|
+
content:
|
|
527
|
+
application/json:
|
|
528
|
+
schema:
|
|
529
|
+
$ref: "#/components/schemas/LdapConfigCreate"
|
|
530
|
+
responses:
|
|
531
|
+
"201":
|
|
532
|
+
description: LDAP configuration created
|
|
533
|
+
content:
|
|
534
|
+
application/json:
|
|
535
|
+
schema:
|
|
536
|
+
$ref: "#/components/schemas/LdapConfig"
|
|
537
|
+
"400":
|
|
538
|
+
$ref: "#/components/responses/BadRequest"
|
|
539
|
+
"401":
|
|
540
|
+
$ref: "#/components/responses/Unauthorized"
|
|
541
|
+
/api/v1/data/ldap_configs/{id}:
|
|
542
|
+
get:
|
|
543
|
+
tags:
|
|
544
|
+
- Users
|
|
545
|
+
summary: Get LDAP configuration
|
|
546
|
+
operationId: getLdapConfig
|
|
547
|
+
parameters:
|
|
548
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
549
|
+
responses:
|
|
550
|
+
"200":
|
|
551
|
+
description: LDAP configuration details
|
|
552
|
+
content:
|
|
553
|
+
application/json:
|
|
554
|
+
schema:
|
|
555
|
+
$ref: "#/components/schemas/LdapConfig"
|
|
556
|
+
"401":
|
|
557
|
+
$ref: "#/components/responses/Unauthorized"
|
|
558
|
+
"404":
|
|
559
|
+
$ref: "#/components/responses/NotFound"
|
|
560
|
+
put:
|
|
561
|
+
tags:
|
|
562
|
+
- Users
|
|
563
|
+
summary: Update LDAP configuration
|
|
564
|
+
operationId: updateLdapConfig
|
|
565
|
+
parameters:
|
|
566
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
567
|
+
requestBody:
|
|
568
|
+
required: true
|
|
569
|
+
content:
|
|
570
|
+
application/json:
|
|
571
|
+
schema:
|
|
572
|
+
$ref: "#/components/schemas/LdapConfigCreate"
|
|
573
|
+
responses:
|
|
574
|
+
"200":
|
|
575
|
+
description: LDAP configuration updated
|
|
576
|
+
content:
|
|
577
|
+
application/json:
|
|
578
|
+
schema:
|
|
579
|
+
$ref: "#/components/schemas/LdapConfig"
|
|
580
|
+
"400":
|
|
581
|
+
$ref: "#/components/responses/BadRequest"
|
|
582
|
+
"401":
|
|
583
|
+
$ref: "#/components/responses/Unauthorized"
|
|
584
|
+
"404":
|
|
585
|
+
$ref: "#/components/responses/NotFound"
|
|
586
|
+
delete:
|
|
587
|
+
tags:
|
|
588
|
+
- Users
|
|
589
|
+
summary: Delete LDAP configuration
|
|
590
|
+
operationId: deleteLdapConfig
|
|
591
|
+
parameters:
|
|
592
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
593
|
+
responses:
|
|
594
|
+
"204":
|
|
595
|
+
description: LDAP configuration deleted
|
|
596
|
+
"401":
|
|
597
|
+
$ref: "#/components/responses/Unauthorized"
|
|
598
|
+
"404":
|
|
599
|
+
$ref: "#/components/responses/NotFound"
|
|
600
|
+
/api/v1/data/ldap_users:
|
|
601
|
+
post:
|
|
602
|
+
tags:
|
|
603
|
+
- Users
|
|
604
|
+
summary: Add LDAP user
|
|
605
|
+
description: Add an LDAP user account
|
|
606
|
+
operationId: createLDAPUser
|
|
607
|
+
requestBody:
|
|
608
|
+
required: true
|
|
609
|
+
content:
|
|
610
|
+
application/json:
|
|
611
|
+
schema:
|
|
612
|
+
$ref: "#/components/schemas/LDAPUserCreate"
|
|
613
|
+
responses:
|
|
614
|
+
"201":
|
|
615
|
+
description: User created
|
|
616
|
+
content:
|
|
617
|
+
application/json:
|
|
618
|
+
schema:
|
|
619
|
+
$ref: "#/components/schemas/AuthorizableUser"
|
|
620
|
+
"400":
|
|
621
|
+
$ref: "#/components/responses/BadRequest"
|
|
622
|
+
"401":
|
|
623
|
+
$ref: "#/components/responses/Unauthorized"
|
|
624
|
+
"403":
|
|
625
|
+
$ref: "#/components/responses/Forbidden"
|
|
626
|
+
/api/v1/data/ldap_groups:
|
|
627
|
+
post:
|
|
628
|
+
tags:
|
|
629
|
+
- Groups
|
|
630
|
+
summary: Add LDAP group
|
|
631
|
+
description: Add an LDAP group account
|
|
632
|
+
operationId: createLDAPGroup
|
|
633
|
+
requestBody:
|
|
634
|
+
required: true
|
|
635
|
+
content:
|
|
636
|
+
application/json:
|
|
637
|
+
schema:
|
|
638
|
+
$ref: "#/components/schemas/LDAPUserCreate"
|
|
639
|
+
responses:
|
|
640
|
+
"201":
|
|
641
|
+
description: Group created
|
|
642
|
+
content:
|
|
643
|
+
application/json:
|
|
644
|
+
schema:
|
|
645
|
+
$ref: "#/components/schemas/Group"
|
|
646
|
+
"400":
|
|
647
|
+
$ref: "#/components/responses/BadRequest"
|
|
648
|
+
"401":
|
|
649
|
+
$ref: "#/components/responses/Unauthorized"
|
|
650
|
+
"403":
|
|
651
|
+
$ref: "#/components/responses/Forbidden"
|
|
652
|
+
/api/v1/data/saml_groups/import:
|
|
653
|
+
post:
|
|
654
|
+
tags:
|
|
655
|
+
- Groups
|
|
656
|
+
summary: Import SAML group
|
|
657
|
+
description: Import a SAML group account
|
|
658
|
+
operationId: importSAMLGroup
|
|
659
|
+
requestBody:
|
|
660
|
+
required: true
|
|
661
|
+
content:
|
|
662
|
+
application/json:
|
|
663
|
+
schema:
|
|
664
|
+
$ref: "#/components/schemas/SAMLUserImport"
|
|
665
|
+
responses:
|
|
666
|
+
"201":
|
|
667
|
+
description: Group created
|
|
668
|
+
content:
|
|
669
|
+
application/json:
|
|
670
|
+
schema:
|
|
671
|
+
$ref: "#/components/schemas/Group"
|
|
672
|
+
"400":
|
|
673
|
+
$ref: "#/components/responses/BadRequest"
|
|
674
|
+
"401":
|
|
675
|
+
$ref: "#/components/responses/Unauthorized"
|
|
676
|
+
"403":
|
|
677
|
+
$ref: "#/components/responses/Forbidden"
|
|
678
|
+
/api/v1/data/saml_users/import:
|
|
679
|
+
post:
|
|
680
|
+
tags:
|
|
681
|
+
- Users
|
|
682
|
+
summary: Import SAML user
|
|
683
|
+
description: Import SAML user account
|
|
684
|
+
operationId: importSAMLUser
|
|
685
|
+
requestBody:
|
|
686
|
+
required: true
|
|
687
|
+
content:
|
|
688
|
+
application/json:
|
|
689
|
+
schema:
|
|
690
|
+
$ref: "#/components/schemas/SAMLUserImport"
|
|
691
|
+
responses:
|
|
692
|
+
"201":
|
|
693
|
+
description: User created
|
|
694
|
+
content:
|
|
695
|
+
application/json:
|
|
696
|
+
schema:
|
|
697
|
+
$ref: "#/components/schemas/AuthorizableUser"
|
|
698
|
+
"400":
|
|
699
|
+
$ref: "#/components/responses/BadRequest"
|
|
700
|
+
"401":
|
|
701
|
+
$ref: "#/components/responses/Unauthorized"
|
|
702
|
+
"403":
|
|
703
|
+
$ref: "#/components/responses/Forbidden"
|
|
704
|
+
/api/v1/data/users/{id}/share_permissions:
|
|
705
|
+
get:
|
|
706
|
+
tags:
|
|
707
|
+
- Users
|
|
708
|
+
summary: Get All Share Permissions for Specific User
|
|
709
|
+
description: Returns all share permissions for a specific user
|
|
710
|
+
operationId: getUserSharePermissions
|
|
711
|
+
parameters:
|
|
712
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
713
|
+
responses:
|
|
714
|
+
"200":
|
|
715
|
+
description: User details
|
|
716
|
+
content:
|
|
717
|
+
application/json:
|
|
718
|
+
schema:
|
|
719
|
+
type: array
|
|
720
|
+
items:
|
|
721
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
722
|
+
"401":
|
|
723
|
+
$ref: "#/components/responses/Unauthorized"
|
|
724
|
+
"404":
|
|
725
|
+
$ref: "#/components/responses/NotFound"
|
|
726
|
+
/api/v1/data/users/{id}/share_permissions/{share_id}:
|
|
727
|
+
get:
|
|
728
|
+
tags:
|
|
729
|
+
- Users
|
|
730
|
+
summary: Get User's Specific Share Permission
|
|
731
|
+
description: Returns a specific share permission for a user
|
|
732
|
+
operationId: getUserSharePermission
|
|
733
|
+
parameters:
|
|
734
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
735
|
+
- name: share_id
|
|
736
|
+
in: path
|
|
737
|
+
required: true
|
|
738
|
+
schema:
|
|
739
|
+
type: integer
|
|
740
|
+
description: Share ID
|
|
741
|
+
responses:
|
|
742
|
+
"200":
|
|
743
|
+
description: Share permission details
|
|
744
|
+
content:
|
|
745
|
+
application/json:
|
|
746
|
+
schema:
|
|
747
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
748
|
+
"401":
|
|
749
|
+
$ref: "#/components/responses/Unauthorized"
|
|
750
|
+
"404":
|
|
751
|
+
$ref: "#/components/responses/NotFound"
|
|
752
|
+
# Group Endpoints
|
|
753
|
+
/api/v1/data/users/{id}/app_authorizations:
|
|
754
|
+
get:
|
|
755
|
+
tags:
|
|
756
|
+
- Users
|
|
757
|
+
summary: Get user app authorizations
|
|
758
|
+
description: Returns app authorizations for a specific user
|
|
759
|
+
operationId: getUserAppAuthorizations
|
|
760
|
+
parameters:
|
|
761
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
762
|
+
responses:
|
|
763
|
+
"200":
|
|
764
|
+
description: User app authorizations
|
|
765
|
+
content:
|
|
766
|
+
application/json:
|
|
767
|
+
schema:
|
|
768
|
+
type: object
|
|
769
|
+
"401":
|
|
770
|
+
$ref: "#/components/responses/Unauthorized"
|
|
771
|
+
"404":
|
|
772
|
+
$ref: "#/components/responses/NotFound"
|
|
773
|
+
put:
|
|
774
|
+
tags:
|
|
775
|
+
- Users
|
|
776
|
+
summary: Update user app authorizations
|
|
777
|
+
description: Updates app authorizations for a specific user
|
|
778
|
+
operationId: updateUserAppAuthorizations
|
|
779
|
+
parameters:
|
|
780
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
781
|
+
requestBody:
|
|
782
|
+
required: true
|
|
783
|
+
content:
|
|
784
|
+
application/json:
|
|
785
|
+
schema:
|
|
786
|
+
type: object
|
|
787
|
+
responses:
|
|
788
|
+
"200":
|
|
789
|
+
description: User app authorizations updated
|
|
790
|
+
content:
|
|
791
|
+
application/json:
|
|
792
|
+
schema:
|
|
793
|
+
type: object
|
|
794
|
+
"400":
|
|
795
|
+
$ref: "#/components/responses/BadRequest"
|
|
796
|
+
"401":
|
|
797
|
+
$ref: "#/components/responses/Unauthorized"
|
|
798
|
+
"404":
|
|
799
|
+
$ref: "#/components/responses/NotFound"
|
|
800
|
+
/api/v1/data/groups:
|
|
801
|
+
get:
|
|
802
|
+
tags:
|
|
803
|
+
- Groups
|
|
804
|
+
summary: List groups
|
|
805
|
+
description: Returns a paginated list of groups
|
|
806
|
+
operationId: listGroups
|
|
807
|
+
responses:
|
|
808
|
+
"200":
|
|
809
|
+
description: List of groups
|
|
810
|
+
content:
|
|
811
|
+
application/json:
|
|
812
|
+
schema:
|
|
813
|
+
type: array
|
|
814
|
+
items:
|
|
815
|
+
$ref: "#/components/schemas/Group"
|
|
816
|
+
"401":
|
|
817
|
+
$ref: "#/components/responses/Unauthorized"
|
|
818
|
+
/api/v1/data/groups/{id}:
|
|
819
|
+
get:
|
|
820
|
+
tags:
|
|
821
|
+
- Groups
|
|
822
|
+
summary: Get group
|
|
823
|
+
description: Returns details of a specific group
|
|
824
|
+
operationId: getGroup
|
|
825
|
+
parameters:
|
|
826
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
827
|
+
responses:
|
|
828
|
+
"200":
|
|
829
|
+
description: Group details
|
|
830
|
+
content:
|
|
831
|
+
application/json:
|
|
832
|
+
schema:
|
|
833
|
+
$ref: "#/components/schemas/Group"
|
|
834
|
+
"401":
|
|
835
|
+
$ref: "#/components/responses/Unauthorized"
|
|
836
|
+
"404":
|
|
837
|
+
$ref: "#/components/responses/NotFound"
|
|
838
|
+
delete:
|
|
839
|
+
tags:
|
|
840
|
+
- Groups
|
|
841
|
+
summary: Delete group
|
|
842
|
+
description: Deletes a group
|
|
843
|
+
operationId: deleteGroup
|
|
844
|
+
parameters:
|
|
845
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
846
|
+
responses:
|
|
847
|
+
"204":
|
|
848
|
+
description: Group deleted
|
|
849
|
+
"401":
|
|
850
|
+
$ref: "#/components/responses/Unauthorized"
|
|
851
|
+
"404":
|
|
852
|
+
$ref: "#/components/responses/NotFound"
|
|
853
|
+
# Share Endpoints
|
|
854
|
+
/api/v1/data/groups/{id}/app_authorizations:
|
|
855
|
+
get:
|
|
856
|
+
tags:
|
|
857
|
+
- Groups
|
|
858
|
+
summary: Get group app authorizations
|
|
859
|
+
description: Returns app authorizations for a specific group
|
|
860
|
+
operationId: getGroupAppAuthorizations
|
|
861
|
+
parameters:
|
|
862
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
863
|
+
responses:
|
|
864
|
+
"200":
|
|
865
|
+
description: Group app authorizations
|
|
866
|
+
content:
|
|
867
|
+
application/json:
|
|
868
|
+
schema:
|
|
869
|
+
type: object
|
|
870
|
+
"401":
|
|
871
|
+
$ref: "#/components/responses/Unauthorized"
|
|
872
|
+
"404":
|
|
873
|
+
$ref: "#/components/responses/NotFound"
|
|
874
|
+
put:
|
|
875
|
+
tags:
|
|
876
|
+
- Groups
|
|
877
|
+
summary: Update group app authorizations
|
|
878
|
+
description: Updates app authorizations for a specific group
|
|
879
|
+
operationId: updateGroupAppAuthorizations
|
|
880
|
+
parameters:
|
|
881
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
882
|
+
requestBody:
|
|
883
|
+
required: true
|
|
884
|
+
content:
|
|
885
|
+
application/json:
|
|
886
|
+
schema:
|
|
887
|
+
type: object
|
|
888
|
+
responses:
|
|
889
|
+
"200":
|
|
890
|
+
description: Group app authorizations updated
|
|
891
|
+
content:
|
|
892
|
+
application/json:
|
|
893
|
+
schema:
|
|
894
|
+
type: object
|
|
895
|
+
"400":
|
|
896
|
+
$ref: "#/components/responses/BadRequest"
|
|
897
|
+
"401":
|
|
898
|
+
$ref: "#/components/responses/Unauthorized"
|
|
899
|
+
"404":
|
|
900
|
+
$ref: "#/components/responses/NotFound"
|
|
901
|
+
/api/v1/data/groups/{id}/users:
|
|
902
|
+
get:
|
|
903
|
+
tags:
|
|
904
|
+
- Groups
|
|
905
|
+
summary: List users of a group
|
|
906
|
+
description: Returns all authorizable users belonging to a specific group
|
|
907
|
+
operationId: listGroupUsers
|
|
908
|
+
parameters:
|
|
909
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
910
|
+
responses:
|
|
911
|
+
"200":
|
|
912
|
+
description: List of users in the group
|
|
913
|
+
content:
|
|
914
|
+
application/json:
|
|
915
|
+
schema:
|
|
916
|
+
type: array
|
|
917
|
+
items:
|
|
918
|
+
$ref: "#/components/schemas/AuthorizableUser"
|
|
919
|
+
"401":
|
|
920
|
+
$ref: "#/components/responses/Unauthorized"
|
|
921
|
+
"404":
|
|
922
|
+
$ref: "#/components/responses/NotFound"
|
|
923
|
+
/api/v1/data/groups/{id}/users/{user_id}:
|
|
924
|
+
get:
|
|
925
|
+
tags:
|
|
926
|
+
- Groups
|
|
927
|
+
summary: Get user of a group
|
|
928
|
+
operationId: getGroupUser
|
|
929
|
+
parameters:
|
|
930
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
931
|
+
- name: user_id
|
|
932
|
+
in: path
|
|
933
|
+
required: true
|
|
934
|
+
schema:
|
|
935
|
+
type: integer
|
|
936
|
+
description: User ID
|
|
937
|
+
responses:
|
|
938
|
+
"200":
|
|
939
|
+
description: User details
|
|
940
|
+
content:
|
|
941
|
+
application/json:
|
|
942
|
+
schema:
|
|
943
|
+
$ref: "#/components/schemas/AuthorizableUser"
|
|
944
|
+
"401":
|
|
945
|
+
$ref: "#/components/responses/Unauthorized"
|
|
946
|
+
"404":
|
|
947
|
+
$ref: "#/components/responses/NotFound"
|
|
948
|
+
put:
|
|
949
|
+
tags:
|
|
950
|
+
- Groups
|
|
951
|
+
summary: Update user of a group
|
|
952
|
+
operationId: updateGroupUser
|
|
953
|
+
parameters:
|
|
954
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
955
|
+
- name: user_id
|
|
956
|
+
in: path
|
|
957
|
+
required: true
|
|
958
|
+
schema:
|
|
959
|
+
type: integer
|
|
960
|
+
description: User ID
|
|
961
|
+
requestBody:
|
|
962
|
+
required: true
|
|
963
|
+
content:
|
|
964
|
+
application/json:
|
|
965
|
+
schema:
|
|
966
|
+
type: object
|
|
967
|
+
responses:
|
|
968
|
+
"200":
|
|
969
|
+
description: Group user updated
|
|
970
|
+
content:
|
|
971
|
+
application/json:
|
|
972
|
+
schema:
|
|
973
|
+
$ref: "#/components/schemas/AuthorizableUser"
|
|
974
|
+
"400":
|
|
975
|
+
$ref: "#/components/responses/BadRequest"
|
|
976
|
+
"401":
|
|
977
|
+
$ref: "#/components/responses/Unauthorized"
|
|
978
|
+
"404":
|
|
979
|
+
$ref: "#/components/responses/NotFound"
|
|
980
|
+
delete:
|
|
981
|
+
tags:
|
|
982
|
+
- Groups
|
|
983
|
+
summary: Remove user from a group
|
|
984
|
+
operationId: deleteGroupUser
|
|
985
|
+
parameters:
|
|
986
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
987
|
+
- name: user_id
|
|
988
|
+
in: path
|
|
989
|
+
required: true
|
|
990
|
+
schema:
|
|
991
|
+
type: integer
|
|
992
|
+
description: User ID
|
|
993
|
+
responses:
|
|
994
|
+
"204":
|
|
995
|
+
description: User removed from group
|
|
996
|
+
"401":
|
|
997
|
+
$ref: "#/components/responses/Unauthorized"
|
|
998
|
+
"404":
|
|
999
|
+
$ref: "#/components/responses/NotFound"
|
|
1000
|
+
/api/v1/data/groups/{id}/share_permissions:
|
|
1001
|
+
get:
|
|
1002
|
+
tags:
|
|
1003
|
+
- Groups
|
|
1004
|
+
summary: Get all share permissions for a group
|
|
1005
|
+
description: Returns all share permissions for a specific group
|
|
1006
|
+
operationId: getGroupSharePermissions
|
|
1007
|
+
parameters:
|
|
1008
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1009
|
+
responses:
|
|
1010
|
+
"200":
|
|
1011
|
+
description: List of share permissions
|
|
1012
|
+
content:
|
|
1013
|
+
application/json:
|
|
1014
|
+
schema:
|
|
1015
|
+
type: array
|
|
1016
|
+
items:
|
|
1017
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1018
|
+
"401":
|
|
1019
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1020
|
+
"404":
|
|
1021
|
+
$ref: "#/components/responses/NotFound"
|
|
1022
|
+
/api/v1/data/groups/{id}/share_permissions/{share_id}:
|
|
1023
|
+
get:
|
|
1024
|
+
tags:
|
|
1025
|
+
- Groups
|
|
1026
|
+
summary: Get group's specific share permission
|
|
1027
|
+
description: Returns a specific share permission for a group
|
|
1028
|
+
operationId: getGroupSharePermission
|
|
1029
|
+
parameters:
|
|
1030
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1031
|
+
- name: share_id
|
|
1032
|
+
in: path
|
|
1033
|
+
required: true
|
|
1034
|
+
schema:
|
|
1035
|
+
type: integer
|
|
1036
|
+
description: Share ID
|
|
1037
|
+
responses:
|
|
1038
|
+
"200":
|
|
1039
|
+
description: Share permission details
|
|
1040
|
+
content:
|
|
1041
|
+
application/json:
|
|
1042
|
+
schema:
|
|
1043
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1044
|
+
"401":
|
|
1045
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1046
|
+
"404":
|
|
1047
|
+
$ref: "#/components/responses/NotFound"
|
|
1048
|
+
/api/v1/data/shares:
|
|
1049
|
+
get:
|
|
1050
|
+
tags:
|
|
1051
|
+
- Shares
|
|
1052
|
+
summary: List shares
|
|
1053
|
+
description: Returns a paginated list of shares
|
|
1054
|
+
operationId: listShares
|
|
1055
|
+
responses:
|
|
1056
|
+
"200":
|
|
1057
|
+
description: List of shares
|
|
1058
|
+
content:
|
|
1059
|
+
application/json:
|
|
1060
|
+
schema:
|
|
1061
|
+
type: array
|
|
1062
|
+
items:
|
|
1063
|
+
$ref: "#/components/schemas/Share"
|
|
1064
|
+
"401":
|
|
1065
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1066
|
+
post:
|
|
1067
|
+
tags:
|
|
1068
|
+
- Shares
|
|
1069
|
+
summary: Create share
|
|
1070
|
+
description: Creates a new share
|
|
1071
|
+
operationId: createShare
|
|
1072
|
+
requestBody:
|
|
1073
|
+
required: true
|
|
1074
|
+
content:
|
|
1075
|
+
application/json:
|
|
1076
|
+
schema:
|
|
1077
|
+
$ref: "#/components/schemas/ShareCreate"
|
|
1078
|
+
responses:
|
|
1079
|
+
"201":
|
|
1080
|
+
description: Share created
|
|
1081
|
+
content:
|
|
1082
|
+
application/json:
|
|
1083
|
+
schema:
|
|
1084
|
+
$ref: "#/components/schemas/Share"
|
|
1085
|
+
"400":
|
|
1086
|
+
$ref: "#/components/responses/BadRequest"
|
|
1087
|
+
"401":
|
|
1088
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1089
|
+
/api/v1/data/shares/{id}:
|
|
1090
|
+
get:
|
|
1091
|
+
tags:
|
|
1092
|
+
- Shares
|
|
1093
|
+
summary: Get share
|
|
1094
|
+
description: Returns details of a specific share
|
|
1095
|
+
operationId: getShare
|
|
1096
|
+
parameters:
|
|
1097
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1098
|
+
responses:
|
|
1099
|
+
"200":
|
|
1100
|
+
description: Share details
|
|
1101
|
+
content:
|
|
1102
|
+
application/json:
|
|
1103
|
+
schema:
|
|
1104
|
+
$ref: "#/components/schemas/Share"
|
|
1105
|
+
"401":
|
|
1106
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1107
|
+
"404":
|
|
1108
|
+
$ref: "#/components/responses/NotFound"
|
|
1109
|
+
put:
|
|
1110
|
+
tags:
|
|
1111
|
+
- Shares
|
|
1112
|
+
summary: Update share
|
|
1113
|
+
description: Updates an existing share
|
|
1114
|
+
operationId: updateShare
|
|
1115
|
+
parameters:
|
|
1116
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1117
|
+
requestBody:
|
|
1118
|
+
required: true
|
|
1119
|
+
content:
|
|
1120
|
+
application/json:
|
|
1121
|
+
schema:
|
|
1122
|
+
$ref: "#/components/schemas/ShareUpdate"
|
|
1123
|
+
responses:
|
|
1124
|
+
"200":
|
|
1125
|
+
description: Share updated
|
|
1126
|
+
content:
|
|
1127
|
+
application/json:
|
|
1128
|
+
schema:
|
|
1129
|
+
$ref: "#/components/schemas/Share"
|
|
1130
|
+
"400":
|
|
1131
|
+
$ref: "#/components/responses/BadRequest"
|
|
1132
|
+
"401":
|
|
1133
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1134
|
+
"404":
|
|
1135
|
+
$ref: "#/components/responses/NotFound"
|
|
1136
|
+
delete:
|
|
1137
|
+
tags:
|
|
1138
|
+
- Shares
|
|
1139
|
+
summary: Delete share
|
|
1140
|
+
description: Deletes a share
|
|
1141
|
+
operationId: deleteShare
|
|
1142
|
+
parameters:
|
|
1143
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1144
|
+
responses:
|
|
1145
|
+
"204":
|
|
1146
|
+
description: Share deleted
|
|
1147
|
+
"401":
|
|
1148
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1149
|
+
"404":
|
|
1150
|
+
$ref: "#/components/responses/NotFound"
|
|
1151
|
+
# Shares nested permissions
|
|
1152
|
+
/api/v1/data/shares/{share_id}/user_permissions:
|
|
1153
|
+
get:
|
|
1154
|
+
tags:
|
|
1155
|
+
- Shares
|
|
1156
|
+
summary: List user permissions for a share
|
|
1157
|
+
operationId: listShareUserPermissions
|
|
1158
|
+
parameters:
|
|
1159
|
+
- name: share_id
|
|
1160
|
+
in: path
|
|
1161
|
+
required: true
|
|
1162
|
+
schema:
|
|
1163
|
+
type: integer
|
|
1164
|
+
description: Share ID
|
|
1165
|
+
responses:
|
|
1166
|
+
"200":
|
|
1167
|
+
description: List of user permissions
|
|
1168
|
+
content:
|
|
1169
|
+
application/json:
|
|
1170
|
+
schema:
|
|
1171
|
+
type: array
|
|
1172
|
+
items:
|
|
1173
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1174
|
+
"401":
|
|
1175
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1176
|
+
"404":
|
|
1177
|
+
$ref: "#/components/responses/NotFound"
|
|
1178
|
+
post:
|
|
1179
|
+
tags:
|
|
1180
|
+
- Shares
|
|
1181
|
+
summary: Create user permission for a share
|
|
1182
|
+
operationId: createShareUserPermission
|
|
1183
|
+
parameters:
|
|
1184
|
+
- name: share_id
|
|
1185
|
+
in: path
|
|
1186
|
+
required: true
|
|
1187
|
+
schema:
|
|
1188
|
+
type: integer
|
|
1189
|
+
description: Share ID
|
|
1190
|
+
requestBody:
|
|
1191
|
+
required: true
|
|
1192
|
+
content:
|
|
1193
|
+
application/json:
|
|
1194
|
+
schema:
|
|
1195
|
+
$ref: "#/components/schemas/SharePermissionCreate"
|
|
1196
|
+
responses:
|
|
1197
|
+
"201":
|
|
1198
|
+
description: User permission created
|
|
1199
|
+
content:
|
|
1200
|
+
application/json:
|
|
1201
|
+
schema:
|
|
1202
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1203
|
+
"400":
|
|
1204
|
+
$ref: "#/components/responses/BadRequest"
|
|
1205
|
+
"401":
|
|
1206
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1207
|
+
/api/v1/data/shares/{share_id}/user_permissions/{id}:
|
|
1208
|
+
get:
|
|
1209
|
+
tags:
|
|
1210
|
+
- Shares
|
|
1211
|
+
summary: Get user permission for a share
|
|
1212
|
+
operationId: getShareUserPermission
|
|
1213
|
+
parameters:
|
|
1214
|
+
- name: share_id
|
|
1215
|
+
in: path
|
|
1216
|
+
required: true
|
|
1217
|
+
schema:
|
|
1218
|
+
type: integer
|
|
1219
|
+
description: Share ID
|
|
1220
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1221
|
+
responses:
|
|
1222
|
+
"200":
|
|
1223
|
+
description: User permission details
|
|
1224
|
+
content:
|
|
1225
|
+
application/json:
|
|
1226
|
+
schema:
|
|
1227
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1228
|
+
"401":
|
|
1229
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1230
|
+
"404":
|
|
1231
|
+
$ref: "#/components/responses/NotFound"
|
|
1232
|
+
put:
|
|
1233
|
+
tags:
|
|
1234
|
+
- Shares
|
|
1235
|
+
summary: Update user permission for a share
|
|
1236
|
+
operationId: updateShareUserPermission
|
|
1237
|
+
parameters:
|
|
1238
|
+
- name: share_id
|
|
1239
|
+
in: path
|
|
1240
|
+
required: true
|
|
1241
|
+
schema:
|
|
1242
|
+
type: integer
|
|
1243
|
+
description: Share ID
|
|
1244
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1245
|
+
requestBody:
|
|
1246
|
+
required: true
|
|
1247
|
+
content:
|
|
1248
|
+
application/json:
|
|
1249
|
+
schema:
|
|
1250
|
+
$ref: "#/components/schemas/SharePermissionCreate"
|
|
1251
|
+
responses:
|
|
1252
|
+
"200":
|
|
1253
|
+
description: User permission updated
|
|
1254
|
+
content:
|
|
1255
|
+
application/json:
|
|
1256
|
+
schema:
|
|
1257
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1258
|
+
"400":
|
|
1259
|
+
$ref: "#/components/responses/BadRequest"
|
|
1260
|
+
"401":
|
|
1261
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1262
|
+
"404":
|
|
1263
|
+
$ref: "#/components/responses/NotFound"
|
|
1264
|
+
delete:
|
|
1265
|
+
tags:
|
|
1266
|
+
- Shares
|
|
1267
|
+
summary: Delete user permission for a share
|
|
1268
|
+
operationId: deleteShareUserPermission
|
|
1269
|
+
parameters:
|
|
1270
|
+
- name: share_id
|
|
1271
|
+
in: path
|
|
1272
|
+
required: true
|
|
1273
|
+
schema:
|
|
1274
|
+
type: integer
|
|
1275
|
+
description: Share ID
|
|
1276
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1277
|
+
responses:
|
|
1278
|
+
"204":
|
|
1279
|
+
description: User permission deleted
|
|
1280
|
+
"401":
|
|
1281
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1282
|
+
"404":
|
|
1283
|
+
$ref: "#/components/responses/NotFound"
|
|
1284
|
+
/api/v1/data/shares/{share_id}/group_permissions:
|
|
1285
|
+
get:
|
|
1286
|
+
tags:
|
|
1287
|
+
- Shares
|
|
1288
|
+
summary: List group permissions for a share
|
|
1289
|
+
operationId: listShareGroupPermissions
|
|
1290
|
+
parameters:
|
|
1291
|
+
- name: share_id
|
|
1292
|
+
in: path
|
|
1293
|
+
required: true
|
|
1294
|
+
schema:
|
|
1295
|
+
type: integer
|
|
1296
|
+
description: Share ID
|
|
1297
|
+
responses:
|
|
1298
|
+
"200":
|
|
1299
|
+
description: List of group permissions
|
|
1300
|
+
content:
|
|
1301
|
+
application/json:
|
|
1302
|
+
schema:
|
|
1303
|
+
type: array
|
|
1304
|
+
items:
|
|
1305
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1306
|
+
"401":
|
|
1307
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1308
|
+
"404":
|
|
1309
|
+
$ref: "#/components/responses/NotFound"
|
|
1310
|
+
post:
|
|
1311
|
+
tags:
|
|
1312
|
+
- Shares
|
|
1313
|
+
summary: Create group permission for a share
|
|
1314
|
+
operationId: createShareGroupPermission
|
|
1315
|
+
parameters:
|
|
1316
|
+
- name: share_id
|
|
1317
|
+
in: path
|
|
1318
|
+
required: true
|
|
1319
|
+
schema:
|
|
1320
|
+
type: integer
|
|
1321
|
+
description: Share ID
|
|
1322
|
+
requestBody:
|
|
1323
|
+
required: true
|
|
1324
|
+
content:
|
|
1325
|
+
application/json:
|
|
1326
|
+
schema:
|
|
1327
|
+
$ref: "#/components/schemas/SharePermissionCreate"
|
|
1328
|
+
responses:
|
|
1329
|
+
"201":
|
|
1330
|
+
description: Group permission created
|
|
1331
|
+
content:
|
|
1332
|
+
application/json:
|
|
1333
|
+
schema:
|
|
1334
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1335
|
+
"400":
|
|
1336
|
+
$ref: "#/components/responses/BadRequest"
|
|
1337
|
+
"401":
|
|
1338
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1339
|
+
/api/v1/data/shares/{share_id}/group_permissions/{id}:
|
|
1340
|
+
get:
|
|
1341
|
+
tags:
|
|
1342
|
+
- Shares
|
|
1343
|
+
summary: Get group permission for a share
|
|
1344
|
+
operationId: getShareGroupPermission
|
|
1345
|
+
parameters:
|
|
1346
|
+
- name: share_id
|
|
1347
|
+
in: path
|
|
1348
|
+
required: true
|
|
1349
|
+
schema:
|
|
1350
|
+
type: integer
|
|
1351
|
+
description: Share ID
|
|
1352
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1353
|
+
responses:
|
|
1354
|
+
"200":
|
|
1355
|
+
description: Group permission details
|
|
1356
|
+
content:
|
|
1357
|
+
application/json:
|
|
1358
|
+
schema:
|
|
1359
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1360
|
+
"401":
|
|
1361
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1362
|
+
"404":
|
|
1363
|
+
$ref: "#/components/responses/NotFound"
|
|
1364
|
+
put:
|
|
1365
|
+
tags:
|
|
1366
|
+
- Shares
|
|
1367
|
+
summary: Update group permission for a share
|
|
1368
|
+
operationId: updateShareGroupPermission
|
|
1369
|
+
parameters:
|
|
1370
|
+
- name: share_id
|
|
1371
|
+
in: path
|
|
1372
|
+
required: true
|
|
1373
|
+
schema:
|
|
1374
|
+
type: integer
|
|
1375
|
+
description: Share ID
|
|
1376
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1377
|
+
requestBody:
|
|
1378
|
+
required: true
|
|
1379
|
+
content:
|
|
1380
|
+
application/json:
|
|
1381
|
+
schema:
|
|
1382
|
+
$ref: "#/components/schemas/SharePermissionCreate"
|
|
1383
|
+
responses:
|
|
1384
|
+
"200":
|
|
1385
|
+
description: Group permission updated
|
|
1386
|
+
content:
|
|
1387
|
+
application/json:
|
|
1388
|
+
schema:
|
|
1389
|
+
$ref: "#/components/schemas/ShareUserPermission"
|
|
1390
|
+
"400":
|
|
1391
|
+
$ref: "#/components/responses/BadRequest"
|
|
1392
|
+
"401":
|
|
1393
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1394
|
+
"404":
|
|
1395
|
+
$ref: "#/components/responses/NotFound"
|
|
1396
|
+
delete:
|
|
1397
|
+
tags:
|
|
1398
|
+
- Shares
|
|
1399
|
+
summary: Delete group permission for a share
|
|
1400
|
+
operationId: deleteShareGroupPermission
|
|
1401
|
+
parameters:
|
|
1402
|
+
- name: share_id
|
|
1403
|
+
in: path
|
|
1404
|
+
required: true
|
|
1405
|
+
schema:
|
|
1406
|
+
type: integer
|
|
1407
|
+
description: Share ID
|
|
1408
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1409
|
+
responses:
|
|
1410
|
+
"204":
|
|
1411
|
+
description: Group permission deleted
|
|
1412
|
+
"401":
|
|
1413
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1414
|
+
"404":
|
|
1415
|
+
$ref: "#/components/responses/NotFound"
|
|
1416
|
+
# Node Endpoints
|
|
1417
|
+
/api/v1/data/nodes:
|
|
1418
|
+
get:
|
|
1419
|
+
tags:
|
|
1420
|
+
- Nodes
|
|
1421
|
+
summary: List nodes
|
|
1422
|
+
description: Returns a paginated list of nodes
|
|
1423
|
+
operationId: listNodes
|
|
1424
|
+
responses:
|
|
1425
|
+
"200":
|
|
1426
|
+
description: List of nodes
|
|
1427
|
+
content:
|
|
1428
|
+
application/json:
|
|
1429
|
+
schema:
|
|
1430
|
+
type: array
|
|
1431
|
+
items:
|
|
1432
|
+
$ref: "#/components/schemas/Node"
|
|
1433
|
+
"401":
|
|
1434
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1435
|
+
post:
|
|
1436
|
+
tags:
|
|
1437
|
+
- Nodes
|
|
1438
|
+
summary: Create node
|
|
1439
|
+
description: Creates a new node
|
|
1440
|
+
operationId: createNode
|
|
1441
|
+
requestBody:
|
|
1442
|
+
required: true
|
|
1443
|
+
content:
|
|
1444
|
+
application/json:
|
|
1445
|
+
schema:
|
|
1446
|
+
$ref: "#/components/schemas/NodeCreate"
|
|
1447
|
+
responses:
|
|
1448
|
+
"201":
|
|
1449
|
+
description: Node created
|
|
1450
|
+
content:
|
|
1451
|
+
application/json:
|
|
1452
|
+
schema:
|
|
1453
|
+
$ref: "#/components/schemas/Node"
|
|
1454
|
+
"400":
|
|
1455
|
+
$ref: "#/components/responses/BadRequest"
|
|
1456
|
+
"401":
|
|
1457
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1458
|
+
/api/v1/data/nodes/{id}:
|
|
1459
|
+
get:
|
|
1460
|
+
tags:
|
|
1461
|
+
- Nodes
|
|
1462
|
+
summary: Get node
|
|
1463
|
+
description: Returns details of a specific node
|
|
1464
|
+
operationId: getNode
|
|
1465
|
+
parameters:
|
|
1466
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1467
|
+
responses:
|
|
1468
|
+
"200":
|
|
1469
|
+
description: Node details
|
|
1470
|
+
content:
|
|
1471
|
+
application/json:
|
|
1472
|
+
schema:
|
|
1473
|
+
$ref: "#/components/schemas/Node"
|
|
1474
|
+
"401":
|
|
1475
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1476
|
+
"404":
|
|
1477
|
+
$ref: "#/components/responses/NotFound"
|
|
1478
|
+
put:
|
|
1479
|
+
tags:
|
|
1480
|
+
- Nodes
|
|
1481
|
+
summary: Update node
|
|
1482
|
+
description: Updates an existing node
|
|
1483
|
+
operationId: updateNode
|
|
1484
|
+
parameters:
|
|
1485
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1486
|
+
requestBody:
|
|
1487
|
+
required: true
|
|
1488
|
+
content:
|
|
1489
|
+
application/json:
|
|
1490
|
+
schema:
|
|
1491
|
+
$ref: "#/components/schemas/NodeCreate"
|
|
1492
|
+
responses:
|
|
1493
|
+
"200":
|
|
1494
|
+
description: Node updated
|
|
1495
|
+
content:
|
|
1496
|
+
application/json:
|
|
1497
|
+
schema:
|
|
1498
|
+
$ref: "#/components/schemas/Node"
|
|
1499
|
+
"400":
|
|
1500
|
+
$ref: "#/components/responses/BadRequest"
|
|
1501
|
+
"401":
|
|
1502
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1503
|
+
"404":
|
|
1504
|
+
$ref: "#/components/responses/NotFound"
|
|
1505
|
+
delete:
|
|
1506
|
+
tags:
|
|
1507
|
+
- Nodes
|
|
1508
|
+
summary: Delete node
|
|
1509
|
+
description: Deletes a node
|
|
1510
|
+
operationId: deleteNode
|
|
1511
|
+
parameters:
|
|
1512
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1513
|
+
responses:
|
|
1514
|
+
"204":
|
|
1515
|
+
description: Node deleted
|
|
1516
|
+
"401":
|
|
1517
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1518
|
+
"404":
|
|
1519
|
+
$ref: "#/components/responses/NotFound"
|
|
1520
|
+
# SMTP Server Endpoints
|
|
1521
|
+
/api/v1/data/smtp_server:
|
|
1522
|
+
get:
|
|
1523
|
+
tags:
|
|
1524
|
+
- SMTP Servers
|
|
1525
|
+
summary: Get SMTP server
|
|
1526
|
+
description: Returns the configured SMTP server
|
|
1527
|
+
operationId: getSmtpServer
|
|
1528
|
+
responses:
|
|
1529
|
+
"200":
|
|
1530
|
+
description: SMTP server details
|
|
1531
|
+
content:
|
|
1532
|
+
application/json:
|
|
1533
|
+
schema:
|
|
1534
|
+
$ref: "#/components/schemas/SmtpServer"
|
|
1535
|
+
"401":
|
|
1536
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1537
|
+
"404":
|
|
1538
|
+
$ref: "#/components/responses/NotFound"
|
|
1539
|
+
post:
|
|
1540
|
+
tags:
|
|
1541
|
+
- SMTP Servers
|
|
1542
|
+
summary: Create SMTP server
|
|
1543
|
+
description: Configures a new SMTP server
|
|
1544
|
+
operationId: createSmtpServer
|
|
1545
|
+
requestBody:
|
|
1546
|
+
required: true
|
|
1547
|
+
content:
|
|
1548
|
+
application/json:
|
|
1549
|
+
schema:
|
|
1550
|
+
$ref: "#/components/schemas/SmtpServerCreate"
|
|
1551
|
+
responses:
|
|
1552
|
+
"201":
|
|
1553
|
+
description: SMTP server created
|
|
1554
|
+
content:
|
|
1555
|
+
application/json:
|
|
1556
|
+
schema:
|
|
1557
|
+
$ref: "#/components/schemas/SmtpServer"
|
|
1558
|
+
"400":
|
|
1559
|
+
$ref: "#/components/responses/BadRequest"
|
|
1560
|
+
"401":
|
|
1561
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1562
|
+
put:
|
|
1563
|
+
tags:
|
|
1564
|
+
- SMTP Servers
|
|
1565
|
+
summary: Update SMTP server
|
|
1566
|
+
description: Updates the SMTP server configuration
|
|
1567
|
+
operationId: updateSmtpServer
|
|
1568
|
+
requestBody:
|
|
1569
|
+
required: true
|
|
1570
|
+
content:
|
|
1571
|
+
application/json:
|
|
1572
|
+
schema:
|
|
1573
|
+
$ref: "#/components/schemas/SmtpServerUpdate"
|
|
1574
|
+
responses:
|
|
1575
|
+
"200":
|
|
1576
|
+
description: SMTP server updated
|
|
1577
|
+
content:
|
|
1578
|
+
application/json:
|
|
1579
|
+
schema:
|
|
1580
|
+
$ref: "#/components/schemas/SmtpServer"
|
|
1581
|
+
"400":
|
|
1582
|
+
$ref: "#/components/responses/BadRequest"
|
|
1583
|
+
"401":
|
|
1584
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1585
|
+
"404":
|
|
1586
|
+
$ref: "#/components/responses/NotFound"
|
|
1587
|
+
# Transfer Settings Endpoints
|
|
1588
|
+
/api/v1/data/transfer_settings:
|
|
1589
|
+
get:
|
|
1590
|
+
tags:
|
|
1591
|
+
- Transfer Settings
|
|
1592
|
+
summary: Get global transfer settings
|
|
1593
|
+
description: Returns global transfer settings that apply to all users and groups unless overridden
|
|
1594
|
+
operationId: getGlobalTransferSettings
|
|
1595
|
+
responses:
|
|
1596
|
+
"200":
|
|
1597
|
+
description: Global transfer settings
|
|
1598
|
+
content:
|
|
1599
|
+
application/json:
|
|
1600
|
+
schema:
|
|
1601
|
+
$ref: "#/components/schemas/TransferSettings"
|
|
1602
|
+
example:
|
|
1603
|
+
min_connect_version: "3.6.1"
|
|
1604
|
+
upload_target_rate: "10.0 Kbps"
|
|
1605
|
+
upload_target_rate_cap: null
|
|
1606
|
+
download_target_rate: null
|
|
1607
|
+
download_target_rate_cap: null
|
|
1608
|
+
starting_policy: ""
|
|
1609
|
+
allowed_policy: ""
|
|
1610
|
+
encryption: ""
|
|
1611
|
+
encryption_at_rest: ""
|
|
1612
|
+
"401":
|
|
1613
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1614
|
+
put:
|
|
1615
|
+
tags:
|
|
1616
|
+
- Transfer Settings
|
|
1617
|
+
summary: Update global transfer settings
|
|
1618
|
+
description: |
|
|
1619
|
+
Updates global transfer settings. Use blank strings to indicate inherited settings.
|
|
1620
|
+
|
|
1621
|
+
Valid values:
|
|
1622
|
+
- starting_policy: "", "fixed", "high", "fair", "low"
|
|
1623
|
+
- allowed_policy: "", "fixed, high, fair, and low", "high, fair, and low", "fair and low", "low"
|
|
1624
|
+
- encryption: "", "Optional", "AES-128"
|
|
1625
|
+
- encryption_at_rest: "", "Optional", "Required"
|
|
1626
|
+
operationId: updateGlobalTransferSettings
|
|
1627
|
+
requestBody:
|
|
1628
|
+
required: false
|
|
1629
|
+
content:
|
|
1630
|
+
application/json:
|
|
1631
|
+
schema:
|
|
1632
|
+
$ref: "#/components/schemas/TransferSettingsUpdate"
|
|
1633
|
+
responses:
|
|
1634
|
+
"200":
|
|
1635
|
+
description: Transfer settings updated
|
|
1636
|
+
content:
|
|
1637
|
+
application/json:
|
|
1638
|
+
schema:
|
|
1639
|
+
$ref: "#/components/schemas/TransferSettingsResponse"
|
|
1640
|
+
"400":
|
|
1641
|
+
$ref: "#/components/responses/BadRequest"
|
|
1642
|
+
"401":
|
|
1643
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1644
|
+
/api/v1/data/users/{id}/transfer_settings:
|
|
1645
|
+
get:
|
|
1646
|
+
tags:
|
|
1647
|
+
- Transfer Settings
|
|
1648
|
+
summary: Get user transfer settings
|
|
1649
|
+
description: |
|
|
1650
|
+
Returns transfer settings specific to a user.
|
|
1651
|
+
Returns 404 if the user doesn't have specific settings (inherits global settings).
|
|
1652
|
+
operationId: getUserTransferSettings
|
|
1653
|
+
parameters:
|
|
1654
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1655
|
+
responses:
|
|
1656
|
+
"200":
|
|
1657
|
+
description: User transfer settings
|
|
1658
|
+
content:
|
|
1659
|
+
application/json:
|
|
1660
|
+
schema:
|
|
1661
|
+
$ref: "#/components/schemas/UserTransferSettings"
|
|
1662
|
+
"401":
|
|
1663
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1664
|
+
"404":
|
|
1665
|
+
description: User has no specific transfer settings (inherits global settings)
|
|
1666
|
+
put:
|
|
1667
|
+
tags:
|
|
1668
|
+
- Transfer Settings
|
|
1669
|
+
summary: Update user transfer settings
|
|
1670
|
+
description: Updates transfer settings for a specific user
|
|
1671
|
+
operationId: updateUserTransferSettings
|
|
1672
|
+
parameters:
|
|
1673
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1674
|
+
requestBody:
|
|
1675
|
+
required: true
|
|
1676
|
+
content:
|
|
1677
|
+
application/json:
|
|
1678
|
+
schema:
|
|
1679
|
+
$ref: "#/components/schemas/TransferSettingsUpdate"
|
|
1680
|
+
responses:
|
|
1681
|
+
"200":
|
|
1682
|
+
description: User transfer settings updated
|
|
1683
|
+
content:
|
|
1684
|
+
application/json:
|
|
1685
|
+
schema:
|
|
1686
|
+
$ref: "#/components/schemas/UserTransferSettings"
|
|
1687
|
+
"400":
|
|
1688
|
+
$ref: "#/components/responses/BadRequest"
|
|
1689
|
+
"401":
|
|
1690
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1691
|
+
delete:
|
|
1692
|
+
tags:
|
|
1693
|
+
- Transfer Settings
|
|
1694
|
+
summary: Delete user transfer settings
|
|
1695
|
+
description: |
|
|
1696
|
+
Removes user-specific transfer settings, causing the user to inherit global settings.
|
|
1697
|
+
Returns 204 even if no specific settings exist.
|
|
1698
|
+
operationId: deleteUserTransferSettings
|
|
1699
|
+
parameters:
|
|
1700
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1701
|
+
responses:
|
|
1702
|
+
"204":
|
|
1703
|
+
description: User transfer settings deleted (user now inherits global settings)
|
|
1704
|
+
"401":
|
|
1705
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1706
|
+
/api/v1/data/groups/{id}/transfer_settings:
|
|
1707
|
+
get:
|
|
1708
|
+
tags:
|
|
1709
|
+
- Transfer Settings
|
|
1710
|
+
summary: Get group transfer settings
|
|
1711
|
+
description: |
|
|
1712
|
+
Returns transfer settings specific to a group.
|
|
1713
|
+
Returns 404 if the group doesn't have specific settings (inherits global settings).
|
|
1714
|
+
operationId: getGroupTransferSettings
|
|
1715
|
+
parameters:
|
|
1716
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1717
|
+
responses:
|
|
1718
|
+
"200":
|
|
1719
|
+
description: Group transfer settings
|
|
1720
|
+
content:
|
|
1721
|
+
application/json:
|
|
1722
|
+
schema:
|
|
1723
|
+
$ref: "#/components/schemas/GroupTransferSettings"
|
|
1724
|
+
"401":
|
|
1725
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1726
|
+
"404":
|
|
1727
|
+
description: Group has no specific transfer settings (inherits global settings)
|
|
1728
|
+
put:
|
|
1729
|
+
tags:
|
|
1730
|
+
- Transfer Settings
|
|
1731
|
+
summary: Update group transfer settings
|
|
1732
|
+
description: Updates transfer settings for a specific group
|
|
1733
|
+
operationId: updateGroupTransferSettings
|
|
1734
|
+
parameters:
|
|
1735
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1736
|
+
requestBody:
|
|
1737
|
+
required: true
|
|
1738
|
+
content:
|
|
1739
|
+
application/json:
|
|
1740
|
+
schema:
|
|
1741
|
+
$ref: "#/components/schemas/TransferSettingsUpdate"
|
|
1742
|
+
responses:
|
|
1743
|
+
"200":
|
|
1744
|
+
description: Group transfer settings updated
|
|
1745
|
+
content:
|
|
1746
|
+
application/json:
|
|
1747
|
+
schema:
|
|
1748
|
+
$ref: "#/components/schemas/GroupTransferSettings"
|
|
1749
|
+
"400":
|
|
1750
|
+
$ref: "#/components/responses/BadRequest"
|
|
1751
|
+
"401":
|
|
1752
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1753
|
+
delete:
|
|
1754
|
+
tags:
|
|
1755
|
+
- Transfer Settings
|
|
1756
|
+
summary: Delete group transfer settings
|
|
1757
|
+
description: |
|
|
1758
|
+
Removes group-specific transfer settings, causing the group to inherit global settings.
|
|
1759
|
+
Returns 204 even if no specific settings exist.
|
|
1760
|
+
operationId: deleteGroupTransferSettings
|
|
1761
|
+
parameters:
|
|
1762
|
+
- $ref: "#/components/parameters/IntegerIdInPath"
|
|
1763
|
+
responses:
|
|
1764
|
+
"204":
|
|
1765
|
+
description: Group transfer settings deleted (group now inherits global settings)
|
|
1766
|
+
"401":
|
|
1767
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1768
|
+
# Node API Endpoints
|
|
1769
|
+
/node_api:
|
|
1770
|
+
get:
|
|
1771
|
+
tags:
|
|
1772
|
+
- Information
|
|
1773
|
+
summary: Get Node API information
|
|
1774
|
+
description: Returns general information about the Node API
|
|
1775
|
+
operationId: getNodeApiInfo
|
|
1776
|
+
responses:
|
|
1777
|
+
"200":
|
|
1778
|
+
description: Node API information
|
|
1779
|
+
content:
|
|
1780
|
+
application/json:
|
|
1781
|
+
schema:
|
|
1782
|
+
type: object
|
|
1783
|
+
properties:
|
|
1784
|
+
apis:
|
|
1785
|
+
type: array
|
|
1786
|
+
items:
|
|
1787
|
+
type: object
|
|
1788
|
+
properties:
|
|
1789
|
+
name:
|
|
1790
|
+
type: string
|
|
1791
|
+
version:
|
|
1792
|
+
type: number
|
|
1793
|
+
url:
|
|
1794
|
+
type: string
|
|
1795
|
+
required:
|
|
1796
|
+
- name
|
|
1797
|
+
- version
|
|
1798
|
+
- url
|
|
1799
|
+
required:
|
|
1800
|
+
- apis
|
|
1801
|
+
"401":
|
|
1802
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1803
|
+
/node_api/ping:
|
|
1804
|
+
get:
|
|
1805
|
+
tags:
|
|
1806
|
+
- Information
|
|
1807
|
+
summary: Ping the Node API
|
|
1808
|
+
description: Health check endpoint to verify Node API availability
|
|
1809
|
+
operationId: pingNodeApi
|
|
1810
|
+
security: [] # No authentication required for ping
|
|
1811
|
+
responses:
|
|
1812
|
+
"200":
|
|
1813
|
+
description: Successful ping. Return empty string.
|
|
1814
|
+
content:
|
|
1815
|
+
text/html:
|
|
1816
|
+
schema:
|
|
1817
|
+
type: string
|
|
1818
|
+
example: ""
|
|
1819
|
+
"401":
|
|
1820
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1821
|
+
/node_api/info:
|
|
1822
|
+
get:
|
|
1823
|
+
tags:
|
|
1824
|
+
- Information
|
|
1825
|
+
summary: Get Node information
|
|
1826
|
+
description: Returns detailed information about the Node
|
|
1827
|
+
operationId: getNodeInfo
|
|
1828
|
+
responses:
|
|
1829
|
+
"200":
|
|
1830
|
+
description: Node information
|
|
1831
|
+
content:
|
|
1832
|
+
application/json:
|
|
1833
|
+
schema:
|
|
1834
|
+
$ref: "#/components/schemas/NodeInfo"
|
|
1835
|
+
"401":
|
|
1836
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1837
|
+
/node_api/transfers:
|
|
1838
|
+
post:
|
|
1839
|
+
tags:
|
|
1840
|
+
- Node Transfers
|
|
1841
|
+
summary: Create transfer
|
|
1842
|
+
description: Initiates a new transfer
|
|
1843
|
+
operationId: createNodeTransfer
|
|
1844
|
+
requestBody:
|
|
1845
|
+
required: true
|
|
1846
|
+
content:
|
|
1847
|
+
application/json:
|
|
1848
|
+
schema:
|
|
1849
|
+
$ref: "#/components/schemas/TransferCreate"
|
|
1850
|
+
responses:
|
|
1851
|
+
"201":
|
|
1852
|
+
description: Transfer created
|
|
1853
|
+
content:
|
|
1854
|
+
application/json:
|
|
1855
|
+
schema:
|
|
1856
|
+
$ref: "#/components/schemas/Transfer"
|
|
1857
|
+
"400":
|
|
1858
|
+
$ref: "#/components/responses/BadRequest"
|
|
1859
|
+
"401":
|
|
1860
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1861
|
+
/node_api/transfers/{id}:
|
|
1862
|
+
get:
|
|
1863
|
+
tags:
|
|
1864
|
+
- Node Transfers
|
|
1865
|
+
summary: Get transfer status
|
|
1866
|
+
description: Returns the status and details of a specific transfer
|
|
1867
|
+
operationId: getNodeTransfer
|
|
1868
|
+
parameters:
|
|
1869
|
+
- $ref: "#/components/parameters/TransferId"
|
|
1870
|
+
responses:
|
|
1871
|
+
"200":
|
|
1872
|
+
description: Transfer details
|
|
1873
|
+
content:
|
|
1874
|
+
application/json:
|
|
1875
|
+
schema:
|
|
1876
|
+
$ref: "#/components/schemas/Transfer"
|
|
1877
|
+
"401":
|
|
1878
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1879
|
+
"404":
|
|
1880
|
+
$ref: "#/components/responses/NotFound"
|
|
1881
|
+
put:
|
|
1882
|
+
tags:
|
|
1883
|
+
- Node Transfers
|
|
1884
|
+
summary: Update transfer
|
|
1885
|
+
description: Updates transfer properties (e.g., pause, resume)
|
|
1886
|
+
operationId: updateNodeTransfer
|
|
1887
|
+
parameters:
|
|
1888
|
+
- $ref: "#/components/parameters/TransferId"
|
|
1889
|
+
requestBody:
|
|
1890
|
+
required: true
|
|
1891
|
+
content:
|
|
1892
|
+
application/json:
|
|
1893
|
+
schema:
|
|
1894
|
+
type: object
|
|
1895
|
+
properties:
|
|
1896
|
+
action:
|
|
1897
|
+
type: string
|
|
1898
|
+
enum: [pause, resume, cancel]
|
|
1899
|
+
responses:
|
|
1900
|
+
"200":
|
|
1901
|
+
description: Transfer updated
|
|
1902
|
+
content:
|
|
1903
|
+
application/json:
|
|
1904
|
+
schema:
|
|
1905
|
+
$ref: "#/components/schemas/Transfer"
|
|
1906
|
+
"400":
|
|
1907
|
+
$ref: "#/components/responses/BadRequest"
|
|
1908
|
+
"401":
|
|
1909
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1910
|
+
"404":
|
|
1911
|
+
$ref: "#/components/responses/NotFound"
|
|
1912
|
+
delete:
|
|
1913
|
+
tags:
|
|
1914
|
+
- Node Transfers
|
|
1915
|
+
summary: Delete/cancel transfer
|
|
1916
|
+
description: Cancels and removes a transfer
|
|
1917
|
+
operationId: deleteNodeTransfer
|
|
1918
|
+
parameters:
|
|
1919
|
+
- $ref: "#/components/parameters/TransferId"
|
|
1920
|
+
responses:
|
|
1921
|
+
"204":
|
|
1922
|
+
description: Transfer deleted
|
|
1923
|
+
"401":
|
|
1924
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1925
|
+
"404":
|
|
1926
|
+
$ref: "#/components/responses/NotFound"
|
|
1927
|
+
/node_api/{share}/watchds/{daemon}/subscriptions:
|
|
1928
|
+
post:
|
|
1929
|
+
tags:
|
|
1930
|
+
- Watch Folder
|
|
1931
|
+
summary: Create watchd subscription
|
|
1932
|
+
description: Creates a new watchd subscription for monitoring file changes
|
|
1933
|
+
operationId: createWatchdSubscription
|
|
1934
|
+
parameters:
|
|
1935
|
+
- name: share
|
|
1936
|
+
in: path
|
|
1937
|
+
required: true
|
|
1938
|
+
schema:
|
|
1939
|
+
type: string
|
|
1940
|
+
description: Share identifier
|
|
1941
|
+
- name: daemon
|
|
1942
|
+
in: path
|
|
1943
|
+
required: true
|
|
1944
|
+
schema:
|
|
1945
|
+
type: string
|
|
1946
|
+
description: Watchd daemon identifier
|
|
1947
|
+
requestBody:
|
|
1948
|
+
required: true
|
|
1949
|
+
content:
|
|
1950
|
+
application/json:
|
|
1951
|
+
schema:
|
|
1952
|
+
$ref: "#/components/schemas/WatchdSubscription"
|
|
1953
|
+
responses:
|
|
1954
|
+
"201":
|
|
1955
|
+
description: Subscription created
|
|
1956
|
+
content:
|
|
1957
|
+
application/json:
|
|
1958
|
+
schema:
|
|
1959
|
+
$ref: "#/components/schemas/WatchdSubscription"
|
|
1960
|
+
"400":
|
|
1961
|
+
$ref: "#/components/responses/BadRequest"
|
|
1962
|
+
"401":
|
|
1963
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1964
|
+
/node_api/{share}/watchds/{daemon}/subscriptions/{subscription}:
|
|
1965
|
+
put:
|
|
1966
|
+
tags:
|
|
1967
|
+
- Watch Folder
|
|
1968
|
+
summary: Update watchd subscription
|
|
1969
|
+
description: Updates an existing watchd subscription
|
|
1970
|
+
operationId: updateWatchdSubscription
|
|
1971
|
+
parameters:
|
|
1972
|
+
- name: share
|
|
1973
|
+
in: path
|
|
1974
|
+
required: true
|
|
1975
|
+
schema:
|
|
1976
|
+
type: string
|
|
1977
|
+
description: Share identifier
|
|
1978
|
+
- name: daemon
|
|
1979
|
+
in: path
|
|
1980
|
+
required: true
|
|
1981
|
+
schema:
|
|
1982
|
+
type: string
|
|
1983
|
+
description: Watchd daemon identifier
|
|
1984
|
+
- name: subscription
|
|
1985
|
+
in: path
|
|
1986
|
+
required: true
|
|
1987
|
+
schema:
|
|
1988
|
+
type: string
|
|
1989
|
+
description: Subscription identifier
|
|
1990
|
+
requestBody:
|
|
1991
|
+
required: true
|
|
1992
|
+
content:
|
|
1993
|
+
application/json:
|
|
1994
|
+
schema:
|
|
1995
|
+
$ref: "#/components/schemas/WatchdSubscription"
|
|
1996
|
+
responses:
|
|
1997
|
+
"200":
|
|
1998
|
+
description: Subscription updated
|
|
1999
|
+
content:
|
|
2000
|
+
application/json:
|
|
2001
|
+
schema:
|
|
2002
|
+
$ref: "#/components/schemas/WatchdSubscription"
|
|
2003
|
+
"400":
|
|
2004
|
+
$ref: "#/components/responses/BadRequest"
|
|
2005
|
+
"401":
|
|
2006
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2007
|
+
"404":
|
|
2008
|
+
$ref: "#/components/responses/NotFound"
|
|
2009
|
+
/node_api/{share}/watchds/{daemon}/subscriptions/{subscription}/snapshots:
|
|
2010
|
+
post:
|
|
2011
|
+
tags:
|
|
2012
|
+
- Watch Folder
|
|
2013
|
+
summary: Create watchd snapshot
|
|
2014
|
+
description: Creates a snapshot for a watchd subscription
|
|
2015
|
+
operationId: createWatchdSnapshot
|
|
2016
|
+
parameters:
|
|
2017
|
+
- name: share
|
|
2018
|
+
in: path
|
|
2019
|
+
required: true
|
|
2020
|
+
schema:
|
|
2021
|
+
type: string
|
|
2022
|
+
description: Share identifier
|
|
2023
|
+
- name: daemon
|
|
2024
|
+
in: path
|
|
2025
|
+
required: true
|
|
2026
|
+
schema:
|
|
2027
|
+
type: string
|
|
2028
|
+
description: Watchd daemon identifier
|
|
2029
|
+
- name: subscription
|
|
2030
|
+
in: path
|
|
2031
|
+
required: true
|
|
2032
|
+
schema:
|
|
2033
|
+
type: string
|
|
2034
|
+
description: Subscription identifier
|
|
2035
|
+
requestBody:
|
|
2036
|
+
content:
|
|
2037
|
+
application/json:
|
|
2038
|
+
schema:
|
|
2039
|
+
type: object
|
|
2040
|
+
responses:
|
|
2041
|
+
"201":
|
|
2042
|
+
description: Snapshot created
|
|
2043
|
+
content:
|
|
2044
|
+
application/json:
|
|
2045
|
+
schema:
|
|
2046
|
+
type: object
|
|
2047
|
+
"400":
|
|
2048
|
+
$ref: "#/components/responses/BadRequest"
|
|
2049
|
+
"401":
|
|
2050
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2051
|
+
/node_api/{share}/watchds/{daemon}/subscriptions/{subscription}/results:
|
|
2052
|
+
post:
|
|
2053
|
+
tags:
|
|
2054
|
+
- Watch Folder
|
|
2055
|
+
summary: Create watchd result
|
|
2056
|
+
description: Creates a result entry for a watchd subscription
|
|
2057
|
+
operationId: createWatchdResult
|
|
2058
|
+
parameters:
|
|
2059
|
+
- name: share
|
|
2060
|
+
in: path
|
|
2061
|
+
required: true
|
|
2062
|
+
schema:
|
|
2063
|
+
type: string
|
|
2064
|
+
description: Share identifier
|
|
2065
|
+
- name: daemon
|
|
2066
|
+
in: path
|
|
2067
|
+
required: true
|
|
2068
|
+
schema:
|
|
2069
|
+
type: string
|
|
2070
|
+
description: Watchd daemon identifier
|
|
2071
|
+
- name: subscription
|
|
2072
|
+
in: path
|
|
2073
|
+
required: true
|
|
2074
|
+
schema:
|
|
2075
|
+
type: string
|
|
2076
|
+
description: Subscription identifier
|
|
2077
|
+
requestBody:
|
|
2078
|
+
required: true
|
|
2079
|
+
content:
|
|
2080
|
+
application/json:
|
|
2081
|
+
schema:
|
|
2082
|
+
type: object
|
|
2083
|
+
responses:
|
|
2084
|
+
"201":
|
|
2085
|
+
description: Result created
|
|
2086
|
+
content:
|
|
2087
|
+
application/json:
|
|
2088
|
+
schema:
|
|
2089
|
+
type: object
|
|
2090
|
+
"400":
|
|
2091
|
+
$ref: "#/components/responses/BadRequest"
|
|
2092
|
+
"401":
|
|
2093
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2094
|
+
/node_api/{share}/watchds/{daemon}/subscriptions/{subscription}/results/{result}:
|
|
2095
|
+
get:
|
|
2096
|
+
tags:
|
|
2097
|
+
- Watch Folder
|
|
2098
|
+
summary: Get watchd result
|
|
2099
|
+
description: Retrieves a specific watchd result
|
|
2100
|
+
operationId: getWatchdResult
|
|
2101
|
+
parameters:
|
|
2102
|
+
- name: share
|
|
2103
|
+
in: path
|
|
2104
|
+
required: true
|
|
2105
|
+
schema:
|
|
2106
|
+
type: string
|
|
2107
|
+
description: Share identifier
|
|
2108
|
+
- name: daemon
|
|
2109
|
+
in: path
|
|
2110
|
+
required: true
|
|
2111
|
+
schema:
|
|
2112
|
+
type: string
|
|
2113
|
+
description: Watchd daemon identifier
|
|
2114
|
+
- name: subscription
|
|
2115
|
+
in: path
|
|
2116
|
+
required: true
|
|
2117
|
+
schema:
|
|
2118
|
+
type: string
|
|
2119
|
+
description: Subscription identifier
|
|
2120
|
+
- name: result
|
|
2121
|
+
in: path
|
|
2122
|
+
required: true
|
|
2123
|
+
schema:
|
|
2124
|
+
type: string
|
|
2125
|
+
description: Result identifier
|
|
2126
|
+
responses:
|
|
2127
|
+
"200":
|
|
2128
|
+
description: Result details
|
|
2129
|
+
content:
|
|
2130
|
+
application/json:
|
|
2131
|
+
schema:
|
|
2132
|
+
type: object
|
|
2133
|
+
"401":
|
|
2134
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2135
|
+
"404":
|
|
2136
|
+
$ref: "#/components/responses/NotFound"
|
|
2137
|
+
delete:
|
|
2138
|
+
tags:
|
|
2139
|
+
- Watch Folder
|
|
2140
|
+
summary: Delete watchd result
|
|
2141
|
+
description: Deletes a watchd result
|
|
2142
|
+
operationId: deleteWatchdResult
|
|
2143
|
+
parameters:
|
|
2144
|
+
- name: share
|
|
2145
|
+
in: path
|
|
2146
|
+
required: true
|
|
2147
|
+
schema:
|
|
2148
|
+
type: string
|
|
2149
|
+
description: Share identifier
|
|
2150
|
+
- name: daemon
|
|
2151
|
+
in: path
|
|
2152
|
+
required: true
|
|
2153
|
+
schema:
|
|
2154
|
+
type: string
|
|
2155
|
+
description: Watchd daemon identifier
|
|
2156
|
+
- name: subscription
|
|
2157
|
+
in: path
|
|
2158
|
+
required: true
|
|
2159
|
+
schema:
|
|
2160
|
+
type: string
|
|
2161
|
+
description: Subscription identifier
|
|
2162
|
+
- name: result
|
|
2163
|
+
in: path
|
|
2164
|
+
required: true
|
|
2165
|
+
schema:
|
|
2166
|
+
type: string
|
|
2167
|
+
description: Result identifier
|
|
2168
|
+
responses:
|
|
2169
|
+
"204":
|
|
2170
|
+
description: Result deleted
|
|
2171
|
+
"401":
|
|
2172
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2173
|
+
"404":
|
|
2174
|
+
$ref: "#/components/responses/NotFound"
|
|
2175
|
+
/node_api/space:
|
|
2176
|
+
post:
|
|
2177
|
+
tags:
|
|
2178
|
+
- Files
|
|
2179
|
+
summary: Get space information
|
|
2180
|
+
description:
|
|
2181
|
+
"Get the total and available space for the file system, drives\
|
|
2182
|
+
\ or partitions (logical or physical) that host one or more queried paths."
|
|
2183
|
+
operationId: getSpaceInfo
|
|
2184
|
+
requestBody:
|
|
2185
|
+
description: The request body with an array of paths.
|
|
2186
|
+
content:
|
|
2187
|
+
application/json:
|
|
2188
|
+
schema:
|
|
2189
|
+
$ref: "#/components/schemas/space-post-request"
|
|
2190
|
+
required: true
|
|
2191
|
+
responses:
|
|
2192
|
+
"200":
|
|
2193
|
+
description: OK
|
|
2194
|
+
content:
|
|
2195
|
+
application/json:
|
|
2196
|
+
schema:
|
|
2197
|
+
$ref: "#/components/schemas/space-post-200"
|
|
2198
|
+
"400":
|
|
2199
|
+
description: Bad Request. Request contains a formatting or syntax error.
|
|
2200
|
+
content:
|
|
2201
|
+
application/json:
|
|
2202
|
+
schema:
|
|
2203
|
+
$ref: "#/components/schemas/error"
|
|
2204
|
+
"500":
|
|
2205
|
+
description: Internal Server Error. The server configuration is invalid.
|
|
2206
|
+
content:
|
|
2207
|
+
application/json:
|
|
2208
|
+
schema:
|
|
2209
|
+
$ref: "#/components/schemas/error"
|
|
2210
|
+
/node_api/files/browse:
|
|
2211
|
+
post:
|
|
2212
|
+
tags:
|
|
2213
|
+
- Files
|
|
2214
|
+
summary: Browse the specified path
|
|
2215
|
+
description: Retrieve metadata about the contents of the specified path.
|
|
2216
|
+
operationId: browseFiles
|
|
2217
|
+
requestBody:
|
|
2218
|
+
content:
|
|
2219
|
+
application/json:
|
|
2220
|
+
schema:
|
|
2221
|
+
$ref: "#/components/schemas/filesBrowseRequest"
|
|
2222
|
+
required: true
|
|
2223
|
+
responses:
|
|
2224
|
+
"200":
|
|
2225
|
+
description: OK - Successful response
|
|
2226
|
+
content:
|
|
2227
|
+
application/json:
|
|
2228
|
+
schema:
|
|
2229
|
+
$ref: "#/components/schemas/filesBrowseResponse"
|
|
2230
|
+
"400":
|
|
2231
|
+
description: Bad Request. Request contains a formatting or syntax error.
|
|
2232
|
+
content:
|
|
2233
|
+
application/json:
|
|
2234
|
+
schema:
|
|
2235
|
+
$ref: "#/components/schemas/error"
|
|
2236
|
+
"500":
|
|
2237
|
+
description: Internal Server Error. The server configuration is invalid.
|
|
2238
|
+
content:
|
|
2239
|
+
application/json:
|
|
2240
|
+
schema:
|
|
2241
|
+
$ref: "#/components/schemas/error"
|
|
2242
|
+
/node_api/files/info:
|
|
2243
|
+
post:
|
|
2244
|
+
tags:
|
|
2245
|
+
- Files
|
|
2246
|
+
summary: Get metadata for specified paths
|
|
2247
|
+
description:
|
|
2248
|
+
"Get metadata for the files and directories that are specified in an\
|
|
2249
|
+
\ array of paths. To get file information by\
|
|
2250
|
+
\ using bearer token authentication, use the /files/{id} endpoint."
|
|
2251
|
+
operationId: getFileInfo
|
|
2252
|
+
requestBody:
|
|
2253
|
+
description: An array of pathnames for which to return file metadata.
|
|
2254
|
+
content:
|
|
2255
|
+
application/json:
|
|
2256
|
+
schema:
|
|
2257
|
+
$ref: "#/components/schemas/files-info-post-request"
|
|
2258
|
+
required: true
|
|
2259
|
+
responses:
|
|
2260
|
+
"200":
|
|
2261
|
+
description: OK
|
|
2262
|
+
content:
|
|
2263
|
+
application/json:
|
|
2264
|
+
schema:
|
|
2265
|
+
$ref: "#/components/schemas/files-info-post-200"
|
|
2266
|
+
"400":
|
|
2267
|
+
description: Bad Request. Request contains a formatting or syntax error.
|
|
2268
|
+
content:
|
|
2269
|
+
application/json:
|
|
2270
|
+
schema:
|
|
2271
|
+
$ref: "#/components/schemas/error"
|
|
2272
|
+
"404":
|
|
2273
|
+
description: Not Found. Invalid pathname.
|
|
2274
|
+
content:
|
|
2275
|
+
application/json:
|
|
2276
|
+
schema:
|
|
2277
|
+
$ref: "#/components/schemas/error"
|
|
2278
|
+
"500":
|
|
2279
|
+
description: Internal Server Error. The server configuration is invalid.
|
|
2280
|
+
content:
|
|
2281
|
+
application/json:
|
|
2282
|
+
schema:
|
|
2283
|
+
$ref: "#/components/schemas/error"
|
|
2284
|
+
/node_api/files/create:
|
|
2285
|
+
post:
|
|
2286
|
+
tags:
|
|
2287
|
+
- Files
|
|
2288
|
+
summary: Create files and directories
|
|
2289
|
+
description: All requests to this endpoint use the same headers.
|
|
2290
|
+
operationId: createFile
|
|
2291
|
+
requestBody:
|
|
2292
|
+
description:
|
|
2293
|
+
"An array of pathnames to create and the type of object (directory,\
|
|
2294
|
+
\ file, or symbolic link)."
|
|
2295
|
+
content:
|
|
2296
|
+
application/json:
|
|
2297
|
+
schema:
|
|
2298
|
+
$ref: "#/components/schemas/files-create-post-request"
|
|
2299
|
+
required: true
|
|
2300
|
+
responses:
|
|
2301
|
+
"200":
|
|
2302
|
+
description: OK
|
|
2303
|
+
content:
|
|
2304
|
+
application/json:
|
|
2305
|
+
schema:
|
|
2306
|
+
$ref: "#/components/schemas/files-create-post-200"
|
|
2307
|
+
"400":
|
|
2308
|
+
description: Bad Request. Request contains a formatting or syntax error.
|
|
2309
|
+
content:
|
|
2310
|
+
application/json:
|
|
2311
|
+
schema:
|
|
2312
|
+
$ref: "#/components/schemas/error"
|
|
2313
|
+
"404":
|
|
2314
|
+
description: Not Found. Invalid pathname.
|
|
2315
|
+
content:
|
|
2316
|
+
application/json:
|
|
2317
|
+
schema:
|
|
2318
|
+
$ref: "#/components/schemas/error"
|
|
2319
|
+
"409":
|
|
2320
|
+
description: Conflict. Path already exists.
|
|
2321
|
+
content:
|
|
2322
|
+
application/json:
|
|
2323
|
+
schema:
|
|
2324
|
+
$ref: "#/components/schemas/error"
|
|
2325
|
+
"500":
|
|
2326
|
+
description: Internal Server Error. The server configuration is invalid.
|
|
2327
|
+
content:
|
|
2328
|
+
application/json:
|
|
2329
|
+
schema:
|
|
2330
|
+
$ref: "#/components/schemas/error"
|
|
2331
|
+
/node_api/files/rename:
|
|
2332
|
+
post:
|
|
2333
|
+
tags:
|
|
2334
|
+
- Files
|
|
2335
|
+
summary: Rename files and directories
|
|
2336
|
+
description: Rename files and directories
|
|
2337
|
+
operationId: renameFile
|
|
2338
|
+
requestBody:
|
|
2339
|
+
description: An array of pathnames, with their current and new names.
|
|
2340
|
+
content:
|
|
2341
|
+
application/json:
|
|
2342
|
+
schema:
|
|
2343
|
+
$ref: "#/components/schemas/files-rename-post-request"
|
|
2344
|
+
required: true
|
|
2345
|
+
responses:
|
|
2346
|
+
"200":
|
|
2347
|
+
description: OK. If an error occurred performing the rename operation for a specific path, the error is returned as part of the response element for that path.
|
|
2348
|
+
content:
|
|
2349
|
+
application/json:
|
|
2350
|
+
schema:
|
|
2351
|
+
$ref: "#/components/schemas/files-rename-post-200"
|
|
2352
|
+
"400":
|
|
2353
|
+
description: Bad Request. Request contains a formatting or syntax error.
|
|
2354
|
+
content:
|
|
2355
|
+
application/json:
|
|
2356
|
+
schema:
|
|
2357
|
+
$ref: "#/components/schemas/error"
|
|
2358
|
+
"500":
|
|
2359
|
+
description: Internal Server Error. The server configuration is invalid.
|
|
2360
|
+
content:
|
|
2361
|
+
application/json:
|
|
2362
|
+
schema:
|
|
2363
|
+
$ref: "#/components/schemas/error"
|
|
2364
|
+
/node_api/files/delete:
|
|
2365
|
+
post:
|
|
2366
|
+
tags:
|
|
2367
|
+
- Files
|
|
2368
|
+
summary: Delete files and directories
|
|
2369
|
+
description: Delete file and directories
|
|
2370
|
+
operationId: deleteFiles
|
|
2371
|
+
requestBody:
|
|
2372
|
+
description:
|
|
2373
|
+
"An array of pathnames to delete. For directories, specify the\
|
|
2374
|
+
\ behavior for deleting non-empty directories."
|
|
2375
|
+
content:
|
|
2376
|
+
application/json:
|
|
2377
|
+
schema:
|
|
2378
|
+
$ref: "#/components/schemas/files-delete-post-request"
|
|
2379
|
+
required: true
|
|
2380
|
+
responses:
|
|
2381
|
+
"200":
|
|
2382
|
+
description:
|
|
2383
|
+
"OK. Pathnames from the request are returned. If a pathname\
|
|
2384
|
+
\ could not be deleted, it is followed by an error message."
|
|
2385
|
+
content:
|
|
2386
|
+
application/json:
|
|
2387
|
+
schema:
|
|
2388
|
+
$ref: "#/components/schemas/files-delete-post-200"
|
|
2389
|
+
"400":
|
|
2390
|
+
description: Bad Request. Request contains a formatting or syntax error.
|
|
2391
|
+
content:
|
|
2392
|
+
application/json:
|
|
2393
|
+
schema:
|
|
2394
|
+
$ref: "#/components/schemas/error"
|
|
2395
|
+
"403":
|
|
2396
|
+
description:
|
|
2397
|
+
Forbidden. The directory cannot be deleted because it contains
|
|
2398
|
+
files that are in use.
|
|
2399
|
+
content:
|
|
2400
|
+
application/json:
|
|
2401
|
+
schema:
|
|
2402
|
+
$ref: "#/components/schemas/error"
|
|
2403
|
+
"404":
|
|
2404
|
+
description: Not Found. The file could not be found.
|
|
2405
|
+
content:
|
|
2406
|
+
application/json:
|
|
2407
|
+
schema:
|
|
2408
|
+
$ref: "#/components/schemas/error"
|
|
2409
|
+
"409":
|
|
2410
|
+
description:
|
|
2411
|
+
Directory Not Empty. The directory is not empty and "recursive_delete"
|
|
2412
|
+
is set to "false".
|
|
2413
|
+
content:
|
|
2414
|
+
application/json:
|
|
2415
|
+
schema:
|
|
2416
|
+
$ref: "#/components/schemas/error"
|
|
2417
|
+
"500":
|
|
2418
|
+
description: Internal Server Error. The server configuration is invalid.
|
|
2419
|
+
content:
|
|
2420
|
+
application/json:
|
|
2421
|
+
schema:
|
|
2422
|
+
$ref: "#/components/schemas/error"
|
|
2423
|
+
/node_api/files/upload_setup:
|
|
2424
|
+
post:
|
|
2425
|
+
tags:
|
|
2426
|
+
- Files
|
|
2427
|
+
summary: Create an upload transfer specification with token
|
|
2428
|
+
description:
|
|
2429
|
+
"FASP transfers can use transfer tokens to authorize the transfer.\
|
|
2430
|
+
Transfer tokens are the most restrictive of the tokens and require careful\
|
|
2431
|
+
configuration. Token expiration is configurable on HSTS/HSTE. \
|
|
2432
|
+
Note: Transfer specifications that are set in aspera.conf overwrite the \
|
|
2433
|
+
corresponding values in the request body when the token is created."
|
|
2434
|
+
operationId: setupUpload
|
|
2435
|
+
requestBody:
|
|
2436
|
+
description: The upload token configuration.
|
|
2437
|
+
content:
|
|
2438
|
+
application/json:
|
|
2439
|
+
schema:
|
|
2440
|
+
$ref: "#/components/schemas/files-upload_setup-post-request"
|
|
2441
|
+
required: true
|
|
2442
|
+
responses:
|
|
2443
|
+
"200":
|
|
2444
|
+
description: OK
|
|
2445
|
+
content:
|
|
2446
|
+
application/json:
|
|
2447
|
+
schema:
|
|
2448
|
+
$ref: "#/components/schemas/files-upload_setup-post-200"
|
|
2449
|
+
"400":
|
|
2450
|
+
description: Bad Request. Request contains a formatting or syntax error.
|
|
2451
|
+
content:
|
|
2452
|
+
application/json:
|
|
2453
|
+
schema:
|
|
2454
|
+
$ref: "#/components/schemas/error"
|
|
2455
|
+
"404":
|
|
2456
|
+
description: Not Found. Invalid pathnames.
|
|
2457
|
+
content:
|
|
2458
|
+
application/json:
|
|
2459
|
+
schema:
|
|
2460
|
+
$ref: "#/components/schemas/error"
|
|
2461
|
+
"500":
|
|
2462
|
+
description: Internal Server Error. The server configuration is invalid.
|
|
2463
|
+
content:
|
|
2464
|
+
application/json:
|
|
2465
|
+
schema:
|
|
2466
|
+
$ref: "#/components/schemas/error"
|
|
2467
|
+
/node_api/files/sync_setup:
|
|
2468
|
+
post:
|
|
2469
|
+
tags:
|
|
2470
|
+
- Files
|
|
2471
|
+
summary: Create a sync setup
|
|
2472
|
+
description: Returns a transfer specification for sync operations
|
|
2473
|
+
operationId: setupSync
|
|
2474
|
+
requestBody:
|
|
2475
|
+
required: true
|
|
2476
|
+
content:
|
|
2477
|
+
application/json:
|
|
2478
|
+
schema:
|
|
2479
|
+
type: object
|
|
2480
|
+
responses:
|
|
2481
|
+
"200":
|
|
2482
|
+
description: Sync setup response
|
|
2483
|
+
content:
|
|
2484
|
+
application/json:
|
|
2485
|
+
schema:
|
|
2486
|
+
type: object
|
|
2487
|
+
"400":
|
|
2488
|
+
description: Bad Request
|
|
2489
|
+
"401":
|
|
2490
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2491
|
+
/node_api/files/download_setup:
|
|
2492
|
+
post:
|
|
2493
|
+
tags:
|
|
2494
|
+
- Files
|
|
2495
|
+
summary: Create a download transfer specification with token
|
|
2496
|
+
description:
|
|
2497
|
+
FASP transfers can use transfer tokens to authorize the transfer.
|
|
2498
|
+
Transfer tokens are the most restrictive of the tokens and require careful
|
|
2499
|
+
configuration. Token expiration is configurable on HSTS/HSTE.
|
|
2500
|
+
operationId: setupDownload
|
|
2501
|
+
requestBody:
|
|
2502
|
+
description: The download token configuration.
|
|
2503
|
+
content:
|
|
2504
|
+
application/json:
|
|
2505
|
+
schema:
|
|
2506
|
+
$ref: "#/components/schemas/files-download_setup-post-request"
|
|
2507
|
+
required: true
|
|
2508
|
+
responses:
|
|
2509
|
+
"200":
|
|
2510
|
+
description: OK
|
|
2511
|
+
content:
|
|
2512
|
+
application/json:
|
|
2513
|
+
schema:
|
|
2514
|
+
$ref: "#/components/schemas/files-download_setup-post-200"
|
|
2515
|
+
"400":
|
|
2516
|
+
description: Bad Request. Request contains a formatting or syntax error.
|
|
2517
|
+
content:
|
|
2518
|
+
application/json:
|
|
2519
|
+
schema:
|
|
2520
|
+
$ref: "#/components/schemas/error"
|
|
2521
|
+
"404":
|
|
2522
|
+
description: Not Found. Invalid pathnames.
|
|
2523
|
+
content:
|
|
2524
|
+
application/json:
|
|
2525
|
+
schema:
|
|
2526
|
+
$ref: "#/components/schemas/error"
|
|
2527
|
+
"500":
|
|
2528
|
+
description: Internal Server Error. The server configuration is invalid.
|
|
2529
|
+
content:
|
|
2530
|
+
application/json:
|
|
2531
|
+
schema:
|
|
2532
|
+
$ref: "#/components/schemas/error"
|
|
2533
|
+
components:
|
|
2534
|
+
securitySchemes:
|
|
2535
|
+
basicAuth:
|
|
2536
|
+
type: http
|
|
2537
|
+
scheme: basic
|
|
2538
|
+
description: HTTP Basic Authentication with username and password
|
|
2539
|
+
parameters:
|
|
2540
|
+
IntegerIdInPath:
|
|
2541
|
+
name: id
|
|
2542
|
+
in: path
|
|
2543
|
+
required: true
|
|
2544
|
+
schema:
|
|
2545
|
+
type: integer
|
|
2546
|
+
description: Entity ID
|
|
2547
|
+
TransferId:
|
|
2548
|
+
name: id
|
|
2549
|
+
in: path
|
|
2550
|
+
required: true
|
|
2551
|
+
schema:
|
|
2552
|
+
type: string
|
|
2553
|
+
description: Transfer ID
|
|
2554
|
+
schemas:
|
|
2555
|
+
# User Schemas
|
|
2556
|
+
AuthorizableUser:
|
|
2557
|
+
type: object
|
|
2558
|
+
required:
|
|
2559
|
+
- id
|
|
2560
|
+
- username
|
|
2561
|
+
- email
|
|
2562
|
+
- directory_id
|
|
2563
|
+
- disabled
|
|
2564
|
+
- locked
|
|
2565
|
+
- home_share_disabled
|
|
2566
|
+
- items_per_page
|
|
2567
|
+
- notify_on_my_share_authorization
|
|
2568
|
+
- notify_on_self_registration_request
|
|
2569
|
+
- notify_on_share_authorization
|
|
2570
|
+
- notify_on_transfer_complete
|
|
2571
|
+
- suppress_connect_install_dialog
|
|
2572
|
+
- created_at
|
|
2573
|
+
- updated_at
|
|
2574
|
+
- urn
|
|
2575
|
+
- directory_user
|
|
2576
|
+
properties:
|
|
2577
|
+
account_expires_on:
|
|
2578
|
+
type: string
|
|
2579
|
+
format: date-time
|
|
2580
|
+
nullable: true
|
|
2581
|
+
comments:
|
|
2582
|
+
type: string
|
|
2583
|
+
nullable: true
|
|
2584
|
+
created_at:
|
|
2585
|
+
type: string
|
|
2586
|
+
format: date-time
|
|
2587
|
+
example: 2016-06-14T18:12:46Z
|
|
2588
|
+
date_delimiter:
|
|
2589
|
+
type: string
|
|
2590
|
+
nullable: true
|
|
2591
|
+
date_order:
|
|
2592
|
+
type: string
|
|
2593
|
+
nullable: true
|
|
2594
|
+
directory_id:
|
|
2595
|
+
type: integer
|
|
2596
|
+
format: int32
|
|
2597
|
+
example: 44
|
|
2598
|
+
disabled:
|
|
2599
|
+
type: boolean
|
|
2600
|
+
example: false
|
|
2601
|
+
email:
|
|
2602
|
+
type: string
|
|
2603
|
+
format: email
|
|
2604
|
+
example: demo@asperasoft.com
|
|
2605
|
+
first_name:
|
|
2606
|
+
type: string
|
|
2607
|
+
nullable: true
|
|
2608
|
+
home_share_disabled:
|
|
2609
|
+
type: boolean
|
|
2610
|
+
example: false
|
|
2611
|
+
home_share_id:
|
|
2612
|
+
type: integer
|
|
2613
|
+
format: int32
|
|
2614
|
+
nullable: true
|
|
2615
|
+
id:
|
|
2616
|
+
type: integer
|
|
2617
|
+
format: int32
|
|
2618
|
+
example: 130
|
|
2619
|
+
items_per_page:
|
|
2620
|
+
type: integer
|
|
2621
|
+
format: int32
|
|
2622
|
+
example: 50
|
|
2623
|
+
last_login_at:
|
|
2624
|
+
type: string
|
|
2625
|
+
format: date-time
|
|
2626
|
+
nullable: true
|
|
2627
|
+
last_logout_at:
|
|
2628
|
+
type: string
|
|
2629
|
+
format: date-time
|
|
2630
|
+
nullable: true
|
|
2631
|
+
last_name:
|
|
2632
|
+
type: string
|
|
2633
|
+
nullable: true
|
|
2634
|
+
last_request_at:
|
|
2635
|
+
type: string
|
|
2636
|
+
format: date-time
|
|
2637
|
+
nullable: true
|
|
2638
|
+
locked:
|
|
2639
|
+
type: boolean
|
|
2640
|
+
example: false
|
|
2641
|
+
notify_on_my_share_authorization:
|
|
2642
|
+
type: boolean
|
|
2643
|
+
notify_on_self_registration_request:
|
|
2644
|
+
type: boolean
|
|
2645
|
+
notify_on_share_authorization:
|
|
2646
|
+
type: boolean
|
|
2647
|
+
notify_on_transfer_complete:
|
|
2648
|
+
type: boolean
|
|
2649
|
+
number_delimiter:
|
|
2650
|
+
type: string
|
|
2651
|
+
nullable: true
|
|
2652
|
+
number_separator:
|
|
2653
|
+
type: string
|
|
2654
|
+
nullable: true
|
|
2655
|
+
status:
|
|
2656
|
+
type: string
|
|
2657
|
+
nullable: true
|
|
2658
|
+
status_at:
|
|
2659
|
+
type: string
|
|
2660
|
+
format: date-time
|
|
2661
|
+
nullable: true
|
|
2662
|
+
status_message:
|
|
2663
|
+
type: string
|
|
2664
|
+
nullable: true
|
|
2665
|
+
suppress_connect_install_dialog:
|
|
2666
|
+
type: boolean
|
|
2667
|
+
synced_at:
|
|
2668
|
+
type: string
|
|
2669
|
+
format: date-time
|
|
2670
|
+
nullable: true
|
|
2671
|
+
time_format:
|
|
2672
|
+
type: string
|
|
2673
|
+
nullable: true
|
|
2674
|
+
time_zone:
|
|
2675
|
+
type: string
|
|
2676
|
+
nullable: true
|
|
2677
|
+
unlocked_at:
|
|
2678
|
+
type: string
|
|
2679
|
+
format: date-time
|
|
2680
|
+
nullable: true
|
|
2681
|
+
updated_at:
|
|
2682
|
+
type: string
|
|
2683
|
+
format: date-time
|
|
2684
|
+
example: 2016-06-14T18:12:46Z
|
|
2685
|
+
urn:
|
|
2686
|
+
type: string
|
|
2687
|
+
example: urn:user:ZGF0YWJhc2UsbG9jYWwsODUK
|
|
2688
|
+
username:
|
|
2689
|
+
type: string
|
|
2690
|
+
example: apiuser
|
|
2691
|
+
directory_user:
|
|
2692
|
+
oneOf:
|
|
2693
|
+
- type: object
|
|
2694
|
+
properties:
|
|
2695
|
+
type:
|
|
2696
|
+
type: string
|
|
2697
|
+
enum: [database]
|
|
2698
|
+
local_user_id:
|
|
2699
|
+
type: integer
|
|
2700
|
+
required:
|
|
2701
|
+
- local_user_id
|
|
2702
|
+
- type
|
|
2703
|
+
- type: object
|
|
2704
|
+
properties:
|
|
2705
|
+
type:
|
|
2706
|
+
type: string
|
|
2707
|
+
enum: [saml]
|
|
2708
|
+
required:
|
|
2709
|
+
- type
|
|
2710
|
+
- type: object
|
|
2711
|
+
properties:
|
|
2712
|
+
type:
|
|
2713
|
+
type: string
|
|
2714
|
+
enum: [active_directory]
|
|
2715
|
+
required:
|
|
2716
|
+
- type
|
|
2717
|
+
additionalProperties: false
|
|
2718
|
+
LocalUser:
|
|
2719
|
+
type: object
|
|
2720
|
+
required:
|
|
2721
|
+
- id
|
|
2722
|
+
- username
|
|
2723
|
+
- email
|
|
2724
|
+
- created_at
|
|
2725
|
+
- updated_at
|
|
2726
|
+
- password_status
|
|
2727
|
+
properties:
|
|
2728
|
+
created_at:
|
|
2729
|
+
type: string
|
|
2730
|
+
format: date-time
|
|
2731
|
+
example: 2016-06-14T18:12:46Z
|
|
2732
|
+
email:
|
|
2733
|
+
type: string
|
|
2734
|
+
format: email
|
|
2735
|
+
example: demo@asperasoft.com
|
|
2736
|
+
first_name:
|
|
2737
|
+
type: string
|
|
2738
|
+
nullable: true
|
|
2739
|
+
id:
|
|
2740
|
+
type: integer
|
|
2741
|
+
format: int32
|
|
2742
|
+
example: 130
|
|
2743
|
+
last_name:
|
|
2744
|
+
type: string
|
|
2745
|
+
nullable: true
|
|
2746
|
+
login_token:
|
|
2747
|
+
type: string
|
|
2748
|
+
nullable: true
|
|
2749
|
+
login_token_expires_at:
|
|
2750
|
+
type: string
|
|
2751
|
+
format: date-time
|
|
2752
|
+
nullable: true
|
|
2753
|
+
password_changed_on:
|
|
2754
|
+
type: string
|
|
2755
|
+
format: date-time
|
|
2756
|
+
nullable: true
|
|
2757
|
+
password_status:
|
|
2758
|
+
type: string
|
|
2759
|
+
enum: [never set, expired, expiring_soon, reset_required]
|
|
2760
|
+
updated_at:
|
|
2761
|
+
type: string
|
|
2762
|
+
format: date-time
|
|
2763
|
+
example: 2016-06-14T18:12:46Z
|
|
2764
|
+
username:
|
|
2765
|
+
type: string
|
|
2766
|
+
example: apiuser
|
|
2767
|
+
user_id:
|
|
2768
|
+
type: integer
|
|
2769
|
+
format: int32
|
|
2770
|
+
example: 130
|
|
2771
|
+
additionalProperties: false
|
|
2772
|
+
LocalUserCreate:
|
|
2773
|
+
type: object
|
|
2774
|
+
required:
|
|
2775
|
+
- username
|
|
2776
|
+
- email
|
|
2777
|
+
properties:
|
|
2778
|
+
username:
|
|
2779
|
+
type: string
|
|
2780
|
+
minLength: 3
|
|
2781
|
+
maxLength: 50
|
|
2782
|
+
example: johndoe
|
|
2783
|
+
password:
|
|
2784
|
+
type: string
|
|
2785
|
+
format: password
|
|
2786
|
+
minLength: 8
|
|
2787
|
+
email:
|
|
2788
|
+
type: string
|
|
2789
|
+
format: email
|
|
2790
|
+
example: john.doe@example.com
|
|
2791
|
+
first_name:
|
|
2792
|
+
type: string
|
|
2793
|
+
example: John
|
|
2794
|
+
last_name:
|
|
2795
|
+
type: string
|
|
2796
|
+
example: Doe
|
|
2797
|
+
send_welcome_email:
|
|
2798
|
+
type: boolean
|
|
2799
|
+
default: false
|
|
2800
|
+
description: |
|
|
2801
|
+
`send_welcome_email` with `password` triggers 'Login information' email with 'Login' link
|
|
2802
|
+
while it alone triggers 'Login information' email with 'Change password' link.
|
|
2803
|
+
LocalUserUpdate:
|
|
2804
|
+
type: object
|
|
2805
|
+
properties:
|
|
2806
|
+
username:
|
|
2807
|
+
type: string
|
|
2808
|
+
minLength: 3
|
|
2809
|
+
maxLength: 50
|
|
2810
|
+
example: johndoe
|
|
2811
|
+
password:
|
|
2812
|
+
type: string
|
|
2813
|
+
format: password
|
|
2814
|
+
minLength: 8
|
|
2815
|
+
email:
|
|
2816
|
+
type: string
|
|
2817
|
+
format: email
|
|
2818
|
+
example: john.doe@example.com
|
|
2819
|
+
first_name:
|
|
2820
|
+
type: string
|
|
2821
|
+
example: John
|
|
2822
|
+
last_name:
|
|
2823
|
+
type: string
|
|
2824
|
+
example: Doe
|
|
2825
|
+
LDAPUserCreate:
|
|
2826
|
+
type: object
|
|
2827
|
+
required:
|
|
2828
|
+
- user
|
|
2829
|
+
properties:
|
|
2830
|
+
user:
|
|
2831
|
+
type: string
|
|
2832
|
+
example: johndoe
|
|
2833
|
+
SAMLUserImport:
|
|
2834
|
+
type: object
|
|
2835
|
+
required:
|
|
2836
|
+
- id
|
|
2837
|
+
- name_id
|
|
2838
|
+
properties:
|
|
2839
|
+
id:
|
|
2840
|
+
type: string
|
|
2841
|
+
example: johndoe
|
|
2842
|
+
name_id:
|
|
2843
|
+
type: string
|
|
2844
|
+
email:
|
|
2845
|
+
type: string
|
|
2846
|
+
format: email
|
|
2847
|
+
example: john.doe@example.com
|
|
2848
|
+
given_name:
|
|
2849
|
+
type: string
|
|
2850
|
+
example: John
|
|
2851
|
+
surname:
|
|
2852
|
+
type: string
|
|
2853
|
+
example: Doe
|
|
2854
|
+
# Group Schemas
|
|
2855
|
+
Group:
|
|
2856
|
+
type: object
|
|
2857
|
+
properties:
|
|
2858
|
+
id:
|
|
2859
|
+
type: integer
|
|
2860
|
+
example: 456
|
|
2861
|
+
name:
|
|
2862
|
+
type: string
|
|
2863
|
+
example: Engineering
|
|
2864
|
+
description:
|
|
2865
|
+
type: string
|
|
2866
|
+
example: Engineering department group
|
|
2867
|
+
member_count:
|
|
2868
|
+
type: integer
|
|
2869
|
+
description: Number of members in the group
|
|
2870
|
+
created_at:
|
|
2871
|
+
type: string
|
|
2872
|
+
format: date-time
|
|
2873
|
+
updated_at:
|
|
2874
|
+
type: string
|
|
2875
|
+
format: date-time
|
|
2876
|
+
GroupCreate:
|
|
2877
|
+
type: object
|
|
2878
|
+
required:
|
|
2879
|
+
- name
|
|
2880
|
+
properties:
|
|
2881
|
+
name:
|
|
2882
|
+
type: string
|
|
2883
|
+
minLength: 1
|
|
2884
|
+
maxLength: 100
|
|
2885
|
+
description:
|
|
2886
|
+
type: string
|
|
2887
|
+
GroupUpdate:
|
|
2888
|
+
type: object
|
|
2889
|
+
properties:
|
|
2890
|
+
name:
|
|
2891
|
+
type: string
|
|
2892
|
+
minLength: 1
|
|
2893
|
+
maxLength: 100
|
|
2894
|
+
description:
|
|
2895
|
+
type: string
|
|
2896
|
+
# Share Schemas
|
|
2897
|
+
Share:
|
|
2898
|
+
type: object
|
|
2899
|
+
properties:
|
|
2900
|
+
id:
|
|
2901
|
+
type: integer
|
|
2902
|
+
example: 789
|
|
2903
|
+
name:
|
|
2904
|
+
type: string
|
|
2905
|
+
example: Project Files
|
|
2906
|
+
description:
|
|
2907
|
+
type: string
|
|
2908
|
+
node_id:
|
|
2909
|
+
type: integer
|
|
2910
|
+
description: Associated node ID
|
|
2911
|
+
path:
|
|
2912
|
+
type: string
|
|
2913
|
+
description: Share root path
|
|
2914
|
+
example: /shares/project
|
|
2915
|
+
created_by:
|
|
2916
|
+
type: integer
|
|
2917
|
+
description: User ID of creator
|
|
2918
|
+
created_at:
|
|
2919
|
+
type: string
|
|
2920
|
+
format: date-time
|
|
2921
|
+
updated_at:
|
|
2922
|
+
type: string
|
|
2923
|
+
format: date-time
|
|
2924
|
+
ShareCreate:
|
|
2925
|
+
type: object
|
|
2926
|
+
required:
|
|
2927
|
+
- name
|
|
2928
|
+
- node_id
|
|
2929
|
+
properties:
|
|
2930
|
+
name:
|
|
2931
|
+
type: string
|
|
2932
|
+
minLength: 1
|
|
2933
|
+
description:
|
|
2934
|
+
type: string
|
|
2935
|
+
node_id:
|
|
2936
|
+
type: integer
|
|
2937
|
+
path:
|
|
2938
|
+
type: string
|
|
2939
|
+
ShareUpdate:
|
|
2940
|
+
type: object
|
|
2941
|
+
properties:
|
|
2942
|
+
name:
|
|
2943
|
+
type: string
|
|
2944
|
+
description:
|
|
2945
|
+
type: string
|
|
2946
|
+
path:
|
|
2947
|
+
type: string
|
|
2948
|
+
# Node Schemas
|
|
2949
|
+
Node:
|
|
2950
|
+
type: object
|
|
2951
|
+
required:
|
|
2952
|
+
- api_port
|
|
2953
|
+
- api_username
|
|
2954
|
+
- browse_count
|
|
2955
|
+
- bytes_unknown
|
|
2956
|
+
- created_at
|
|
2957
|
+
- host
|
|
2958
|
+
- id
|
|
2959
|
+
- name
|
|
2960
|
+
- open_timeout
|
|
2961
|
+
- ref_uuid
|
|
2962
|
+
- salt
|
|
2963
|
+
- ssl
|
|
2964
|
+
- sync_enabled
|
|
2965
|
+
- timeout
|
|
2966
|
+
- updated_at
|
|
2967
|
+
- verify_ssl
|
|
2968
|
+
properties:
|
|
2969
|
+
api_port:
|
|
2970
|
+
type: integer
|
|
2971
|
+
format: int32
|
|
2972
|
+
example: 9092
|
|
2973
|
+
api_prefix:
|
|
2974
|
+
type: string
|
|
2975
|
+
nullable: true
|
|
2976
|
+
api_username:
|
|
2977
|
+
type: string
|
|
2978
|
+
example: loc1
|
|
2979
|
+
azu_access_key:
|
|
2980
|
+
type: string
|
|
2981
|
+
nullable: true
|
|
2982
|
+
azu_path:
|
|
2983
|
+
type: string
|
|
2984
|
+
nullable: true
|
|
2985
|
+
azu_storage_account:
|
|
2986
|
+
type: string
|
|
2987
|
+
nullable: true
|
|
2988
|
+
browse_count:
|
|
2989
|
+
type: integer
|
|
2990
|
+
format: int32
|
|
2991
|
+
example: 0
|
|
2992
|
+
bytes_free_string:
|
|
2993
|
+
type: string
|
|
2994
|
+
nullable: true
|
|
2995
|
+
bytes_total_string:
|
|
2996
|
+
type: string
|
|
2997
|
+
nullable: true
|
|
2998
|
+
bytes_unknown:
|
|
2999
|
+
type: boolean
|
|
3000
|
+
example: false
|
|
3001
|
+
cluster_uuid:
|
|
3002
|
+
type: string
|
|
3003
|
+
format: uuid
|
|
3004
|
+
nullable: true
|
|
3005
|
+
created_at:
|
|
3006
|
+
type: string
|
|
3007
|
+
format: date-time
|
|
3008
|
+
example: 2016-05-03T18:12:56Z
|
|
3009
|
+
docroot:
|
|
3010
|
+
type: string
|
|
3011
|
+
nullable: true
|
|
3012
|
+
error_bytes_free_size:
|
|
3013
|
+
type: integer
|
|
3014
|
+
format: int64
|
|
3015
|
+
nullable: true
|
|
3016
|
+
error_percent_free:
|
|
3017
|
+
type: number
|
|
3018
|
+
format: float
|
|
3019
|
+
nullable: true
|
|
3020
|
+
host:
|
|
3021
|
+
type: string
|
|
3022
|
+
example: 192.168.10.40
|
|
3023
|
+
http_fallback_port:
|
|
3024
|
+
type: integer
|
|
3025
|
+
format: int32
|
|
3026
|
+
nullable: true
|
|
3027
|
+
id:
|
|
3028
|
+
type: integer
|
|
3029
|
+
format: int32
|
|
3030
|
+
example: 3
|
|
3031
|
+
name:
|
|
3032
|
+
type: string
|
|
3033
|
+
example: client
|
|
3034
|
+
open_timeout:
|
|
3035
|
+
type: integer
|
|
3036
|
+
format: int32
|
|
3037
|
+
example: 10
|
|
3038
|
+
percent_free:
|
|
3039
|
+
type: number
|
|
3040
|
+
format: float
|
|
3041
|
+
nullable: true
|
|
3042
|
+
ref_uuid:
|
|
3043
|
+
type: string
|
|
3044
|
+
format: uuid
|
|
3045
|
+
example: 6138aeec-4cf3-4fa1-8d77-1d4b659db9fa
|
|
3046
|
+
root_response:
|
|
3047
|
+
type: string
|
|
3048
|
+
nullable: true
|
|
3049
|
+
salt:
|
|
3050
|
+
type: string
|
|
3051
|
+
example: 02757fd5fb6d74b3d67d
|
|
3052
|
+
sas_path:
|
|
3053
|
+
type: string
|
|
3054
|
+
nullable: true
|
|
3055
|
+
sas_url:
|
|
3056
|
+
type: string
|
|
3057
|
+
format: uri
|
|
3058
|
+
nullable: true
|
|
3059
|
+
ssh_port:
|
|
3060
|
+
type: integer
|
|
3061
|
+
format: int32
|
|
3062
|
+
nullable: true
|
|
3063
|
+
ssl:
|
|
3064
|
+
type: boolean
|
|
3065
|
+
example: true
|
|
3066
|
+
status:
|
|
3067
|
+
type: string
|
|
3068
|
+
nullable: true
|
|
3069
|
+
status_at:
|
|
3070
|
+
type: string
|
|
3071
|
+
format: date-time
|
|
3072
|
+
nullable: true
|
|
3073
|
+
status_message:
|
|
3074
|
+
type: string
|
|
3075
|
+
nullable: true
|
|
3076
|
+
storage_type:
|
|
3077
|
+
type: string
|
|
3078
|
+
nullable: true
|
|
3079
|
+
sync_enabled:
|
|
3080
|
+
type: boolean
|
|
3081
|
+
example: false
|
|
3082
|
+
timeout:
|
|
3083
|
+
type: integer
|
|
3084
|
+
format: int32
|
|
3085
|
+
example: 30
|
|
3086
|
+
updated_at:
|
|
3087
|
+
type: string
|
|
3088
|
+
format: date-time
|
|
3089
|
+
example: 2016-05-03T18:12:56Z
|
|
3090
|
+
verify_ssl:
|
|
3091
|
+
type: boolean
|
|
3092
|
+
example: false
|
|
3093
|
+
warn_bytes_free_size:
|
|
3094
|
+
type: integer
|
|
3095
|
+
format: int64
|
|
3096
|
+
nullable: true
|
|
3097
|
+
warn_percent_free:
|
|
3098
|
+
type: number
|
|
3099
|
+
format: float
|
|
3100
|
+
nullable: true
|
|
3101
|
+
ShareUserPermission:
|
|
3102
|
+
type: object
|
|
3103
|
+
required:
|
|
3104
|
+
- browse_permission
|
|
3105
|
+
- content_availability_permission
|
|
3106
|
+
- created_at
|
|
3107
|
+
- delete_permission
|
|
3108
|
+
- download_permission
|
|
3109
|
+
- id
|
|
3110
|
+
- manage_permission
|
|
3111
|
+
- mkdir_permission
|
|
3112
|
+
- rename_permission
|
|
3113
|
+
- share_id
|
|
3114
|
+
- updated_at
|
|
3115
|
+
- upload_permission
|
|
3116
|
+
- user_id
|
|
3117
|
+
properties:
|
|
3118
|
+
browse_permission:
|
|
3119
|
+
type: boolean
|
|
3120
|
+
example: true
|
|
3121
|
+
content_availability_permission:
|
|
3122
|
+
type: boolean
|
|
3123
|
+
example: true
|
|
3124
|
+
created_at:
|
|
3125
|
+
type: string
|
|
3126
|
+
format: date-time
|
|
3127
|
+
example: 2016-05-03T18:12:56Z
|
|
3128
|
+
delete_permission:
|
|
3129
|
+
type: boolean
|
|
3130
|
+
example: true
|
|
3131
|
+
download_permission:
|
|
3132
|
+
type: boolean
|
|
3133
|
+
example: true
|
|
3134
|
+
id:
|
|
3135
|
+
type: integer
|
|
3136
|
+
format: int32
|
|
3137
|
+
example: 14
|
|
3138
|
+
last_viewed_at:
|
|
3139
|
+
type: string
|
|
3140
|
+
format: date-time
|
|
3141
|
+
nullable: true
|
|
3142
|
+
last_viewed_comments_at:
|
|
3143
|
+
type: string
|
|
3144
|
+
format: date-time
|
|
3145
|
+
nullable: true
|
|
3146
|
+
manage_permission:
|
|
3147
|
+
type: boolean
|
|
3148
|
+
example: true
|
|
3149
|
+
mkdir_permission:
|
|
3150
|
+
type: boolean
|
|
3151
|
+
example: true
|
|
3152
|
+
rename_permission:
|
|
3153
|
+
type: boolean
|
|
3154
|
+
example: true
|
|
3155
|
+
share_id:
|
|
3156
|
+
type: integer
|
|
3157
|
+
format: int32
|
|
3158
|
+
example: 11
|
|
3159
|
+
updated_at:
|
|
3160
|
+
type: string
|
|
3161
|
+
format: date-time
|
|
3162
|
+
example: 2016-05-03T18:12:56Z
|
|
3163
|
+
upload_permission:
|
|
3164
|
+
type: boolean
|
|
3165
|
+
example: true
|
|
3166
|
+
user_id:
|
|
3167
|
+
type: integer
|
|
3168
|
+
format: int32
|
|
3169
|
+
example: 24
|
|
3170
|
+
additionalProperties: false
|
|
3171
|
+
SharePermissionCreate:
|
|
3172
|
+
type: object
|
|
3173
|
+
description: Fields to set when creating or updating a share permission
|
|
3174
|
+
properties:
|
|
3175
|
+
user_id:
|
|
3176
|
+
type: integer
|
|
3177
|
+
format: int32
|
|
3178
|
+
description: User ID (for user permissions)
|
|
3179
|
+
group_id:
|
|
3180
|
+
type: integer
|
|
3181
|
+
format: int32
|
|
3182
|
+
description: Group ID (for group permissions)
|
|
3183
|
+
browse_permission:
|
|
3184
|
+
type: boolean
|
|
3185
|
+
download_permission:
|
|
3186
|
+
type: boolean
|
|
3187
|
+
upload_permission:
|
|
3188
|
+
type: boolean
|
|
3189
|
+
delete_permission:
|
|
3190
|
+
type: boolean
|
|
3191
|
+
mkdir_permission:
|
|
3192
|
+
type: boolean
|
|
3193
|
+
rename_permission:
|
|
3194
|
+
type: boolean
|
|
3195
|
+
manage_permission:
|
|
3196
|
+
type: boolean
|
|
3197
|
+
content_availability_permission:
|
|
3198
|
+
type: boolean
|
|
3199
|
+
LocalGroup:
|
|
3200
|
+
type: object
|
|
3201
|
+
properties:
|
|
3202
|
+
id:
|
|
3203
|
+
type: integer
|
|
3204
|
+
format: int32
|
|
3205
|
+
example: 10
|
|
3206
|
+
name:
|
|
3207
|
+
type: string
|
|
3208
|
+
example: engineers
|
|
3209
|
+
description:
|
|
3210
|
+
type: string
|
|
3211
|
+
nullable: true
|
|
3212
|
+
created_at:
|
|
3213
|
+
type: string
|
|
3214
|
+
format: date-time
|
|
3215
|
+
updated_at:
|
|
3216
|
+
type: string
|
|
3217
|
+
format: date-time
|
|
3218
|
+
additionalProperties: false
|
|
3219
|
+
LocalGroupCreate:
|
|
3220
|
+
type: object
|
|
3221
|
+
required:
|
|
3222
|
+
- name
|
|
3223
|
+
properties:
|
|
3224
|
+
name:
|
|
3225
|
+
type: string
|
|
3226
|
+
example: engineers
|
|
3227
|
+
description:
|
|
3228
|
+
type: string
|
|
3229
|
+
LocalGroupUpdate:
|
|
3230
|
+
type: object
|
|
3231
|
+
properties:
|
|
3232
|
+
name:
|
|
3233
|
+
type: string
|
|
3234
|
+
example: engineers
|
|
3235
|
+
description:
|
|
3236
|
+
type: string
|
|
3237
|
+
LdapConfig:
|
|
3238
|
+
type: object
|
|
3239
|
+
properties:
|
|
3240
|
+
id:
|
|
3241
|
+
type: integer
|
|
3242
|
+
format: int32
|
|
3243
|
+
host:
|
|
3244
|
+
type: string
|
|
3245
|
+
port:
|
|
3246
|
+
type: integer
|
|
3247
|
+
base_dn:
|
|
3248
|
+
type: string
|
|
3249
|
+
bind_dn:
|
|
3250
|
+
type: string
|
|
3251
|
+
ssl:
|
|
3252
|
+
type: boolean
|
|
3253
|
+
created_at:
|
|
3254
|
+
type: string
|
|
3255
|
+
format: date-time
|
|
3256
|
+
updated_at:
|
|
3257
|
+
type: string
|
|
3258
|
+
format: date-time
|
|
3259
|
+
LdapConfigCreate:
|
|
3260
|
+
type: object
|
|
3261
|
+
required:
|
|
3262
|
+
- host
|
|
3263
|
+
- base_dn
|
|
3264
|
+
properties:
|
|
3265
|
+
host:
|
|
3266
|
+
type: string
|
|
3267
|
+
example: ldap.example.com
|
|
3268
|
+
port:
|
|
3269
|
+
type: integer
|
|
3270
|
+
example: 389
|
|
3271
|
+
base_dn:
|
|
3272
|
+
type: string
|
|
3273
|
+
example: dc=example,dc=com
|
|
3274
|
+
bind_dn:
|
|
3275
|
+
type: string
|
|
3276
|
+
bind_password:
|
|
3277
|
+
type: string
|
|
3278
|
+
format: password
|
|
3279
|
+
ssl:
|
|
3280
|
+
type: boolean
|
|
3281
|
+
default: false
|
|
3282
|
+
NodeCreate:
|
|
3283
|
+
type: object
|
|
3284
|
+
required:
|
|
3285
|
+
- name
|
|
3286
|
+
- host
|
|
3287
|
+
- api_username
|
|
3288
|
+
- api_password
|
|
3289
|
+
properties:
|
|
3290
|
+
name:
|
|
3291
|
+
type: string
|
|
3292
|
+
example: client
|
|
3293
|
+
host:
|
|
3294
|
+
type: string
|
|
3295
|
+
example: 192.168.10.40
|
|
3296
|
+
api_username:
|
|
3297
|
+
type: string
|
|
3298
|
+
example: loc1
|
|
3299
|
+
api_password:
|
|
3300
|
+
type: string
|
|
3301
|
+
format: password
|
|
3302
|
+
example: strong_password_here
|
|
3303
|
+
port:
|
|
3304
|
+
type: integer
|
|
3305
|
+
format: int32
|
|
3306
|
+
default: 9092
|
|
3307
|
+
example: 9092
|
|
3308
|
+
ssl:
|
|
3309
|
+
type: boolean
|
|
3310
|
+
default: true
|
|
3311
|
+
example: true
|
|
3312
|
+
verify_ssl:
|
|
3313
|
+
type: boolean
|
|
3314
|
+
default: false
|
|
3315
|
+
example: false
|
|
3316
|
+
timeout:
|
|
3317
|
+
type: integer
|
|
3318
|
+
format: int32
|
|
3319
|
+
description: Timeout in seconds
|
|
3320
|
+
default: 30
|
|
3321
|
+
example: 30
|
|
3322
|
+
open_timeout:
|
|
3323
|
+
type: integer
|
|
3324
|
+
format: int32
|
|
3325
|
+
description: Open timeout in seconds
|
|
3326
|
+
default: 10
|
|
3327
|
+
example: 10
|
|
3328
|
+
additionalProperties: false
|
|
3329
|
+
# Node API Schemas
|
|
3330
|
+
NodeInfo:
|
|
3331
|
+
type: object
|
|
3332
|
+
properties:
|
|
3333
|
+
current_time:
|
|
3334
|
+
type: string
|
|
3335
|
+
application:
|
|
3336
|
+
type: string
|
|
3337
|
+
version:
|
|
3338
|
+
type: string
|
|
3339
|
+
capabilities:
|
|
3340
|
+
type: array
|
|
3341
|
+
items:
|
|
3342
|
+
type: object
|
|
3343
|
+
properties:
|
|
3344
|
+
name:
|
|
3345
|
+
type: string
|
|
3346
|
+
value:
|
|
3347
|
+
type: boolean
|
|
3348
|
+
required:
|
|
3349
|
+
- name
|
|
3350
|
+
- value
|
|
3351
|
+
required:
|
|
3352
|
+
- current_time
|
|
3353
|
+
- application
|
|
3354
|
+
- version
|
|
3355
|
+
- capabilities
|
|
3356
|
+
TransferCreate:
|
|
3357
|
+
type: object
|
|
3358
|
+
required:
|
|
3359
|
+
- transfer_spec
|
|
3360
|
+
properties:
|
|
3361
|
+
transfer_spec:
|
|
3362
|
+
type: object
|
|
3363
|
+
description: Aspera transfer specification
|
|
3364
|
+
Transfer:
|
|
3365
|
+
type: object
|
|
3366
|
+
properties:
|
|
3367
|
+
id:
|
|
3368
|
+
type: string
|
|
3369
|
+
example: xfer-123abc
|
|
3370
|
+
status:
|
|
3371
|
+
type: string
|
|
3372
|
+
enum: [pending, running, completed, failed, cancelled, paused]
|
|
3373
|
+
direction:
|
|
3374
|
+
type: string
|
|
3375
|
+
enum: [upload, download, sync]
|
|
3376
|
+
bytes_transferred:
|
|
3377
|
+
type: integer
|
|
3378
|
+
format: int64
|
|
3379
|
+
total_bytes:
|
|
3380
|
+
type: integer
|
|
3381
|
+
format: int64
|
|
3382
|
+
percentage:
|
|
3383
|
+
type: number
|
|
3384
|
+
format: float
|
|
3385
|
+
rate_kbps:
|
|
3386
|
+
type: integer
|
|
3387
|
+
description: Current transfer rate in Kbps
|
|
3388
|
+
started_at:
|
|
3389
|
+
type: string
|
|
3390
|
+
format: date-time
|
|
3391
|
+
completed_at:
|
|
3392
|
+
type: string
|
|
3393
|
+
format: date-time
|
|
3394
|
+
WatchdSubscription:
|
|
3395
|
+
type: object
|
|
3396
|
+
properties:
|
|
3397
|
+
id:
|
|
3398
|
+
type: string
|
|
3399
|
+
name:
|
|
3400
|
+
type: string
|
|
3401
|
+
path:
|
|
3402
|
+
type: string
|
|
3403
|
+
description: Path to monitor
|
|
3404
|
+
events:
|
|
3405
|
+
type: array
|
|
3406
|
+
items:
|
|
3407
|
+
type: string
|
|
3408
|
+
enum: [create, modify, delete, move]
|
|
3409
|
+
active:
|
|
3410
|
+
type: boolean
|
|
3411
|
+
# SMTP Server Schemas
|
|
3412
|
+
SmtpServer:
|
|
3413
|
+
type: object
|
|
3414
|
+
properties:
|
|
3415
|
+
id:
|
|
3416
|
+
type: integer
|
|
3417
|
+
example: 13
|
|
3418
|
+
server:
|
|
3419
|
+
type: string
|
|
3420
|
+
description: SMTP server hostname
|
|
3421
|
+
example: smtp.gmail.com
|
|
3422
|
+
port:
|
|
3423
|
+
type: integer
|
|
3424
|
+
description: SMTP server port
|
|
3425
|
+
example: 587
|
|
3426
|
+
username:
|
|
3427
|
+
type: string
|
|
3428
|
+
description: SMTP authentication username
|
|
3429
|
+
example: demo@asperasoft.net
|
|
3430
|
+
from:
|
|
3431
|
+
type: string
|
|
3432
|
+
description: From email address
|
|
3433
|
+
example: aspera-systems@asperasoft.net
|
|
3434
|
+
from_address:
|
|
3435
|
+
type: string
|
|
3436
|
+
nullable: true
|
|
3437
|
+
description: Optional custom from address
|
|
3438
|
+
from_name:
|
|
3439
|
+
type: string
|
|
3440
|
+
nullable: true
|
|
3441
|
+
description: Optional custom from name
|
|
3442
|
+
tls:
|
|
3443
|
+
type: boolean
|
|
3444
|
+
description: Use TLS encryption
|
|
3445
|
+
example: true
|
|
3446
|
+
timeout:
|
|
3447
|
+
type: integer
|
|
3448
|
+
description: Connection timeout in seconds
|
|
3449
|
+
example: 3
|
|
3450
|
+
status:
|
|
3451
|
+
type: string
|
|
3452
|
+
nullable: true
|
|
3453
|
+
description: Server status
|
|
3454
|
+
status_at:
|
|
3455
|
+
type: string
|
|
3456
|
+
format: date-time
|
|
3457
|
+
nullable: true
|
|
3458
|
+
description: Last status check timestamp
|
|
3459
|
+
status_message:
|
|
3460
|
+
type: string
|
|
3461
|
+
nullable: true
|
|
3462
|
+
description: Status message or error
|
|
3463
|
+
created_at:
|
|
3464
|
+
type: string
|
|
3465
|
+
format: date-time
|
|
3466
|
+
updated_at:
|
|
3467
|
+
type: string
|
|
3468
|
+
format: date-time
|
|
3469
|
+
salt:
|
|
3470
|
+
type: string
|
|
3471
|
+
description: Salt for password encryption
|
|
3472
|
+
example: 429979e40788ba6e9df1
|
|
3473
|
+
SmtpServerCreate:
|
|
3474
|
+
type: object
|
|
3475
|
+
required:
|
|
3476
|
+
- server
|
|
3477
|
+
- port
|
|
3478
|
+
- username
|
|
3479
|
+
- password
|
|
3480
|
+
properties:
|
|
3481
|
+
server:
|
|
3482
|
+
type: string
|
|
3483
|
+
example: smtp.gmail.com
|
|
3484
|
+
port:
|
|
3485
|
+
type: integer
|
|
3486
|
+
example: 587
|
|
3487
|
+
username:
|
|
3488
|
+
type: string
|
|
3489
|
+
example: user@example.com
|
|
3490
|
+
password:
|
|
3491
|
+
type: string
|
|
3492
|
+
format: password
|
|
3493
|
+
description: SMTP authentication password
|
|
3494
|
+
from:
|
|
3495
|
+
type: string
|
|
3496
|
+
format: email
|
|
3497
|
+
from_address:
|
|
3498
|
+
type: string
|
|
3499
|
+
format: email
|
|
3500
|
+
from_name:
|
|
3501
|
+
type: string
|
|
3502
|
+
tls:
|
|
3503
|
+
type: boolean
|
|
3504
|
+
default: true
|
|
3505
|
+
timeout:
|
|
3506
|
+
type: integer
|
|
3507
|
+
default: 3
|
|
3508
|
+
minimum: 1
|
|
3509
|
+
maximum: 60
|
|
3510
|
+
SmtpServerUpdate:
|
|
3511
|
+
type: object
|
|
3512
|
+
properties:
|
|
3513
|
+
server:
|
|
3514
|
+
type: string
|
|
3515
|
+
port:
|
|
3516
|
+
type: integer
|
|
3517
|
+
username:
|
|
3518
|
+
type: string
|
|
3519
|
+
password:
|
|
3520
|
+
type: string
|
|
3521
|
+
format: password
|
|
3522
|
+
from:
|
|
3523
|
+
type: string
|
|
3524
|
+
format: email
|
|
3525
|
+
from_address:
|
|
3526
|
+
type: string
|
|
3527
|
+
format: email
|
|
3528
|
+
from_name:
|
|
3529
|
+
type: string
|
|
3530
|
+
tls:
|
|
3531
|
+
type: boolean
|
|
3532
|
+
timeout:
|
|
3533
|
+
type: integer
|
|
3534
|
+
minimum: 1
|
|
3535
|
+
maximum: 60
|
|
3536
|
+
# Transfer Settings Schemas
|
|
3537
|
+
TransferSettings:
|
|
3538
|
+
type: object
|
|
3539
|
+
properties:
|
|
3540
|
+
min_connect_version:
|
|
3541
|
+
type: string
|
|
3542
|
+
description: Minimum Aspera Connect version required (format X.Y or X.Y.Z or X.Y.Z.W)
|
|
3543
|
+
example: "3.6.1"
|
|
3544
|
+
nullable: true
|
|
3545
|
+
upload_target_rate:
|
|
3546
|
+
type: string
|
|
3547
|
+
description: Target upload rate (e.g., "1.5 Gbps", "500Mbps", "10 K", "3000")
|
|
3548
|
+
example: "10.0 Kbps"
|
|
3549
|
+
nullable: true
|
|
3550
|
+
upload_target_rate_cap:
|
|
3551
|
+
type: string
|
|
3552
|
+
description: Maximum upload rate cap
|
|
3553
|
+
example: "500.0 Mbps"
|
|
3554
|
+
nullable: true
|
|
3555
|
+
download_target_rate:
|
|
3556
|
+
type: string
|
|
3557
|
+
description: Target download rate
|
|
3558
|
+
nullable: true
|
|
3559
|
+
download_target_rate_cap:
|
|
3560
|
+
type: string
|
|
3561
|
+
description: Maximum download rate cap
|
|
3562
|
+
nullable: true
|
|
3563
|
+
starting_policy:
|
|
3564
|
+
type: string
|
|
3565
|
+
enum: ["", "fixed", "high", "fair", "low"]
|
|
3566
|
+
description: Starting bandwidth policy (empty string indicates inherit)
|
|
3567
|
+
nullable: true
|
|
3568
|
+
allowed_policy:
|
|
3569
|
+
type: string
|
|
3570
|
+
enum:
|
|
3571
|
+
[
|
|
3572
|
+
"",
|
|
3573
|
+
"fixed, high, fair, and low",
|
|
3574
|
+
"high, fair, and low",
|
|
3575
|
+
"fair and low",
|
|
3576
|
+
"low",
|
|
3577
|
+
]
|
|
3578
|
+
description: Allowed bandwidth policies (empty string indicates inherit)
|
|
3579
|
+
nullable: true
|
|
3580
|
+
encryption:
|
|
3581
|
+
type: string
|
|
3582
|
+
enum: ["", "Optional", "AES-128"]
|
|
3583
|
+
description: Encryption setting (empty string indicates inherit)
|
|
3584
|
+
nullable: true
|
|
3585
|
+
encryption_at_rest:
|
|
3586
|
+
type: string
|
|
3587
|
+
enum: ["", "Optional", "Required"]
|
|
3588
|
+
description: Encryption at rest setting (empty string indicates inherit)
|
|
3589
|
+
nullable: true
|
|
3590
|
+
TransferSettingsUpdate:
|
|
3591
|
+
type: object
|
|
3592
|
+
properties:
|
|
3593
|
+
min_connect_version:
|
|
3594
|
+
type: string
|
|
3595
|
+
description: Minimum Aspera Connect version (format X.Y or X.Y.Z or X.Y.Z.W)
|
|
3596
|
+
example: "3.7.1"
|
|
3597
|
+
upload_target_rate:
|
|
3598
|
+
type: string
|
|
3599
|
+
description: Target upload rate (e.g., "1.5 Gbps", "500Mbps", "10 K", "3000")
|
|
3600
|
+
example: "10.0 Kbps"
|
|
3601
|
+
upload_target_rate_cap:
|
|
3602
|
+
type: string
|
|
3603
|
+
description: Maximum upload rate cap
|
|
3604
|
+
example: "22.0 Mbps"
|
|
3605
|
+
download_target_rate:
|
|
3606
|
+
type: string
|
|
3607
|
+
description: Target download rate
|
|
3608
|
+
download_target_rate_cap:
|
|
3609
|
+
type: string
|
|
3610
|
+
description: Maximum download rate cap
|
|
3611
|
+
starting_policy:
|
|
3612
|
+
type: string
|
|
3613
|
+
enum: ["", "fixed", "high", "fair", "low"]
|
|
3614
|
+
description: Starting bandwidth policy (blank = inherit)
|
|
3615
|
+
nullable: true
|
|
3616
|
+
allowed_policy:
|
|
3617
|
+
type: string
|
|
3618
|
+
enum:
|
|
3619
|
+
[
|
|
3620
|
+
"",
|
|
3621
|
+
"fixed, high, fair, and low",
|
|
3622
|
+
"high, fair, and low",
|
|
3623
|
+
"fair and low",
|
|
3624
|
+
"low",
|
|
3625
|
+
]
|
|
3626
|
+
description: Allowed bandwidth policies (blank = inherit)
|
|
3627
|
+
encryption:
|
|
3628
|
+
type: string
|
|
3629
|
+
enum: ["", "Optional", "AES-128"]
|
|
3630
|
+
description: Encryption setting (blank = inherit)
|
|
3631
|
+
encryption_at_rest:
|
|
3632
|
+
type: string
|
|
3633
|
+
enum: ["", "Optional", "Required"]
|
|
3634
|
+
description: Encryption at rest (blank = inherit)
|
|
3635
|
+
reset_all_defaults:
|
|
3636
|
+
type: boolean
|
|
3637
|
+
description: Reset all settings to system defaults
|
|
3638
|
+
TransferSettingsResponse:
|
|
3639
|
+
allOf:
|
|
3640
|
+
- $ref: "#/components/schemas/TransferSettings"
|
|
3641
|
+
- type: object
|
|
3642
|
+
properties:
|
|
3643
|
+
errors:
|
|
3644
|
+
type: object
|
|
3645
|
+
description: Validation errors for each field
|
|
3646
|
+
properties:
|
|
3647
|
+
upload_target_rate_cap:
|
|
3648
|
+
type: array
|
|
3649
|
+
items:
|
|
3650
|
+
type: string
|
|
3651
|
+
upload_target_rate:
|
|
3652
|
+
type: array
|
|
3653
|
+
items:
|
|
3654
|
+
type: string
|
|
3655
|
+
download_target_rate_cap:
|
|
3656
|
+
type: array
|
|
3657
|
+
items:
|
|
3658
|
+
type: string
|
|
3659
|
+
download_target_rate:
|
|
3660
|
+
type: array
|
|
3661
|
+
items:
|
|
3662
|
+
type: string
|
|
3663
|
+
allowed_policy:
|
|
3664
|
+
type: array
|
|
3665
|
+
items:
|
|
3666
|
+
type: string
|
|
3667
|
+
starting_policy:
|
|
3668
|
+
type: array
|
|
3669
|
+
items:
|
|
3670
|
+
type: string
|
|
3671
|
+
validation_context:
|
|
3672
|
+
type: string
|
|
3673
|
+
nullable: true
|
|
3674
|
+
UserTransferSettings:
|
|
3675
|
+
allOf:
|
|
3676
|
+
- $ref: "#/components/schemas/TransferSettings"
|
|
3677
|
+
- type: object
|
|
3678
|
+
required:
|
|
3679
|
+
- id
|
|
3680
|
+
- authorizable_type
|
|
3681
|
+
- authorizable_id
|
|
3682
|
+
properties:
|
|
3683
|
+
id:
|
|
3684
|
+
type: integer
|
|
3685
|
+
example: 3
|
|
3686
|
+
authorizable_type:
|
|
3687
|
+
type: string
|
|
3688
|
+
enum: [Authorizable::User]
|
|
3689
|
+
example: Authorizable::User
|
|
3690
|
+
authorizable_id:
|
|
3691
|
+
type: integer
|
|
3692
|
+
description: User ID
|
|
3693
|
+
example: 5
|
|
3694
|
+
created_at:
|
|
3695
|
+
type: string
|
|
3696
|
+
format: date-time
|
|
3697
|
+
updated_at:
|
|
3698
|
+
type: string
|
|
3699
|
+
format: date-time
|
|
3700
|
+
GroupTransferSettings:
|
|
3701
|
+
allOf:
|
|
3702
|
+
- $ref: "#/components/schemas/TransferSettings"
|
|
3703
|
+
- type: object
|
|
3704
|
+
required:
|
|
3705
|
+
- id
|
|
3706
|
+
- authorizable_type
|
|
3707
|
+
- authorizable_id
|
|
3708
|
+
properties:
|
|
3709
|
+
id:
|
|
3710
|
+
type: integer
|
|
3711
|
+
example: 13
|
|
3712
|
+
authorizable_type:
|
|
3713
|
+
type: string
|
|
3714
|
+
enum: [Authorizable::Group]
|
|
3715
|
+
example: Authorizable::Group
|
|
3716
|
+
authorizable_id:
|
|
3717
|
+
type: integer
|
|
3718
|
+
description: Group ID
|
|
3719
|
+
example: 1
|
|
3720
|
+
created_at:
|
|
3721
|
+
type: string
|
|
3722
|
+
format: date-time
|
|
3723
|
+
updated_at:
|
|
3724
|
+
type: string
|
|
3725
|
+
format: date-time
|
|
3726
|
+
# Error Schema
|
|
3727
|
+
Error:
|
|
3728
|
+
type: object
|
|
3729
|
+
required:
|
|
3730
|
+
- error
|
|
3731
|
+
properties:
|
|
3732
|
+
error:
|
|
3733
|
+
type: object
|
|
3734
|
+
description: Error object
|
|
3735
|
+
properties:
|
|
3736
|
+
user_message:
|
|
3737
|
+
type: string
|
|
3738
|
+
description: Human-readable error message
|
|
3739
|
+
example: API user authentication failed
|
|
3740
|
+
filesBrowseRequest:
|
|
3741
|
+
required:
|
|
3742
|
+
- path
|
|
3743
|
+
type: object
|
|
3744
|
+
properties:
|
|
3745
|
+
path:
|
|
3746
|
+
type: string
|
|
3747
|
+
description: The full pathname of the directory to browse.
|
|
3748
|
+
skip:
|
|
3749
|
+
type: integer
|
|
3750
|
+
description:
|
|
3751
|
+
Do not return information about the first number of files and
|
|
3752
|
+
directories. Default 0.
|
|
3753
|
+
count:
|
|
3754
|
+
type: integer
|
|
3755
|
+
description:
|
|
3756
|
+
Return no more than "count" results. It is the client’s responsibility
|
|
3757
|
+
to keep track of number of results returned. Default 100.
|
|
3758
|
+
sort:
|
|
3759
|
+
type: string
|
|
3760
|
+
description:
|
|
3761
|
+
"Sort the results by \"path\", \"type\" (directory/file), \"\
|
|
3762
|
+
size_a\"(bytes, ascending), \"size_d\" (bytes, descending), \"mtime_a\"\
|
|
3763
|
+
\ (modification date, ascending), or \"mtime_d\" (modification date,\
|
|
3764
|
+
\ descending)."
|
|
3765
|
+
case_sensitive:
|
|
3766
|
+
type: boolean
|
|
3767
|
+
description:
|
|
3768
|
+
"Specify if sort and basename are case sensitive (true) or\
|
|
3769
|
+
\ not (false). Default: false."
|
|
3770
|
+
filters:
|
|
3771
|
+
$ref: "#/components/schemas/filesBrowseFilters"
|
|
3772
|
+
filesBrowseFilters:
|
|
3773
|
+
type: object
|
|
3774
|
+
properties:
|
|
3775
|
+
types:
|
|
3776
|
+
type: array
|
|
3777
|
+
description:
|
|
3778
|
+
"Return data only for the specified content types: file, symbolic_link,\
|
|
3779
|
+
\ or directory."
|
|
3780
|
+
example:
|
|
3781
|
+
- file
|
|
3782
|
+
- directory
|
|
3783
|
+
items:
|
|
3784
|
+
type: string
|
|
3785
|
+
enum:
|
|
3786
|
+
- file
|
|
3787
|
+
- symbolic_link
|
|
3788
|
+
- directory
|
|
3789
|
+
paths:
|
|
3790
|
+
type: array
|
|
3791
|
+
description: Return data only for path names that match the specified path.
|
|
3792
|
+
example:
|
|
3793
|
+
- /a/*
|
|
3794
|
+
- b/*/c*
|
|
3795
|
+
items:
|
|
3796
|
+
type: string
|
|
3797
|
+
basenames:
|
|
3798
|
+
type: array
|
|
3799
|
+
description:
|
|
3800
|
+
Return data only for files with basenames that match the specified
|
|
3801
|
+
basenames.
|
|
3802
|
+
example:
|
|
3803
|
+
- "*.jpg"
|
|
3804
|
+
- "*.gif"
|
|
3805
|
+
items:
|
|
3806
|
+
type: string
|
|
3807
|
+
size_min:
|
|
3808
|
+
type: integer
|
|
3809
|
+
description:
|
|
3810
|
+
"Include files that are greater than or equal to size_min (in\
|
|
3811
|
+
\ bytes). NOTE: This setting automatically restricts the results to files,\
|
|
3812
|
+
\ equivalent to setting \"types\":\"file\"."
|
|
3813
|
+
example: 1000
|
|
3814
|
+
size_max:
|
|
3815
|
+
type: integer
|
|
3816
|
+
description:
|
|
3817
|
+
"Include files that are less than size_max (in bytes). NOTE:\
|
|
3818
|
+
\ This setting automatically restricts the results to files, equivalent\
|
|
3819
|
+
\ to setting \"types\":\"file\"."
|
|
3820
|
+
example: 10000
|
|
3821
|
+
mtime_min:
|
|
3822
|
+
type: string
|
|
3823
|
+
description:
|
|
3824
|
+
"Include files that were updated after mtime_min, in the format\
|
|
3825
|
+
\ \"2011-01-31T12:59:59Z\", T or space in the middle; Z optional at the\
|
|
3826
|
+
\ end."
|
|
3827
|
+
example: 2011-01-01 00:00:00
|
|
3828
|
+
mtime_max:
|
|
3829
|
+
type: string
|
|
3830
|
+
description:
|
|
3831
|
+
"Include files that were updated before mtime_max, in the format\
|
|
3832
|
+
\ \"2011-01-31T12:59:59Z\", T or space in the middle; Z optional at the\
|
|
3833
|
+
\ end."
|
|
3834
|
+
example: 2011-01-31 11:59:59
|
|
3835
|
+
description: List of query filters that are applied to the source paths.
|
|
3836
|
+
filesBrowseResponse:
|
|
3837
|
+
type: object
|
|
3838
|
+
properties:
|
|
3839
|
+
self:
|
|
3840
|
+
$ref: "#/components/schemas/filesBrowseMeta"
|
|
3841
|
+
items:
|
|
3842
|
+
type: array
|
|
3843
|
+
items:
|
|
3844
|
+
$ref: "#/components/schemas/filesBrowseMeta"
|
|
3845
|
+
filesBrowseMeta:
|
|
3846
|
+
type: object
|
|
3847
|
+
properties:
|
|
3848
|
+
path:
|
|
3849
|
+
type: string
|
|
3850
|
+
description: "The pathname of the file, directory, or symbolic link."
|
|
3851
|
+
example: /Documents/Users/aspera
|
|
3852
|
+
basename:
|
|
3853
|
+
type: string
|
|
3854
|
+
description: The base name of the path.
|
|
3855
|
+
example: sample.txt
|
|
3856
|
+
type:
|
|
3857
|
+
type: string
|
|
3858
|
+
description:
|
|
3859
|
+
"The type of the path. Value is \"file\", \"directory\", or\
|
|
3860
|
+
\ \"symbolic_link\"."
|
|
3861
|
+
example: file
|
|
3862
|
+
size:
|
|
3863
|
+
type: integer
|
|
3864
|
+
description:
|
|
3865
|
+
"The size of the file or symbolic link, in bytes. Directory\
|
|
3866
|
+
\ size is reported as 0."
|
|
3867
|
+
example: 3290353589
|
|
3868
|
+
mtime:
|
|
3869
|
+
type: string
|
|
3870
|
+
description: "The item's modification time, in ISO format."
|
|
3871
|
+
example: 2011-01-31 11:59:59
|
|
3872
|
+
permissions:
|
|
3873
|
+
type: array
|
|
3874
|
+
items:
|
|
3875
|
+
$ref: "#/components/schemas/filesBrowsePermissions"
|
|
3876
|
+
target:
|
|
3877
|
+
$ref: "#/components/schemas/filesBrowseTarget"
|
|
3878
|
+
description:
|
|
3879
|
+
JSON object that contains the metadata associated with the base
|
|
3880
|
+
path of the request.
|
|
3881
|
+
filesBrowsePermissions:
|
|
3882
|
+
type: object
|
|
3883
|
+
properties:
|
|
3884
|
+
name:
|
|
3885
|
+
type: string
|
|
3886
|
+
description:
|
|
3887
|
+
"The permissions that is set on the content. Value is \"view\"\
|
|
3888
|
+
, \"edit\", and \"delete\"."
|
|
3889
|
+
example: edit
|
|
3890
|
+
filesBrowseTarget:
|
|
3891
|
+
type: object
|
|
3892
|
+
properties:
|
|
3893
|
+
path:
|
|
3894
|
+
type: string
|
|
3895
|
+
description:
|
|
3896
|
+
"The pathname of the file, directory, or symbolic link that\
|
|
3897
|
+
\ is the target of the symbolic link."
|
|
3898
|
+
example: /Documents/Users/aspera
|
|
3899
|
+
basename:
|
|
3900
|
+
type: string
|
|
3901
|
+
description: The base name of the symbolic link target.
|
|
3902
|
+
example: sample.txt
|
|
3903
|
+
type:
|
|
3904
|
+
type: string
|
|
3905
|
+
description:
|
|
3906
|
+
"The type of the symbolic link target. Value is \"file\", \"\
|
|
3907
|
+
directory\", or \"symbolic_link\"."
|
|
3908
|
+
example: file
|
|
3909
|
+
size:
|
|
3910
|
+
type: integer
|
|
3911
|
+
description:
|
|
3912
|
+
"The size of the file or symbolic link, in bytes. Directory\
|
|
3913
|
+
\ size is reported as 0."
|
|
3914
|
+
example: 108323953
|
|
3915
|
+
mtime:
|
|
3916
|
+
type: string
|
|
3917
|
+
description: "The symbolic link target's modification time, in ISO format."
|
|
3918
|
+
example: 2011-01-31 11:59:59
|
|
3919
|
+
permissions:
|
|
3920
|
+
type: array
|
|
3921
|
+
items:
|
|
3922
|
+
$ref: "#/components/schemas/filesBrowsePermissions"
|
|
3923
|
+
description:
|
|
3924
|
+
JSON object that contains the metadata associated with the symbolic
|
|
3925
|
+
link target.
|
|
3926
|
+
files-create-post-request:
|
|
3927
|
+
required:
|
|
3928
|
+
- paths
|
|
3929
|
+
type: object
|
|
3930
|
+
properties:
|
|
3931
|
+
paths:
|
|
3932
|
+
type: array
|
|
3933
|
+
description:
|
|
3934
|
+
"Array containing the paths of the files, directories, and\
|
|
3935
|
+
\ symbolic links to create."
|
|
3936
|
+
items:
|
|
3937
|
+
$ref: "#/components/schemas/files-create-path"
|
|
3938
|
+
files-create-path:
|
|
3939
|
+
required:
|
|
3940
|
+
- path
|
|
3941
|
+
- type
|
|
3942
|
+
type: object
|
|
3943
|
+
properties:
|
|
3944
|
+
path:
|
|
3945
|
+
type: string
|
|
3946
|
+
description: The pathname for the new item.
|
|
3947
|
+
type:
|
|
3948
|
+
type: string
|
|
3949
|
+
description:
|
|
3950
|
+
"The type of item to create. Values are file, directory, or\
|
|
3951
|
+
\ symbolic_link."
|
|
3952
|
+
target:
|
|
3953
|
+
$ref: "#/components/schemas/files-create-target"
|
|
3954
|
+
contents:
|
|
3955
|
+
type: string
|
|
3956
|
+
description: base64 encoded contents of the file to be created.
|
|
3957
|
+
files-create-target:
|
|
3958
|
+
required:
|
|
3959
|
+
- path
|
|
3960
|
+
type: string
|
|
3961
|
+
properties:
|
|
3962
|
+
path:
|
|
3963
|
+
type: string
|
|
3964
|
+
description: The pathname of the target for the new symbolic link.
|
|
3965
|
+
description:
|
|
3966
|
+
Required when 'type' is "symbolic_link'. JSON containing the target
|
|
3967
|
+
pathname.
|
|
3968
|
+
files-create-post-200:
|
|
3969
|
+
type: object
|
|
3970
|
+
properties:
|
|
3971
|
+
paths:
|
|
3972
|
+
type: array
|
|
3973
|
+
description: JSON object that lists the pathnames created by the request.
|
|
3974
|
+
items:
|
|
3975
|
+
$ref: "#/components/schemas/files-create-response-path"
|
|
3976
|
+
files-create-response-path:
|
|
3977
|
+
type: object
|
|
3978
|
+
properties:
|
|
3979
|
+
path:
|
|
3980
|
+
type: string
|
|
3981
|
+
description: The new item pathname.
|
|
3982
|
+
error:
|
|
3983
|
+
$ref: "#/components/schemas/files-create-error"
|
|
3984
|
+
files-create-error:
|
|
3985
|
+
type: object
|
|
3986
|
+
properties:
|
|
3987
|
+
code:
|
|
3988
|
+
type: integer
|
|
3989
|
+
description: HTTP error code number.
|
|
3990
|
+
example: 409
|
|
3991
|
+
reason:
|
|
3992
|
+
type: string
|
|
3993
|
+
description: Short error description.
|
|
3994
|
+
example: Conflict
|
|
3995
|
+
user_message:
|
|
3996
|
+
type: string
|
|
3997
|
+
description: Longer error description.
|
|
3998
|
+
example: Path already exists
|
|
3999
|
+
description: JSON object describing an error.
|
|
4000
|
+
files-delete-post-request:
|
|
4001
|
+
required:
|
|
4002
|
+
- paths
|
|
4003
|
+
type: object
|
|
4004
|
+
properties:
|
|
4005
|
+
paths:
|
|
4006
|
+
type: array
|
|
4007
|
+
description: Array of full paths to the files and directories to delete.
|
|
4008
|
+
items:
|
|
4009
|
+
$ref: "#/components/schemas/files-delete-path"
|
|
4010
|
+
files-delete-path:
|
|
4011
|
+
required:
|
|
4012
|
+
- path
|
|
4013
|
+
type: object
|
|
4014
|
+
properties:
|
|
4015
|
+
path:
|
|
4016
|
+
type: string
|
|
4017
|
+
description: The full path to the file or directory to delete.
|
|
4018
|
+
recursive_delete:
|
|
4019
|
+
type: boolean
|
|
4020
|
+
description:
|
|
4021
|
+
"Set the behavior for deleting non-empty directories. If true\
|
|
4022
|
+
\ (default), delete directories even if they are non-empty. Set to false\
|
|
4023
|
+
\ to not delete non-empty directories and return an error."
|
|
4024
|
+
files-delete-post-200:
|
|
4025
|
+
type: object
|
|
4026
|
+
properties:
|
|
4027
|
+
paths:
|
|
4028
|
+
type: array
|
|
4029
|
+
description:
|
|
4030
|
+
JSON array of full paths to the files and directories in the
|
|
4031
|
+
request body.
|
|
4032
|
+
items:
|
|
4033
|
+
$ref: "#/components/schemas/files-delete-response-path"
|
|
4034
|
+
files-delete-response-path:
|
|
4035
|
+
type: object
|
|
4036
|
+
properties:
|
|
4037
|
+
path:
|
|
4038
|
+
type: string
|
|
4039
|
+
description: The deleted item pathname.
|
|
4040
|
+
error:
|
|
4041
|
+
$ref: "#/components/schemas/files-delete-error"
|
|
4042
|
+
files-delete-error:
|
|
4043
|
+
type: object
|
|
4044
|
+
properties:
|
|
4045
|
+
code:
|
|
4046
|
+
type: integer
|
|
4047
|
+
description: HTTP error code number.
|
|
4048
|
+
example: 500
|
|
4049
|
+
reason:
|
|
4050
|
+
type: string
|
|
4051
|
+
description: Short error description.
|
|
4052
|
+
example: Not Found
|
|
4053
|
+
user_message:
|
|
4054
|
+
type: string
|
|
4055
|
+
description: Longer error description.
|
|
4056
|
+
example: No such file or directory
|
|
4057
|
+
description: "JSON object describing an error, if any."
|
|
4058
|
+
files-download_setup-post-request:
|
|
4059
|
+
required:
|
|
4060
|
+
- transfer_requests
|
|
4061
|
+
type: object
|
|
4062
|
+
properties:
|
|
4063
|
+
transfer_requests:
|
|
4064
|
+
type: array
|
|
4065
|
+
description:
|
|
4066
|
+
"The JSON object that contains the transfer request information.\
|
|
4067
|
+
\ Multiple transfer requests can be included as comma-delimited transfer_request\
|
|
4068
|
+
\ objects, if needed."
|
|
4069
|
+
items:
|
|
4070
|
+
$ref: "#/components/schemas/token-transfer-request"
|
|
4071
|
+
token-transfer-request:
|
|
4072
|
+
required:
|
|
4073
|
+
- transfer_request
|
|
4074
|
+
type: object
|
|
4075
|
+
properties:
|
|
4076
|
+
transfer_request:
|
|
4077
|
+
$ref: "#/components/schemas/token-transfer-request-body"
|
|
4078
|
+
token-transfer-request-body:
|
|
4079
|
+
type: object
|
|
4080
|
+
properties:
|
|
4081
|
+
source_root:
|
|
4082
|
+
type: string
|
|
4083
|
+
description: The source root directory of the files.
|
|
4084
|
+
example: /Users/aspera
|
|
4085
|
+
destination_root:
|
|
4086
|
+
type: string
|
|
4087
|
+
description: The destination root directory.
|
|
4088
|
+
token_life_seconds:
|
|
4089
|
+
type: integer
|
|
4090
|
+
description:
|
|
4091
|
+
"How long the token is valid after creation, in seconds. This\
|
|
4092
|
+
\ option overrides the server setting."
|
|
4093
|
+
example: 43200
|
|
4094
|
+
paths:
|
|
4095
|
+
type: array
|
|
4096
|
+
description:
|
|
4097
|
+
"Array of source or destination paths. For uploads, either\
|
|
4098
|
+
\ a value must be provided for \"destination_root\" or at least one \"\
|
|
4099
|
+
destination\" must be set in \"paths\". Set \"destination\" as \"*\" to\
|
|
4100
|
+
\ allow uploads to the \"destination_root\" itself or any directories\
|
|
4101
|
+
\ within it. For downloads, either a value must be provided for \"source_root\"\
|
|
4102
|
+
\ or at least one \"source\" must be set in \"paths\". Set \"source\"\
|
|
4103
|
+
\ as * to allow downloads of the \"source_root\" itself or any files within\
|
|
4104
|
+
\ it."
|
|
4105
|
+
items:
|
|
4106
|
+
$ref: "#/components/schemas/token-paths"
|
|
4107
|
+
remote_host:
|
|
4108
|
+
type: string
|
|
4109
|
+
description: IP or fully qualified domain name of the remote server
|
|
4110
|
+
example: 10.0.0.1
|
|
4111
|
+
cipher_allowed:
|
|
4112
|
+
type: string
|
|
4113
|
+
description:
|
|
4114
|
+
"The algorithm that is used to encrypt data during a transfer.\
|
|
4115
|
+
\ Use this option when transmitting sensitive data. Allowed values: none,\
|
|
4116
|
+
\ \"aes-128\", \"aes-256\". Default: none."
|
|
4117
|
+
example: aes-128
|
|
4118
|
+
content_protection:
|
|
4119
|
+
type: string
|
|
4120
|
+
description:
|
|
4121
|
+
"Enable content protection (encryption-at-rest), which encrypts\
|
|
4122
|
+
\ files when they are uploaded to the server and decrypts files when they\
|
|
4123
|
+
\ are downloaded. Allowed values: encrypt: Encrypt transferred files\
|
|
4124
|
+
\ (on the server). decrypt: Decrypt downloaded files. If content_protection_password\
|
|
4125
|
+
\ is not specified, Connect will prompt for the passphrase. Default:\
|
|
4126
|
+
\ decrypt"
|
|
4127
|
+
example: decrypt
|
|
4128
|
+
content_protection_password:
|
|
4129
|
+
type: string
|
|
4130
|
+
description:
|
|
4131
|
+
Password to apply or remove encryption. Must be provided when
|
|
4132
|
+
"content_protection" is enabled.
|
|
4133
|
+
cookie:
|
|
4134
|
+
type: string
|
|
4135
|
+
description:
|
|
4136
|
+
"Metadata to associate with the transfer. The cookie is reported\
|
|
4137
|
+
\ to both client-side and server-side applications that are monitoring\
|
|
4138
|
+
\ FASP transfers. Default: none"
|
|
4139
|
+
fasp_port:
|
|
4140
|
+
type: integer
|
|
4141
|
+
description:
|
|
4142
|
+
"The UDP port for FASP to use. The default value works for\
|
|
4143
|
+
\ most situations; however, it can be changed to satisfy firewall requirements.\
|
|
4144
|
+
\ Default: 33001"
|
|
4145
|
+
example: 33001
|
|
4146
|
+
ssh_port:
|
|
4147
|
+
type: integer
|
|
4148
|
+
description:
|
|
4149
|
+
"The server's TCP port that is listening for SSH connections.\
|
|
4150
|
+
\ FASP® initiates transfers through SSH. Default value: 33001"
|
|
4151
|
+
example: 22
|
|
4152
|
+
http_fallback:
|
|
4153
|
+
type: boolean
|
|
4154
|
+
description:
|
|
4155
|
+
"If set to true, the transfer attempts an HTTP or HTTPS transfer\
|
|
4156
|
+
\ if FASP transfer errors. Default: false."
|
|
4157
|
+
example: false
|
|
4158
|
+
http_fallback_port:
|
|
4159
|
+
type: integer
|
|
4160
|
+
description:
|
|
4161
|
+
"The port that is used for HTTP transfers. If a cipher is enabled,\
|
|
4162
|
+
\ the default is 443; otherwise, the default is 80."
|
|
4163
|
+
example: 443
|
|
4164
|
+
https_fallback_port:
|
|
4165
|
+
type: integer
|
|
4166
|
+
description:
|
|
4167
|
+
"The port that is used for HTTPS transfers. If a cipher is\
|
|
4168
|
+
\ enabled, the default is 443; otherwise, the default is 80."
|
|
4169
|
+
example: 443
|
|
4170
|
+
rate_policy_allowed:
|
|
4171
|
+
type: string
|
|
4172
|
+
description:
|
|
4173
|
+
The most aggressive rate policy that is allowed for the transfer.
|
|
4174
|
+
See "rate_policy" for values.
|
|
4175
|
+
example: high
|
|
4176
|
+
rate_policy:
|
|
4177
|
+
type: string
|
|
4178
|
+
description:
|
|
4179
|
+
"The congestion control behavior to use when sharing bandwidth.\
|
|
4180
|
+
\ Allowed values: high: When sharing bandwidth, transfer at twice the\
|
|
4181
|
+
\ rate of a transfer using a fair policy. fair (default value): Share\
|
|
4182
|
+
\ bandwidth equally with other traffic. low: Use only un-utilized bandwidth.\
|
|
4183
|
+
\ fixed: Transfer at the target rate, regardless of the actual network\
|
|
4184
|
+
\ capacity. Do not share bandwidth. The fixed policy can decrease transfer\
|
|
4185
|
+
\ performance and cause problems on the target storage."
|
|
4186
|
+
example: fair
|
|
4187
|
+
target_rate_kbps:
|
|
4188
|
+
type: integer
|
|
4189
|
+
description:
|
|
4190
|
+
"The desired speed of the transfer, in Kbps. If there is competing\
|
|
4191
|
+
\ network traffic, FASP shares this bandwidth, depending on the \"rate_policy\"\
|
|
4192
|
+
. Default is set on the server in the configuration file (aspera.conf).\
|
|
4193
|
+
\ Will respect both local- and server-side target rate caps if set. Must\
|
|
4194
|
+
\ be provided when you set a value for \"target_rate_cap_kbps\"."
|
|
4195
|
+
example: 10000
|
|
4196
|
+
target_rate_cap_kbps:
|
|
4197
|
+
type: integer
|
|
4198
|
+
description: "Upper limit of target rate, in Kbps. Default: no limit"
|
|
4199
|
+
example: 12000
|
|
4200
|
+
tags:
|
|
4201
|
+
$ref: "#/components/schemas/transferRequestAsperaTags"
|
|
4202
|
+
aspera_connect_settings:
|
|
4203
|
+
type: string
|
|
4204
|
+
description: "For more information on Connect settings, see Transfer Specifications."
|
|
4205
|
+
token-paths:
|
|
4206
|
+
type: object
|
|
4207
|
+
properties:
|
|
4208
|
+
source:
|
|
4209
|
+
type: string
|
|
4210
|
+
description:
|
|
4211
|
+
"The path for the source file or directory, relative to the\
|
|
4212
|
+
\ source root."
|
|
4213
|
+
destination:
|
|
4214
|
+
type: string
|
|
4215
|
+
description:
|
|
4216
|
+
"Destination path for the file or directory being transferred,\
|
|
4217
|
+
\ relative to the destination root."
|
|
4218
|
+
description: "For uploads and downloads, a source must be included in each path. The destination is optional only when a “destination_root” is provided. The “source_root” is always optional."
|
|
4219
|
+
files-download_setup-post-200:
|
|
4220
|
+
type: object
|
|
4221
|
+
properties:
|
|
4222
|
+
transfer_specs:
|
|
4223
|
+
type: array
|
|
4224
|
+
description:
|
|
4225
|
+
An array of transfer specifications that are allowed by the
|
|
4226
|
+
specified tokens.
|
|
4227
|
+
items:
|
|
4228
|
+
$ref: "#/components/schemas/token-transfer-spec"
|
|
4229
|
+
token-transfer-spec:
|
|
4230
|
+
type: object
|
|
4231
|
+
properties:
|
|
4232
|
+
transfer_spec:
|
|
4233
|
+
$ref: "#/components/schemas/token-transfer-spec-body"
|
|
4234
|
+
token-transfer-spec-body:
|
|
4235
|
+
type: object
|
|
4236
|
+
properties:
|
|
4237
|
+
paths:
|
|
4238
|
+
type: array
|
|
4239
|
+
description:
|
|
4240
|
+
"Array of JSON objects containing source and, if specified,\
|
|
4241
|
+
\ destination paths."
|
|
4242
|
+
items:
|
|
4243
|
+
$ref: "#/components/schemas/paths"
|
|
4244
|
+
source_root:
|
|
4245
|
+
type: string
|
|
4246
|
+
description: The source root directory of the files.
|
|
4247
|
+
example: /Users/aspera
|
|
4248
|
+
destination_root:
|
|
4249
|
+
type: string
|
|
4250
|
+
description: The destination root directory.
|
|
4251
|
+
example: /projects/images
|
|
4252
|
+
token:
|
|
4253
|
+
type: string
|
|
4254
|
+
description: The token string.
|
|
4255
|
+
example: ATB2_ACsjPbserJSER32u-FHp6BsERNE3834UgE_2BTA
|
|
4256
|
+
direction:
|
|
4257
|
+
type: string
|
|
4258
|
+
description:
|
|
4259
|
+
"For downloads, the value is receive. For uploads, the value\
|
|
4260
|
+
\ is send."
|
|
4261
|
+
cipher:
|
|
4262
|
+
type: string
|
|
4263
|
+
description:
|
|
4264
|
+
The weakest cipher that is allowed for the transfer. Value
|
|
4265
|
+
can be "none" or "aes-128".
|
|
4266
|
+
example: aes-128
|
|
4267
|
+
tags:
|
|
4268
|
+
$ref: "#/components/schemas/transferRequestAsperaTags"
|
|
4269
|
+
rate_policy_allowed:
|
|
4270
|
+
type: string
|
|
4271
|
+
description:
|
|
4272
|
+
The most aggressive rate policy that is allowed for the transfer.
|
|
4273
|
+
See rate_policy for values.
|
|
4274
|
+
example: high
|
|
4275
|
+
rate_policy:
|
|
4276
|
+
type: string
|
|
4277
|
+
description:
|
|
4278
|
+
"The congestion control behavior to use when sharing bandwidth.\
|
|
4279
|
+
\ Allowed values: high: When sharing bandwidth, transfer at twice the\
|
|
4280
|
+
\ rate of a transfer using a fair policy. fair (default value): Share\
|
|
4281
|
+
\ bandwidth equally with other traffic. low: Use only un-utilized bandwidth.\
|
|
4282
|
+
\ fixed: Transfer at the target rate, regardless of the actual network\
|
|
4283
|
+
\ capacity. Do not share bandwidth. The fixed policy can decrease transfer\
|
|
4284
|
+
\ performance and cause problems on the target storage."
|
|
4285
|
+
example: fair
|
|
4286
|
+
target_rate_kbps:
|
|
4287
|
+
type: integer
|
|
4288
|
+
description: "The desired speed of the transfer, in Kbps."
|
|
4289
|
+
example: 10000
|
|
4290
|
+
min_rate_kbps:
|
|
4291
|
+
type: integer
|
|
4292
|
+
description: "The minimum transfer rate, in Kbps."
|
|
4293
|
+
example: 0
|
|
4294
|
+
remote_host:
|
|
4295
|
+
type: string
|
|
4296
|
+
description: IP or fully qualified domain name of the remote server
|
|
4297
|
+
example: 10.0.0.1
|
|
4298
|
+
remote_user:
|
|
4299
|
+
type: string
|
|
4300
|
+
description:
|
|
4301
|
+
"The system user that authenticates the SSH connection for\
|
|
4302
|
+
\ the transfer, derived from the request authentication method."
|
|
4303
|
+
example: xfer
|
|
4304
|
+
sshfp:
|
|
4305
|
+
type: string
|
|
4306
|
+
description:
|
|
4307
|
+
"The node's SSH fingerprint, if it is configured in the node's\
|
|
4308
|
+
\ aspera.conf."
|
|
4309
|
+
ssh_port:
|
|
4310
|
+
type: integer
|
|
4311
|
+
description:
|
|
4312
|
+
"The server's TCP port that is listening for SSH connections.\
|
|
4313
|
+
\ FASP® initiates transfers through SSH. Default value: 33001"
|
|
4314
|
+
example: 22
|
|
4315
|
+
fasp_port:
|
|
4316
|
+
type: integer
|
|
4317
|
+
description:
|
|
4318
|
+
"The UDP port for FASP to use. The default value works for\
|
|
4319
|
+
\ most situations; however, it can be changed to satisfy firewall requirements.\
|
|
4320
|
+
\ Default: 33001"
|
|
4321
|
+
example: 33001
|
|
4322
|
+
http_fallback:
|
|
4323
|
+
type: boolean
|
|
4324
|
+
description:
|
|
4325
|
+
"If set to true, the transfer attempts an HTTP or HTTPS transfer\
|
|
4326
|
+
\ if FASP transfer errors. Default: false."
|
|
4327
|
+
example: false
|
|
4328
|
+
https_fallback_port:
|
|
4329
|
+
type: integer
|
|
4330
|
+
description:
|
|
4331
|
+
"The port that is used for HTTPS transfers. If a cipher is\
|
|
4332
|
+
\ enabled, the default is 443; otherwise, the default is 80."
|
|
4333
|
+
example: 443
|
|
4334
|
+
description: The transfer specification.
|
|
4335
|
+
transferRequestAsperaTags:
|
|
4336
|
+
type: object
|
|
4337
|
+
properties:
|
|
4338
|
+
xfer_retry:
|
|
4339
|
+
type: integer
|
|
4340
|
+
description: Override for ascp's --retry-timeout option
|
|
4341
|
+
usage_id:
|
|
4342
|
+
type: string
|
|
4343
|
+
description:
|
|
4344
|
+
Assign a usage ID to the transfer in order to query transfer
|
|
4345
|
+
usage (bytes transferred) with the /usage endpoint.
|
|
4346
|
+
files-info-post-request:
|
|
4347
|
+
required:
|
|
4348
|
+
- paths
|
|
4349
|
+
type: object
|
|
4350
|
+
properties:
|
|
4351
|
+
paths:
|
|
4352
|
+
type: array
|
|
4353
|
+
description: A JSON object that specifies an array of paths.
|
|
4354
|
+
items:
|
|
4355
|
+
$ref: "#/components/schemas/files-info-request-path"
|
|
4356
|
+
files-info-request-path:
|
|
4357
|
+
required:
|
|
4358
|
+
- path
|
|
4359
|
+
type: object
|
|
4360
|
+
properties:
|
|
4361
|
+
path:
|
|
4362
|
+
type: string
|
|
4363
|
+
description: The path name. Metadata is returned for each path.
|
|
4364
|
+
example: /documents/user/file1.txt
|
|
4365
|
+
files-info-post-200:
|
|
4366
|
+
type: object
|
|
4367
|
+
properties:
|
|
4368
|
+
paths:
|
|
4369
|
+
type: array
|
|
4370
|
+
description: The array of paths
|
|
4371
|
+
example:
|
|
4372
|
+
- path: /Users/aspera/Documents
|
|
4373
|
+
basename: Documents
|
|
4374
|
+
type: directory
|
|
4375
|
+
size: 0
|
|
4376
|
+
mtime: 2018-03-01T22:56:14Z
|
|
4377
|
+
permissions:
|
|
4378
|
+
- name: view
|
|
4379
|
+
- name: edit
|
|
4380
|
+
- name: delete
|
|
4381
|
+
- path: /Users/aspera/Documents/sample.txt
|
|
4382
|
+
basename: sample.txt
|
|
4383
|
+
type: file
|
|
4384
|
+
size: 445
|
|
4385
|
+
mtime: 2018-02-09T23:08:46Z
|
|
4386
|
+
permissions:
|
|
4387
|
+
- name: view
|
|
4388
|
+
- name: edit
|
|
4389
|
+
- name: delete
|
|
4390
|
+
- path: /Users/aspera/Documents/symlink1
|
|
4391
|
+
basename: symlink1
|
|
4392
|
+
type: file
|
|
4393
|
+
size: 445
|
|
4394
|
+
mtime: 2018-02-09T23:08:46Z
|
|
4395
|
+
permissions:
|
|
4396
|
+
- name: view
|
|
4397
|
+
- name: edit
|
|
4398
|
+
- name: delete
|
|
4399
|
+
- path: /Users/aspera/Documents/missing_file.txt
|
|
4400
|
+
error:
|
|
4401
|
+
code: 404
|
|
4402
|
+
reason: Not Found
|
|
4403
|
+
user_message: Path not found
|
|
4404
|
+
items:
|
|
4405
|
+
$ref: "#/components/schemas/files-info-metadata"
|
|
4406
|
+
files-info-metadata:
|
|
4407
|
+
type: object
|
|
4408
|
+
properties:
|
|
4409
|
+
path:
|
|
4410
|
+
type: string
|
|
4411
|
+
description: The pathname.
|
|
4412
|
+
example: /documents/user/file1.txt
|
|
4413
|
+
basename:
|
|
4414
|
+
type: string
|
|
4415
|
+
description: The base name of the item.
|
|
4416
|
+
example: file1.txt
|
|
4417
|
+
type:
|
|
4418
|
+
type: string
|
|
4419
|
+
description:
|
|
4420
|
+
"The type of item: \"file\" (for files and symbolic links)\
|
|
4421
|
+
\ or \"directory\""
|
|
4422
|
+
example: file
|
|
4423
|
+
size:
|
|
4424
|
+
type: integer
|
|
4425
|
+
description: The size of the file. Size is not reported for directories.
|
|
4426
|
+
example: 455
|
|
4427
|
+
mtime:
|
|
4428
|
+
type: string
|
|
4429
|
+
description: The modification time of the file in ISO format.
|
|
4430
|
+
example: 2018-02-09T23:08:46Z
|
|
4431
|
+
permissions:
|
|
4432
|
+
type: array
|
|
4433
|
+
description:
|
|
4434
|
+
"An array of permissions that the user has for the item. Permissions\
|
|
4435
|
+
\ values are \"view\", \"edit\", and \"delete\"."
|
|
4436
|
+
items:
|
|
4437
|
+
$ref: "#/components/schemas/gen3-permissions"
|
|
4438
|
+
error:
|
|
4439
|
+
$ref: "#/components/schemas/files-delete-error"
|
|
4440
|
+
gen3-permissions:
|
|
4441
|
+
type: object
|
|
4442
|
+
properties:
|
|
4443
|
+
name:
|
|
4444
|
+
type: string
|
|
4445
|
+
description:
|
|
4446
|
+
"The permission granted to the user for the file. Value is\
|
|
4447
|
+
\ \"view\", \"edit\", or \"delete\"."
|
|
4448
|
+
example: view
|
|
4449
|
+
files-rename-post-request:
|
|
4450
|
+
required:
|
|
4451
|
+
- paths
|
|
4452
|
+
type: object
|
|
4453
|
+
properties:
|
|
4454
|
+
paths:
|
|
4455
|
+
type: array
|
|
4456
|
+
description:
|
|
4457
|
+
"A JSON array of the files, symbolic links, and directories\
|
|
4458
|
+
\ to rename."
|
|
4459
|
+
example:
|
|
4460
|
+
- path: /full/path/to/parent/dir
|
|
4461
|
+
source: old_dir_name
|
|
4462
|
+
destination: new_dir_name
|
|
4463
|
+
- path: /full/path/to/parent/dir
|
|
4464
|
+
source: old_file_name
|
|
4465
|
+
destination: new_file_name
|
|
4466
|
+
items:
|
|
4467
|
+
$ref: "#/components/schemas/files-rename-post-path"
|
|
4468
|
+
files-rename-post-path:
|
|
4469
|
+
required:
|
|
4470
|
+
- destination
|
|
4471
|
+
- path
|
|
4472
|
+
- source
|
|
4473
|
+
type: object
|
|
4474
|
+
properties:
|
|
4475
|
+
path:
|
|
4476
|
+
type: string
|
|
4477
|
+
description:
|
|
4478
|
+
"The full path to the parent directory of the file, symbolic\
|
|
4479
|
+
\ link, or directory to rename."
|
|
4480
|
+
example: /documents/folder/
|
|
4481
|
+
source:
|
|
4482
|
+
type: string
|
|
4483
|
+
description: "The current name of the file, symbolic link, or directory."
|
|
4484
|
+
example: old_file_name.txt
|
|
4485
|
+
destination:
|
|
4486
|
+
type: string
|
|
4487
|
+
description: "The new name for the file, symbolic link, or directory."
|
|
4488
|
+
example: new_file_name.txt
|
|
4489
|
+
files-rename-post-200:
|
|
4490
|
+
type: object
|
|
4491
|
+
properties:
|
|
4492
|
+
paths:
|
|
4493
|
+
type: array
|
|
4494
|
+
description: "A JSON array of the renamed files, symbolic links, and directories."
|
|
4495
|
+
items:
|
|
4496
|
+
$ref: "#/components/schemas/files-rename-response-path"
|
|
4497
|
+
files-rename-response-path:
|
|
4498
|
+
type: object
|
|
4499
|
+
properties:
|
|
4500
|
+
path:
|
|
4501
|
+
type: string
|
|
4502
|
+
description:
|
|
4503
|
+
"The full path to the parent directory of the file, symbolic\
|
|
4504
|
+
\ link, or directory to rename."
|
|
4505
|
+
example: /documents/folder/
|
|
4506
|
+
source:
|
|
4507
|
+
type: string
|
|
4508
|
+
description: "The current name of the file, symbolic link, or directory."
|
|
4509
|
+
example: old_file_name.txt
|
|
4510
|
+
destination:
|
|
4511
|
+
type: string
|
|
4512
|
+
description: "The new name for the file, symbolic link, or directory."
|
|
4513
|
+
example: new_file_name.txt
|
|
4514
|
+
error:
|
|
4515
|
+
$ref: "#/components/schemas/files-delete-error"
|
|
4516
|
+
files-upload_setup-post-request:
|
|
4517
|
+
required:
|
|
4518
|
+
- transfer_requests
|
|
4519
|
+
type: object
|
|
4520
|
+
properties:
|
|
4521
|
+
transfer_requests:
|
|
4522
|
+
type: array
|
|
4523
|
+
description:
|
|
4524
|
+
"The JSON object that contains the transfer request information.\
|
|
4525
|
+
\ Multiple transfer requests can be included as comma-delimited \"transfer_request\"\
|
|
4526
|
+
\ objects, if needed."
|
|
4527
|
+
items:
|
|
4528
|
+
$ref: "#/components/schemas/token-transfer-request"
|
|
4529
|
+
files-upload_setup-post-200:
|
|
4530
|
+
type: object
|
|
4531
|
+
properties:
|
|
4532
|
+
transfer_specs:
|
|
4533
|
+
type: array
|
|
4534
|
+
description:
|
|
4535
|
+
An array of transfer specifications that are allowed by the
|
|
4536
|
+
specified tokens.
|
|
4537
|
+
items:
|
|
4538
|
+
$ref: "#/components/schemas/token-transfer-spec"
|
|
4539
|
+
paths:
|
|
4540
|
+
required:
|
|
4541
|
+
- source
|
|
4542
|
+
type: object
|
|
4543
|
+
properties:
|
|
4544
|
+
source:
|
|
4545
|
+
type: string
|
|
4546
|
+
description:
|
|
4547
|
+
"The path for the source file or directory, relative to the\
|
|
4548
|
+
\ source root."
|
|
4549
|
+
destination:
|
|
4550
|
+
type: string
|
|
4551
|
+
description:
|
|
4552
|
+
"Destination path for the file or directory that is being transferred,\
|
|
4553
|
+
\ relative to the destination root. If no destination is specified, the\
|
|
4554
|
+
\ content is transferred to the destination root."
|
|
4555
|
+
description: "The source paths, and optional destination paths, for the transfer."
|
|
4556
|
+
space-post-request:
|
|
4557
|
+
required:
|
|
4558
|
+
- paths
|
|
4559
|
+
type: object
|
|
4560
|
+
properties:
|
|
4561
|
+
paths:
|
|
4562
|
+
type: array
|
|
4563
|
+
description: An array of paths.
|
|
4564
|
+
items:
|
|
4565
|
+
$ref: "#/components/schemas/space-post-request-path"
|
|
4566
|
+
space-post-request-path:
|
|
4567
|
+
required:
|
|
4568
|
+
- path
|
|
4569
|
+
type: object
|
|
4570
|
+
properties:
|
|
4571
|
+
path:
|
|
4572
|
+
type: string
|
|
4573
|
+
description:
|
|
4574
|
+
The path name. Space information is returned for the mount
|
|
4575
|
+
point of the path.
|
|
4576
|
+
space-post-200:
|
|
4577
|
+
type: object
|
|
4578
|
+
properties:
|
|
4579
|
+
paths:
|
|
4580
|
+
type: array
|
|
4581
|
+
items:
|
|
4582
|
+
$ref: "#/components/schemas/space-paths"
|
|
4583
|
+
space-paths:
|
|
4584
|
+
type: object
|
|
4585
|
+
properties:
|
|
4586
|
+
path:
|
|
4587
|
+
type: string
|
|
4588
|
+
description: The path name that was queried.
|
|
4589
|
+
bytes_total:
|
|
4590
|
+
type: integer
|
|
4591
|
+
description: The total space in bytes of the mount point of the path.
|
|
4592
|
+
bytes_free:
|
|
4593
|
+
type: integer
|
|
4594
|
+
description: The free space in bytes of the mount point of the path.
|
|
4595
|
+
percent_free:
|
|
4596
|
+
type: number
|
|
4597
|
+
description: The percentage of the total space that is available.
|
|
4598
|
+
error:
|
|
4599
|
+
type: object
|
|
4600
|
+
properties:
|
|
4601
|
+
error:
|
|
4602
|
+
$ref: "#/components/schemas/errorBody"
|
|
4603
|
+
description: The error response object.
|
|
4604
|
+
errorBody:
|
|
4605
|
+
type: object
|
|
4606
|
+
properties:
|
|
4607
|
+
code:
|
|
4608
|
+
type: integer
|
|
4609
|
+
description: The HTTP error code.
|
|
4610
|
+
reason:
|
|
4611
|
+
type: string
|
|
4612
|
+
description: The HTTP error message.
|
|
4613
|
+
user_message:
|
|
4614
|
+
type: string
|
|
4615
|
+
description: A longer error description.
|
|
4616
|
+
description: The contents of the error response object.
|
|
4617
|
+
responses:
|
|
4618
|
+
BadRequest:
|
|
4619
|
+
description: Bad request - invalid parameters
|
|
4620
|
+
content:
|
|
4621
|
+
application/json:
|
|
4622
|
+
schema:
|
|
4623
|
+
$ref: "#/components/schemas/Error"
|
|
4624
|
+
example:
|
|
4625
|
+
error:
|
|
4626
|
+
user_message: Invalid request parameters
|
|
4627
|
+
Unauthorized:
|
|
4628
|
+
description: Unauthorized - authentication required
|
|
4629
|
+
content:
|
|
4630
|
+
application/json:
|
|
4631
|
+
schema:
|
|
4632
|
+
$ref: "#/components/schemas/Error"
|
|
4633
|
+
example:
|
|
4634
|
+
error:
|
|
4635
|
+
user_message: Authentication credentials were not provided or are invalid
|
|
4636
|
+
Forbidden:
|
|
4637
|
+
description: Forbidden - insufficient permissions
|
|
4638
|
+
content:
|
|
4639
|
+
application/json:
|
|
4640
|
+
schema:
|
|
4641
|
+
$ref: "#/components/schemas/Error"
|
|
4642
|
+
example:
|
|
4643
|
+
error:
|
|
4644
|
+
user_message: You do not have permission to perform this action
|
|
4645
|
+
NotFound:
|
|
4646
|
+
description: Not found - resource does not exist
|
|
4647
|
+
content:
|
|
4648
|
+
application/json:
|
|
4649
|
+
schema:
|
|
4650
|
+
$ref: "#/components/schemas/Error"
|
|
4651
|
+
example:
|
|
4652
|
+
error:
|
|
4653
|
+
user_message: The requested resource was not found
|