aspera-cli 4.21.1 → 4.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/BUGS.md +1 -1
  4. data/CHANGELOG.md +52 -22
  5. data/CONTRIBUTING.md +69 -148
  6. data/README.md +929 -668
  7. data/bin/ascli +5 -14
  8. data/bin/asession +1 -3
  9. data/examples/get_proto_file.rb +4 -3
  10. data/examples/proxy.pac +20 -20
  11. data/lib/aspera/agent/base.rb +11 -5
  12. data/lib/aspera/agent/connect.rb +30 -28
  13. data/lib/aspera/agent/{alpha.rb → desktop.rb} +35 -31
  14. data/lib/aspera/agent/direct.rb +141 -121
  15. data/lib/aspera/agent/httpgw.rb +22 -26
  16. data/lib/aspera/agent/node.rb +14 -11
  17. data/lib/aspera/agent/transferd.rb +30 -19
  18. data/lib/aspera/api/alee.rb +1 -1
  19. data/lib/aspera/api/aoc.rb +6 -6
  20. data/lib/aspera/api/cos_node.rb +2 -2
  21. data/lib/aspera/api/httpgw.rb +7 -3
  22. data/lib/aspera/api/node.rb +10 -8
  23. data/lib/aspera/ascmd.rb +3 -3
  24. data/lib/aspera/ascp/installation.rb +53 -72
  25. data/lib/aspera/ascp/management.rb +1 -1
  26. data/lib/aspera/assert.rb +11 -2
  27. data/lib/aspera/cli/error.rb +2 -2
  28. data/lib/aspera/cli/extended_value.rb +46 -21
  29. data/lib/aspera/cli/formatter.rb +55 -48
  30. data/lib/aspera/cli/hints.rb +1 -1
  31. data/lib/aspera/cli/info.rb +1 -0
  32. data/lib/aspera/cli/main.rb +192 -170
  33. data/lib/aspera/cli/manager.rb +18 -18
  34. data/lib/aspera/cli/plugin.rb +23 -20
  35. data/lib/aspera/cli/plugin_factory.rb +1 -1
  36. data/lib/aspera/cli/plugins/alee.rb +1 -1
  37. data/lib/aspera/cli/plugins/aoc.rb +247 -159
  38. data/lib/aspera/cli/plugins/ats.rb +19 -17
  39. data/lib/aspera/cli/plugins/config.rb +76 -113
  40. data/lib/aspera/cli/plugins/console.rb +5 -3
  41. data/lib/aspera/cli/plugins/faspex.rb +39 -35
  42. data/lib/aspera/cli/plugins/faspex5.rb +111 -84
  43. data/lib/aspera/cli/plugins/faspio.rb +13 -1
  44. data/lib/aspera/cli/plugins/httpgw.rb +13 -1
  45. data/lib/aspera/cli/plugins/node.rb +312 -182
  46. data/lib/aspera/cli/plugins/orchestrator.rb +34 -40
  47. data/lib/aspera/cli/plugins/preview.rb +3 -3
  48. data/lib/aspera/cli/plugins/server.rb +6 -6
  49. data/lib/aspera/cli/plugins/shares.rb +5 -5
  50. data/lib/aspera/cli/sync_actions.rb +19 -18
  51. data/lib/aspera/cli/transfer_agent.rb +5 -5
  52. data/lib/aspera/cli/transfer_progress.rb +2 -2
  53. data/lib/aspera/cli/version.rb +1 -1
  54. data/lib/aspera/command_line_builder.rb +116 -95
  55. data/lib/aspera/coverage.rb +8 -5
  56. data/lib/aspera/environment.rb +26 -17
  57. data/lib/aspera/faspex_gw.rb +14 -14
  58. data/lib/aspera/faspex_postproc.rb +10 -11
  59. data/lib/aspera/hash_ext.rb +4 -14
  60. data/lib/aspera/json_rpc.rb +1 -1
  61. data/lib/aspera/keychain/encrypted_hash.rb +47 -34
  62. data/lib/aspera/keychain/factory.rb +41 -0
  63. data/lib/aspera/keychain/hashicorp_vault.rb +71 -0
  64. data/lib/aspera/keychain/macos_security.rb +19 -11
  65. data/lib/aspera/log.rb +28 -34
  66. data/lib/aspera/nagios.rb +6 -6
  67. data/lib/aspera/node_simulator.rb +8 -8
  68. data/lib/aspera/oauth/base.rb +14 -7
  69. data/lib/aspera/oauth/factory.rb +5 -6
  70. data/lib/aspera/oauth/url_json.rb +6 -6
  71. data/lib/aspera/persistency_action_once.rb +6 -4
  72. data/lib/aspera/persistency_folder.rb +2 -2
  73. data/lib/aspera/preview/generator.rb +13 -10
  74. data/lib/aspera/preview/options.rb +16 -16
  75. data/lib/aspera/preview/terminal.rb +4 -4
  76. data/lib/aspera/preview/utils.rb +15 -17
  77. data/lib/aspera/products/connect.rb +35 -1
  78. data/lib/aspera/products/{alpha.rb → desktop.rb} +3 -3
  79. data/lib/aspera/products/transferd.rb +9 -2
  80. data/lib/aspera/proxy_auto_config.rb +2 -2
  81. data/lib/aspera/rest.rb +56 -47
  82. data/lib/aspera/rest_errors_aspera.rb +1 -1
  83. data/lib/aspera/secret_hider.rb +12 -5
  84. data/lib/aspera/ssh.rb +4 -4
  85. data/lib/aspera/temp_file_manager.rb +5 -4
  86. data/lib/aspera/transfer/convert.rb +29 -0
  87. data/lib/aspera/transfer/error_info.rb +66 -66
  88. data/lib/aspera/transfer/parameters.rb +13 -68
  89. data/lib/aspera/transfer/spec.rb +5 -6
  90. data/lib/aspera/transfer/spec.schema.yaml +753 -0
  91. data/lib/aspera/transfer/spec_doc.rb +62 -0
  92. data/lib/aspera/transfer/sync.rb +23 -72
  93. data/lib/aspera/transfer/sync_instance.schema.yaml +13 -0
  94. data/lib/aspera/transfer/sync_session.schema.yaml +79 -0
  95. data/lib/aspera/transfer/uri.rb +6 -6
  96. data/lib/aspera/uri_reader.rb +18 -1
  97. data/lib/aspera/web_auth.rb +1 -1
  98. data/lib/aspera/web_server_simple.rb +53 -44
  99. data.tar.gz.sig +0 -0
  100. metadata +28 -165
  101. metadata.gz.sig +0 -0
  102. data/examples/build_exec +0 -74
  103. data/examples/build_exec_rubyc +0 -40
  104. data/examples/build_package.sh +0 -28
  105. data/lib/aspera/transfer/spec.yaml +0 -718
@@ -0,0 +1,753 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: https://github.com/IBM/aspera-cli/tree/main/lib/aspera/transfer/spec.schema.yaml
3
+ $comment: >-
4
+ The original file is the YAML file.
5
+ `x-` fields documented in command_line_builder.rb
6
+ title: Aspera Transfer Specification
7
+ description: Information defining an Aspera transfer.
8
+ type: object
9
+ required:
10
+ - destination_root
11
+ - direction
12
+ - paths
13
+ - remote_host
14
+ - remote_user
15
+ properties:
16
+ apply_local_docroot:
17
+ description: Apply local docroot to source paths.
18
+ x-agents:
19
+ - direct
20
+ - transferd
21
+ x-cli-switch: true
22
+ cipher:
23
+ description: In transit encryption algorithms.
24
+ enum:
25
+ - none
26
+ - aes-128
27
+ - aes-192
28
+ - aes-256
29
+ - aes-128-cfb
30
+ - aes-192-cfb
31
+ - aes-256-cfb
32
+ - aes-128-gcm
33
+ - aes-192-gcm
34
+ - aes-256-gcm
35
+ default: none
36
+ x-cli-option: "-c"
37
+ x-cli-convert: remove_hyphen
38
+ content_protection:
39
+ description: Enable client-side encryption at rest. (CSEAR, content protection)
40
+ enum:
41
+ - encrypt
42
+ - decrypt
43
+ x-cli-option: "--file-crypt"
44
+ content_protection_password:
45
+ description: "Specifies CSEAR password. (content protection)"
46
+ type: string
47
+ x-cli-envvar: ASPERA_SCP_FILEPASS
48
+ cookie:
49
+ description: Metadata for transfer specified by application
50
+ type: string
51
+ x-cli-envvar: ASPERA_SCP_COOKIE
52
+ create_dir:
53
+ description: Specifies whether to create new directories.
54
+ type: boolean
55
+ x-cli-option: "-d"
56
+ x-cli-switch: true
57
+ delete_before_transfer:
58
+ description: >-
59
+ Before transfer, delete files that exist at the destination but not at the source.
60
+
61
+ The source and destination arguments must be directories that have matching names.
62
+
63
+ Objects on the destination that have the same name but different type or size as objects
64
+ on the source are not deleted.
65
+ x-cli-switch: true
66
+ delete_source: # duplicate of remove_after_transfer ?
67
+ description: Remove SRC files after transfer success
68
+ type: boolean
69
+ x-agents:
70
+ - node
71
+ - direct
72
+ - transferd
73
+ x-cli-option: "--remove-after-transfer"
74
+ x-cli-switch: true
75
+ destination_root:
76
+ description: Destination root directory.
77
+ x-cli-special: true
78
+ destination_root_id:
79
+ description: >-
80
+ The file ID of the destination root directory.
81
+
82
+ Required when using Bearer token auth for the destination node.
83
+ type: string
84
+ x-agents:
85
+ - transferd
86
+ direction:
87
+ description: 'Direction of transfer (on client side)'
88
+ enum:
89
+ - send
90
+ - receive
91
+ x-cli-option: "--mode"
92
+ x-cli-convert:
93
+ receive: recv
94
+ send: send
95
+ exclude_newer_than:
96
+ description: >-
97
+ Exclude files, but not directories, from the transfer if they are newer
98
+ than the specified number of seconds added to the source computer's epoch.
99
+
100
+ e.g. "-86400" for newer than a day back.
101
+ type: string
102
+ exclude_older_than:
103
+ description: >-
104
+ Exclude files, but not directories, from the transfer if they are older
105
+ than the specified number of seconds added to the source computer's epoch.
106
+
107
+ e.g. "-86400" for older than a day back.
108
+ type: string
109
+ fail_bad_filepass:
110
+ description: Fail on bad file decryption passphrase.
111
+ type: boolean
112
+ x-cli-switch: true
113
+ x-agents:
114
+ - direct
115
+ - transferd
116
+ fasp_port:
117
+ description: Specifies fasp (UDP) port.
118
+ type: integer
119
+ default: 33001
120
+ x-cli-option: "-O"
121
+ fasp_proxy:
122
+ description: Proxy for communications between the remote server and the (local) client.
123
+ type: object
124
+ x-agents:
125
+ - transferd
126
+ file_checksum:
127
+ description: "Enable checksum reporting for transferred files by specifying the hash to use."
128
+ enum:
129
+ - sha-512
130
+ - sha-384
131
+ - sha-256
132
+ - sha1
133
+ - md5
134
+ - none
135
+ default: none
136
+ x-agents:
137
+ - node
138
+ - direct
139
+ http_fallback:
140
+ description: When true(1), attempts to perform an HTTP transfer if a FASP transfer cannot be performed.
141
+ type:
142
+ - boolean
143
+ - string
144
+ x-cli-option: "-y"
145
+ x-cli-convert:
146
+ force: F
147
+ true: 1
148
+ false: 0
149
+ http_fallback_port:
150
+ description: Specifies http port when no cipher is used
151
+ type: integer
152
+ x-cli-option: "-t"
153
+ https_fallback_port:
154
+ description: Specifies https port when cipher is used
155
+ type: integer
156
+ x-cli-option: "-t"
157
+ icos:
158
+ description: Configuration parameters for IBM Cloud Object Storage (ICOS).
159
+ type: object
160
+ x-agents:
161
+ - transferd
162
+ lock_min_rate:
163
+ description: "TODO: remove ?"
164
+ type: boolean
165
+ x-agents:
166
+ - connect
167
+ lock_min_rate_kbps:
168
+ description: >-
169
+ If true, lock the minimum transfer rate to the value set for min_rate_kbps.
170
+
171
+ If false, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.
172
+ type: boolean
173
+ x-agents:
174
+ - transferd
175
+ - connect
176
+ lock_rate_policy:
177
+ description: If true, lock the rate policy to the default value.
178
+ type: boolean
179
+ x-agents:
180
+ - transferd
181
+ - connect
182
+ lock_target_rate:
183
+ description: "TODO: remove ?"
184
+ type: boolean
185
+ x-agents:
186
+ - connect
187
+ lock_target_rate_kbps:
188
+ description: >-
189
+ If true, lock the target transfer rate to the default value set for target_rate_kbps.
190
+
191
+ If false, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.
192
+ type: boolean
193
+ x-agents:
194
+ - transferd
195
+ - connect
196
+ min_rate_cap_kbps:
197
+ description: >-
198
+ The highest minimum rate that an incoming transfer can request, in kilobits per second.
199
+
200
+ Client minimum rate requests that exceed the minimum rate cap are ignored.
201
+
202
+ The default value of unlimited applies no cap to the minimum rate. (Default: 0)
203
+ type: integer
204
+ x-agents:
205
+ - connect
206
+ - transferd
207
+ move_after_transfer:
208
+ description: >-
209
+ The relative path to which the files will be moved after the transfer at the source side.
210
+ Available as of 3.8.0.
211
+ type: string
212
+ x-agents:
213
+ - direct
214
+ - node
215
+ - transferd
216
+ multi_session:
217
+ description: >-
218
+ Use multi-session transfer. max 128.
219
+
220
+ Each participant on one host needs an independent UDP (-O) port.
221
+
222
+ Large files are split between sessions only when transferring with resume_policy=none.
223
+ type: integer
224
+ x-cli-option: "-C"
225
+ x-cli-special: true
226
+ multi_session_threshold:
227
+ description: >-
228
+ Split files across multiple ascp sessions if their size in bytes is greater than
229
+ or equal to the specified value.
230
+
231
+ (0=no file is split)
232
+ type: integer
233
+ x-agents:
234
+ - direct
235
+ - node
236
+ - transferd
237
+ overwrite:
238
+ description: >-
239
+ Overwrite files at the destination with source files of the same name based
240
+ on the policy:
241
+
242
+ - always – Always overwrite the file.
243
+
244
+ - never – Never overwrite the file.
245
+ If the destination contains partial files that are older or the same
246
+ as the source files and resume is enabled, the partial files resume transfer.
247
+ Partial files with checksums or sizes that differ from the source files
248
+ are not overwritten.
249
+
250
+ - diff – Overwrite the file if it is different from the source,
251
+ depending on the compare method (default is size).
252
+ If the destination is object storage, diff has the same effect as always.
253
+ If resume is not enabled, partial files are overwritten if they are different
254
+ from the source, otherwise they are skipped.
255
+ If resume is enabled, only partial files with different sizes or checksums
256
+ from the source are overwritten; otherwise, files resume.
257
+
258
+ - diff+older – Overwrite the file if it is older and different from the source,
259
+ depending on the compare method (default is size).
260
+ If resume is not enabled, partial files are overwritten if they are older
261
+ and different from the source, otherwise they are skipped.
262
+ If resume is enabled, only partial files that are different and older than
263
+ the source are overwritten, otherwise they are resumed.
264
+
265
+ - older – Overwrite the file if its timestamp is older than the source timestamp.
266
+
267
+ If you set an overwrite policy of diff or diff+older, difference is determined
268
+ by the value set for resume_policy:
269
+
270
+ "none" - the source and destination files are always considered different and
271
+ the destination file is always overwritten
272
+
273
+ "attributes" - the source and destination files are compared based on file attributes
274
+
275
+ "sparse_checksum" - the source and destination files are compared based on sparse checksums, (currently file size)
276
+
277
+ "full_checksum" - the source and destination files are compared based on full checksums
278
+ default: diff
279
+ enum:
280
+ - never
281
+ - always
282
+ - diff
283
+ - older
284
+ - diff+older
285
+ password:
286
+ description: >-
287
+ Password for local Windows user when transfer user associated with node api user is not
288
+ the same as the one running asperanoded.
289
+
290
+ Allows impersonating the transfer user and have access to resources (e.g. network shares).
291
+
292
+ Windows only, node api only.
293
+ type: string
294
+ x-agents:
295
+ - node
296
+ paths:
297
+ description: Array of path to the source (required) and a path to the destination (optional).
298
+ type: array
299
+ x-cli-special: true
300
+ precalculate_job_size:
301
+ description: Specifies whether to precalculate the job size.
302
+ type: boolean
303
+ x-cli-switch: true
304
+ preserve_access_time:
305
+ description: >-
306
+ Preserve the source-file access timestamps at the destination.
307
+
308
+ Because source access times are updated by the transfer operation,
309
+ the timestamp that is preserved is the one just before to the transfer.
310
+ x-cli-switch: true
311
+ preserve_acls:
312
+ description: "Preserve access control lists."
313
+ enum:
314
+ - none
315
+ - native
316
+ - metafile
317
+ default: none
318
+ x-agents:
319
+ - direct
320
+ - transferd
321
+ preserve_creation_time:
322
+ description: >-
323
+ (Windows only) Preserve source-file creation timestamps at the destination.
324
+
325
+ Only Windows systems retain information about creation time.
326
+
327
+ If the destination is not a Windows computer, this option is ignored.
328
+ x-cli-switch: true
329
+ preserve_extended_attrs:
330
+ description: "Preserve the extended attributes."
331
+ enum:
332
+ - none
333
+ - native
334
+ - metafile
335
+ default: none
336
+ x-agents:
337
+ - transferd
338
+ x-cli-option: "--preserve-xattrs"
339
+ preserve_file_owner_gid:
340
+ description: Preserve the group ID for a file owner
341
+ type: boolean
342
+ x-agents:
343
+ - transferd
344
+ - direct
345
+ x-cli-switch: true
346
+ preserve_file_owner_uid:
347
+ description: Preserve the user ID for a file owner
348
+ type: boolean
349
+ x-agents:
350
+ - transferd
351
+ - direct
352
+ x-cli-switch: true
353
+ preserve_modification_time:
354
+ description: >-
355
+ Set the modification time, the last time a file or directory was modified (written),
356
+ of a transferred file to the modification of the source file or directory.
357
+
358
+ Preserve source-file modification timestamps at the destination.
359
+ x-cli-switch: true
360
+ preserve_remote_acls:
361
+ description: "Preserve remote access control lists."
362
+ enum:
363
+ - none
364
+ - native
365
+ - metafile
366
+ default: none
367
+ x-agents:
368
+ - transferd
369
+ - direct
370
+ x-cli-option: "--remote-preserve-acls"
371
+ preserve_remote_extended_attrs:
372
+ description: "Preserve remote extended attributes."
373
+ enum:
374
+ - none
375
+ - native
376
+ - metafile
377
+ default: none
378
+ x-agents:
379
+ - transferd
380
+ - direct
381
+ x-cli-option: "--remote-preserve-xattrs"
382
+ preserve_source_access_time:
383
+ description: Preserve the time logged for when the source file was accessed
384
+ type: boolean
385
+ x-agents:
386
+ - transferd
387
+ - direct
388
+ x-cli-switch: true
389
+ preserve_times:
390
+ description: Preserve file timestamps.
391
+ type: boolean
392
+ x-agents:
393
+ - transferd
394
+ - node
395
+ - direct
396
+ x-cli-option: "-p"
397
+ rate_policy:
398
+ description: >-
399
+ The transfer rate policy to use when sharing bandwidth.
400
+ Allowable values:
401
+
402
+ - high : When sharing bandwidth, transfer at twice the rate of a transfer using a fair policy.
403
+
404
+ - fair : (Default) Share bandwidth equally with other traffic.
405
+
406
+ - low : Use only unused bandwidth.
407
+
408
+ - fixed : Transfer at the target rate, regardless of the actual network capacity.
409
+ Do not share bandwidth.
410
+ Aspera recommends that you do not use this setting except under special circumstances,
411
+ otherwise the destination storage can be damaged.
412
+ enum:
413
+ - low
414
+ - fair
415
+ - high
416
+ - fixed
417
+ x-cli-option: "--policy"
418
+ remote_access_key:
419
+ description: The access key ID of the access key that was used to construct the bearer token that is used to authenticate to the remote node.
420
+ type: string
421
+ x-agents:
422
+ - transferd
423
+ remote_host:
424
+ description: IP or fully qualified domain name of the remote server
425
+ x-cli-option: "--host"
426
+ remote_password:
427
+ description: SSH session password
428
+ x-cli-envvar: ASPERA_SCP_PASS
429
+ remote_user:
430
+ description: Remote user. Default value is "xfer" on node or connect.
431
+ x-cli-option: "--user"
432
+ remove_after_transfer:
433
+ description: Remove SRC files after transfer success
434
+ type: boolean
435
+ x-agents:
436
+ - direct
437
+ - node
438
+ - transferd
439
+ x-cli-switch: true
440
+ remove_empty_directories:
441
+ description: Specifies whether to remove empty directories.
442
+ type: boolean
443
+ x-agents:
444
+ - direct
445
+ - node
446
+ - transferd
447
+ x-cli-switch: true
448
+ remove_empty_source_dir:
449
+ description: Remove empty source subdirectories and remove the source directory itself, if empty.
450
+ type: boolean
451
+ x-agents:
452
+ - transferd
453
+ remove_empty_source_directory:
454
+ description: Remove empty source subdirectories and remove the source directory itself, if empty.
455
+ type: boolean
456
+ x-agents:
457
+ - direct
458
+ x-cli-switch: true
459
+ remove_skipped:
460
+ description: Must also have remove_after_transfer set to true, Defaults to false, if true, skipped files will be removed as well.
461
+ type: boolean
462
+ x-agents:
463
+ - direct
464
+ - connect
465
+ - node
466
+ x-cli-switch: true
467
+ proxy:
468
+ description: >-
469
+ Specify the address of the Aspera high-speed proxy server.
470
+
471
+ dnat(s)://[user[:password]@]server:port
472
+
473
+ Default ports for DNAT and DNATS protocols are 9091 and 9092.
474
+
475
+ Password, if specified here, overrides the value of environment variable ASPERA_PROXY_PASS.
476
+ x-agents:
477
+ - direct
478
+ - noded
479
+ resume_policy:
480
+ description: >-
481
+ If a transfer is interrupted or fails to finish,
482
+ this policy directs the transfer to resume without retransferring the files.
483
+ Allowable values:
484
+
485
+ - none : Always re-transfer the entire file
486
+
487
+ - attrs : Compare file attributes and resume if they match, and re-transfer if they do not
488
+
489
+ - sparse_csum : Compare file attributes and the sparse file checksums; resume if they match, and re-transfer if they do not
490
+
491
+ - full_csum : Compare file attributes and the full file checksums; resume if they match, and re-transfer if they do not.
492
+
493
+ Note: transferd uses values: attributes, sparse_checksum, full_checksum.
494
+ default: faspmgr:none;other:sparse_csum
495
+ enum:
496
+ - none
497
+ - attrs
498
+ - sparse_csum
499
+ - full_csum
500
+ x-cli-option: "-k"
501
+ x-cli-convert:
502
+ none: 0
503
+ attrs: 1
504
+ sparse_csum: 2
505
+ full_csum: 3
506
+ retry_duration:
507
+ description: Specifies how long to wait before retrying transfer. (e.g. "5min")
508
+ $comment: "TODO: check this."
509
+ type:
510
+ - integer
511
+ - string
512
+ x-agents:
513
+ - transferd
514
+ save_before_overwrite:
515
+ description: >-
516
+ If a transfer would result in an existing file <filename>.<ext> being overwritten,
517
+ move that file to <filename>.yyyy.mm.dd.hh.mm.ss.index.<ext>
518
+ (where index is set to 1 at the beginning of each new second and
519
+ incremented for each file saved in this manner during the same second) in the same directory
520
+ before writing the new file.
521
+
522
+ File attributes are maintained in the renamed file.
523
+ x-cli-switch: true
524
+ x-agents:
525
+ - direct
526
+ - node
527
+ - transferd
528
+ skip_duplicate_check:
529
+ description: Don't check for duplicate files at the destination.
530
+ type: boolean
531
+ x-agents:
532
+ - transferd
533
+ - direct
534
+ x-cli-option: "--skip-dir-traversal-dupes"
535
+ x-cli-switch: true
536
+ skip_special_files:
537
+ description: >-
538
+ All assets other than files, directories and symbolic links are considered special.
539
+ A transfer will fail if the user attempts to transfer special assets.
540
+ If true, ascp skips special assets and proceeds with the transfer of all other assets.
541
+ type: boolean
542
+ x-agents:
543
+ - transferd
544
+ - direct
545
+ x-cli-switch: true
546
+ source_root:
547
+ description: >-
548
+ Path to be prepended to each source path.
549
+
550
+ This is either a conventional path or it can be a URI but only if there is no root defined.
551
+ x-cli-option: "--source-prefix64"
552
+ x-cli-convert: base64
553
+ source_root_id:
554
+ description: >-
555
+ The file ID of the source root directory.
556
+ Required when using Bearer token auth for the source node.
557
+ type: string
558
+ x-agents:
559
+ - transferd
560
+ - node
561
+ src_base:
562
+ description: >-
563
+ Specify the prefix to be stripped off from each source object.
564
+
565
+ The remaining portion of the source path is kept intact at the destination.
566
+
567
+ Special care must be taken when used with cloud storage.
568
+ x-agents:
569
+ - direct
570
+ - node
571
+ - transferd
572
+ x-cli-option: "--src-base64"
573
+ x-cli-convert: base64
574
+ src_base64:
575
+ description: The folder name below which the directory structure is preserved (base64 encoded).
576
+ type: string
577
+ x-agents:
578
+ - transferd
579
+ - direct
580
+ x-cli-option: "--src-base64"
581
+ ssh_port:
582
+ description: Specifies SSH (TCP) port.
583
+ default: "direct:22, other:33001"
584
+ type: integer
585
+ x-cli-option: "-P"
586
+ ssh_private_key:
587
+ description: >-
588
+ Private key used for SSH authentication.
589
+
590
+ Shall look like: -----BEGIN RSA PRIV4TE KEY-----&bsol;nMII...
591
+
592
+ Note the JSON encoding: &bsol;n for newlines.
593
+ x-agents:
594
+ - direct
595
+ - transferd
596
+ x-cli-envvar: ASPERA_SCP_KEY
597
+ ssh_private_key_passphrase:
598
+ description: The passphrase associated with the transfer user's SSH private key. Available as of 3.7.2.
599
+ type: string
600
+ x-agents:
601
+ - transferd
602
+ - direct
603
+ x-cli-envvar: ASPERA_SCP_PASS
604
+ ssh_private_key_path:
605
+ description: Path to private key for SSH.
606
+ type: string
607
+ x-agents:
608
+ - transferd
609
+ - direct
610
+ x-cli-option: "-i"
611
+ ssh_args:
612
+ description: Array of arguments to pass to SSH. Use with caution.
613
+ type: array
614
+ x-agents:
615
+ - transferd
616
+ x-cli-option: "-i"
617
+ symlink_policy:
618
+ description: "Handle source side symbolic links"
619
+ enum:
620
+ - follow
621
+ - copy
622
+ - copy+force
623
+ - skip
624
+ default: follow
625
+ x-cli-option: "--symbolic-links"
626
+ tags:
627
+ description: >-
628
+ Metadata for transfer as JSON.
629
+ Key `aspera` is reserved.
630
+ Key `aspera.xfer_retry` specifies a retry timeout for node api initiated transfers.
631
+ type: object
632
+ x-cli-option: "--tags64"
633
+ x-cli-convert: json64
634
+ tags64:
635
+ description: >-
636
+ Metadata for transfer as JSON.
637
+ Key `aspera` is reserved.
638
+ Key `aspera.xfer_retry` specifies a retry timeout for node api initiated transfers.
639
+ type: string
640
+ x-agents:
641
+ - transferd
642
+ - direct
643
+ target_rate_cap_kbps:
644
+ description: >-
645
+ Maximum target rate for incoming transfers, in kilobits per second.
646
+ Returned by upload/download_setup node API.
647
+ type: integer
648
+ x-agents:
649
+ - connect
650
+ - transferd
651
+ target_rate_kbps:
652
+ description: Specifies desired speed for the transfer.
653
+ type: integer
654
+ x-cli-option: "-l"
655
+ title:
656
+ description: Title of the transfer.
657
+ type: string
658
+ x-agents:
659
+ - node
660
+ - connect
661
+ - transferd
662
+ token:
663
+ description: 'Authorization token: Bearer, Basic or ATM (Also arg -W)'
664
+ x-cli-envvar: ASPERA_SCP_TOKEN
665
+ use_ascp4:
666
+ description: Specify version of protocol. Do not use ascp4.
667
+ type: boolean
668
+ default: false
669
+ x-agents:
670
+ - direct
671
+ - node
672
+ - transferd
673
+ x-cli-special: true
674
+ use_system_ssh:
675
+ description: TODO, comment...
676
+ type: string
677
+ x-agents:
678
+ - transferd
679
+ - direct
680
+ x-cli-option: "-SSH"
681
+ keepalive:
682
+ description: The session is running in persistent session mode.
683
+ x-agents:
684
+ - transferd
685
+ - direct
686
+ x-cli-switch: true
687
+ dgram_size:
688
+ description: UDP datagram size in bytes
689
+ type: integer
690
+ x-cli-option: "-Z"
691
+ min_rate_kbps:
692
+ description: Set the minimum transfer rate in kilobits per second.
693
+ type: integer
694
+ default: 0
695
+ x-cli-option: "-m"
696
+ sshfp:
697
+ description: Check it against server SSH host key fingerprint.
698
+ x-cli-option: "--check-sshfp"
699
+ target_rate_percentage:
700
+ description: "TODO: remove ?"
701
+ x-agents: []
702
+ rate_policy_allowed:
703
+ description: "Specifies most aggressive rate policy that is allowed.\nReturned by node API."
704
+ enum:
705
+ - low
706
+ - fair
707
+ - high
708
+ - fixed
709
+ x-agents:
710
+ - connect
711
+ fasp_url:
712
+ description: Only used in Faspex.
713
+ x-agents: []
714
+ authentication:
715
+ description: 'value=token for SSH bypass keys, else password asked if not provided.'
716
+ x-agents:
717
+ - connect
718
+ cipher_allowed:
719
+ description: returned by node API. Valid literals include "aes-128" and "none".
720
+ x-agents:
721
+ - connect
722
+ obfuscate_file_names:
723
+ description: HTTP Gateway obfuscates file names when set to true.
724
+ type: boolean
725
+ x-agents:
726
+ - httpgw
727
+ wss_enabled:
728
+ description: Server has Web Socket service enabled
729
+ type: boolean
730
+ x-cli-special: true
731
+ wss_port:
732
+ description: TCP port used for websocket service feed
733
+ type: integer
734
+ x-cli-special: true
735
+ compression:
736
+ description: ascp4 only, 0 / 1?
737
+ type: integer
738
+ x-agents: []
739
+ read_threads:
740
+ description: ascp4 only
741
+ type: integer
742
+ x-agents: []
743
+ write_threads:
744
+ description: ascp4 only
745
+ type: integer
746
+ x-agents: []
747
+ xfer_max_retries:
748
+ description: >-
749
+ Maximum number of retries, for node API initiated transfers.
750
+ Shall not exceed aspera.conf `transfer_manager_max_retries` (default 5).
751
+ type: integer
752
+ x-agents:
753
+ - node