aspera-cli 4.24.1 → 4.25.0.pre

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 (99) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +1064 -745
  4. data/CONTRIBUTING.md +43 -100
  5. data/README.md +1281 -720
  6. data/bin/ascli +20 -1
  7. data/bin/asession +23 -27
  8. data/lib/aspera/agent/base.rb +10 -21
  9. data/lib/aspera/agent/connect.rb +2 -3
  10. data/lib/aspera/agent/desktop.rb +2 -2
  11. data/lib/aspera/agent/direct.rb +49 -32
  12. data/lib/aspera/agent/factory.rb +31 -0
  13. data/lib/aspera/api/aoc.rb +134 -76
  14. data/lib/aspera/api/cos_node.rb +3 -2
  15. data/lib/aspera/api/faspex.rb +213 -0
  16. data/lib/aspera/api/node.rb +107 -94
  17. data/lib/aspera/ascmd.rb +1 -2
  18. data/lib/aspera/ascp/installation.rb +73 -58
  19. data/lib/aspera/ascp/management.rb +119 -23
  20. data/lib/aspera/assert.rb +39 -11
  21. data/lib/aspera/cli/error.rb +4 -2
  22. data/lib/aspera/cli/extended_value.rb +91 -67
  23. data/lib/aspera/cli/formatter.rb +62 -27
  24. data/lib/aspera/cli/hints.rb +8 -0
  25. data/lib/aspera/cli/info.rb +4 -4
  26. data/lib/aspera/cli/main.rb +76 -84
  27. data/lib/aspera/cli/manager.rb +352 -248
  28. data/lib/aspera/cli/plugins/alee.rb +5 -4
  29. data/lib/aspera/cli/plugins/aoc.rb +175 -195
  30. data/lib/aspera/cli/plugins/ats.rb +4 -4
  31. data/lib/aspera/cli/plugins/base.rb +343 -0
  32. data/lib/aspera/cli/plugins/basic_auth.rb +45 -0
  33. data/lib/aspera/cli/plugins/config.rb +283 -269
  34. data/lib/aspera/cli/plugins/console.rb +27 -22
  35. data/lib/aspera/cli/plugins/cos.rb +3 -3
  36. data/lib/aspera/cli/plugins/factory.rb +78 -0
  37. data/lib/aspera/cli/plugins/faspex.rb +49 -46
  38. data/lib/aspera/cli/plugins/faspex5.rb +113 -225
  39. data/lib/aspera/cli/plugins/faspio.rb +19 -18
  40. data/lib/aspera/cli/plugins/httpgw.rb +14 -13
  41. data/lib/aspera/cli/plugins/node.rb +162 -149
  42. data/lib/aspera/cli/plugins/oauth.rb +48 -0
  43. data/lib/aspera/cli/plugins/orchestrator.rb +129 -45
  44. data/lib/aspera/cli/plugins/preview.rb +30 -50
  45. data/lib/aspera/cli/plugins/server.rb +21 -21
  46. data/lib/aspera/cli/plugins/shares.rb +45 -47
  47. data/lib/aspera/cli/sync_actions.rb +50 -39
  48. data/lib/aspera/cli/transfer_agent.rb +35 -49
  49. data/lib/aspera/cli/transfer_progress.rb +6 -6
  50. data/lib/aspera/cli/version.rb +3 -3
  51. data/lib/aspera/cli/wizard.rb +70 -55
  52. data/lib/aspera/colors.rb +6 -0
  53. data/lib/aspera/command_line_builder.rb +59 -61
  54. data/lib/aspera/command_line_converter.rb +2 -1
  55. data/lib/aspera/coverage.rb +2 -2
  56. data/lib/aspera/data_repository.rb +1 -1
  57. data/lib/aspera/environment.rb +51 -41
  58. data/lib/aspera/faspex_gw.rb +7 -5
  59. data/lib/aspera/faspex_postproc.rb +1 -1
  60. data/lib/aspera/keychain/factory.rb +1 -2
  61. data/lib/aspera/keychain/macos_security.rb +1 -1
  62. data/lib/aspera/log.rb +37 -9
  63. data/lib/aspera/markdown.rb +31 -0
  64. data/lib/aspera/nagios.rb +7 -6
  65. data/lib/aspera/oauth/base.rb +25 -28
  66. data/lib/aspera/oauth/factory.rb +9 -9
  67. data/lib/aspera/oauth/url_json.rb +2 -1
  68. data/lib/aspera/oauth/web.rb +2 -2
  69. data/lib/aspera/preview/file_types.rb +23 -37
  70. data/lib/aspera/products/connect.rb +7 -6
  71. data/lib/aspera/products/desktop.rb +1 -4
  72. data/lib/aspera/products/other.rb +9 -1
  73. data/lib/aspera/products/transferd.rb +0 -1
  74. data/lib/aspera/rest.rb +168 -113
  75. data/lib/aspera/rest_error_analyzer.rb +4 -4
  76. data/lib/aspera/ssh.rb +7 -4
  77. data/lib/aspera/ssl.rb +41 -0
  78. data/lib/aspera/sync/args.schema.yaml +46 -3
  79. data/lib/aspera/sync/conf.schema.yaml +307 -123
  80. data/lib/aspera/sync/database.rb +2 -1
  81. data/lib/aspera/sync/operations.rb +135 -79
  82. data/lib/aspera/temp_file_manager.rb +17 -5
  83. data/lib/aspera/transfer/error.rb +16 -7
  84. data/lib/aspera/transfer/parameters.rb +35 -22
  85. data/lib/aspera/transfer/resumer.rb +74 -0
  86. data/lib/aspera/transfer/spec.rb +5 -5
  87. data/lib/aspera/transfer/spec.schema.yaml +170 -59
  88. data/lib/aspera/transfer/spec_doc.rb +49 -43
  89. data/lib/aspera/uri_reader.rb +2 -2
  90. data/lib/aspera/web_auth.rb +6 -6
  91. data/lib/transferd_pb.rb +2 -2
  92. data.tar.gz.sig +0 -0
  93. metadata +26 -11
  94. metadata.gz.sig +0 -0
  95. data/lib/aspera/cli/basic_auth_plugin.rb +0 -43
  96. data/lib/aspera/cli/plugin.rb +0 -333
  97. data/lib/aspera/cli/plugin_factory.rb +0 -81
  98. data/lib/aspera/resumer.rb +0 -77
  99. data/lib/aspera/transfer/error_info.rb +0 -91
@@ -1,10 +1,18 @@
1
1
  $schema: https://json-schema.org/draft/2020-12/schema
2
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
3
  title: Aspera Transfer Specification
7
4
  description: Information defining an Aspera transfer.
5
+ $comment: >-
6
+ The original file is the YAML file.
7
+ The following extensions are used for mapping to ascp arguments.
8
+ x-cli-envvar [String] Name of env var
9
+ x-cli-option [String] Command line option (starts with "-"), or `true`: same as ts, or `false`: not an option
10
+ x-cli-switch [Bool] `true` if option has no arg, else by default option has a value
11
+ x-cli-special [Bool] `true` if not anaged by command line generator (special handling: option or argument)
12
+ x-cli-convert [String,Hash] Method name for Convert object or Conversion Hash for enum: ts to arg
13
+ x-agents [Array] Supported agents (for doc only), if not specified: all
14
+ x-deprecation [String] Deprecation message for doc
15
+ `x-` fields are also documented in `command_line_builder.rb`
8
16
  type: object
9
17
  required:
10
18
  - destination_root
@@ -15,12 +23,14 @@ required:
15
23
  properties:
16
24
  apply_local_docroot:
17
25
  description: Apply local docroot to source paths.
26
+ type: boolean
18
27
  x-agents:
19
28
  - direct
20
29
  - transferd
21
30
  x-cli-switch: true
22
31
  cipher:
23
32
  description: In transit encryption algorithms.
33
+ type: string
24
34
  enum:
25
35
  - none
26
36
  - aes-128
@@ -36,15 +46,22 @@ properties:
36
46
  x-cli-option: -c
37
47
  x-cli-convert: remove_hyphen
38
48
  content_protection:
39
- description: Enable client-side encryption at rest (CSEAR).
40
- (content protection)
49
+ description: >-
50
+ Enable client-side content protection (CSEAR, encryption-at-rest).
51
+
52
+ For uploads, set to `encrypt` to transfer encrypted files and store them
53
+ on the server with the extension `.aspera-env`.
54
+ (`aspera.conf` parameter `transfer_encryption_content_protection_extension`).
55
+ To download and decrypt encrypted files, set to `decrypt`
56
+
57
+ `content_protection_password` must be specified if this option is set.
58
+ type: string
41
59
  enum:
42
60
  - encrypt
43
61
  - decrypt
44
62
  x-cli-option: --file-crypt
45
63
  content_protection_password:
46
- description: Specifies CSEAR password.
47
- (content protection)
64
+ description: Password for encryption/decryption of transferred assets.
48
65
  type: string
49
66
  x-cli-envvar: ASPERA_SCP_FILEPASS
50
67
  cookie:
@@ -52,7 +69,27 @@ properties:
52
69
  type: string
53
70
  x-cli-envvar: ASPERA_SCP_COOKIE
54
71
  create_dir:
55
- description: Specifies whether to create new directories.
72
+ description: >-
73
+ Create target directory if it doesn't already exist.
74
+
75
+ If **all** the following conditions are met, then the `destination_root` specifies a filename instead of destination folder:
76
+
77
+ - `create_dir` is `false`
78
+
79
+ - A single source file is given on **command line**
80
+
81
+ - The target folder specified by `destination_root` does not exist
82
+
83
+ In all other cases, `destination_root` specifies a folder, and it is created if it does not already exist.
84
+ I.e. if **any** of those conditions is met:
85
+
86
+ - `create_dir` is `true`
87
+
88
+ - Multiple source files are provided
89
+
90
+ - List of source files are provided in a file (list or pair), default for Node API and `ascli`.
91
+
92
+ - The target folder exists
56
93
  type: boolean
57
94
  x-cli-option: -d
58
95
  x-cli-switch: true
@@ -64,20 +101,25 @@ properties:
64
101
 
65
102
  Objects on the destination that have the same name but different type or size as objects
66
103
  on the source are not deleted.
104
+ type: boolean
67
105
  x-cli-switch: true
68
106
  delete_source:
69
- description: Remove transfered source files after transfer success.
70
- TODO equivalent to `remove_after_transfer` + `remove_empty_directories` + `remove_empty_source_directory`
107
+ $comment: "TODO: implement"
108
+ description: >-
109
+ Remove transfered source files after transfer success.
110
+ Equivalent to `remove_after_transfer` + `remove_empty_directories` + `remove_empty_source_directory`.
111
+ Take precedence over those.
71
112
  type: boolean
72
113
  x-agents:
73
- - node
74
114
  - direct
75
115
  - transferd
76
- x-cli-option: --remove-after-transfer
77
- x-cli-switch: true
116
+ - node
117
+ x-cli-special: true
78
118
  destination_root:
79
119
  description: Destination root directory.
120
+ type: string
80
121
  x-cli-special: true
122
+ $comment: Last argument on ascp command line.
81
123
  destination_root_id:
82
124
  description: >-
83
125
  The file ID of the destination root directory.
@@ -88,6 +130,7 @@ properties:
88
130
  - transferd
89
131
  direction:
90
132
  description: Direction of transfer (on client side).
133
+ type: string
91
134
  enum:
92
135
  - send
93
136
  - receive
@@ -102,6 +145,7 @@ properties:
102
145
 
103
146
  e.g. `-86400` for newer than a day back.
104
147
  type: string
148
+ x-cli-option: true
105
149
  exclude_older_than:
106
150
  description: >-
107
151
  Exclude files, but not directories, from the transfer if they are older
@@ -109,10 +153,12 @@ properties:
109
153
 
110
154
  e.g. `-86400` for older than a day back.
111
155
  type: string
156
+ x-cli-option: true
112
157
  fail_bad_filepass:
113
158
  description: Fail on bad file decryption passphrase.
114
159
  type: boolean
115
160
  x-cli-switch: true
161
+ x-cli-option: true
116
162
  x-agents:
117
163
  - direct
118
164
  - transferd
@@ -128,6 +174,7 @@ properties:
128
174
  - transferd
129
175
  file_checksum:
130
176
  description: Enable checksum reporting for transferred files by specifying the hash to use.
177
+ type: string
131
178
  enum:
132
179
  - sha-512
133
180
  - sha-384
@@ -137,8 +184,9 @@ properties:
137
184
  - none
138
185
  default: none
139
186
  x-agents:
140
- - node
141
187
  - direct
188
+ - node
189
+ x-cli-option: true
142
190
  http_fallback:
143
191
  description: When true(1), attempts to perform an HTTP transfer if a FASP transfer cannot be performed.
144
192
  type:
@@ -163,7 +211,8 @@ properties:
163
211
  x-agents:
164
212
  - transferd
165
213
  lock_min_rate:
166
- description: "TODO: remove ?"
214
+ $comment: "TODO: Remove ?"
215
+ description: "n/a"
167
216
  type: boolean
168
217
  x-agents:
169
218
  - connect
@@ -183,15 +232,16 @@ properties:
183
232
  - transferd
184
233
  - connect
185
234
  lock_target_rate:
186
- description: "TODO: remove ?"
235
+ $comment: "TODO: Remove ?"
236
+ description: "n/a"
187
237
  type: boolean
188
238
  x-agents:
189
239
  - connect
190
240
  lock_target_rate_kbps:
191
241
  description: >-
192
- If `true`, lock the target transfer rate to the default value set for target_rate_kbps.
242
+ If `true`, lock the target transfer rate to the default value set for `target_rate_kbps`.
193
243
 
194
- If `false`, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.
244
+ If `false`, users can adjust the transfer rate up to the value set for `target_rate_cap_kbps`.
195
245
  type: boolean
196
246
  x-agents:
197
247
  - transferd
@@ -212,7 +262,7 @@ properties:
212
262
  Move source files to the specified `archive-dir` directory after they are transferred correctly.
213
263
 
214
264
  Available as of 3.8.0.
215
- Details in ascp manual.
265
+ Details in `ascp` manual.
216
266
 
217
267
  Requires write permissions on the source.
218
268
 
@@ -228,12 +278,14 @@ properties:
228
278
  Empty directories are not saved to `archive-dir`.
229
279
  To remove empty source directories after a successful move operation, also set `remove_empty_directories` to `true`.
230
280
  When using `remove_empty_directories`, empty directory removal examination starts at the `srcbase` and proceeds down any subdirectories.
231
- If no `srcbase` is used and a file path (as opposed to a directory path) is specified, then only the immediate parent directory is examined and removed if it is empty following the move of the source file.
281
+ If no `srcbase` is used and a file path (as opposed to a directory path) is specified,
282
+ then only the immediate parent directory is examined and removed if it is empty following the move of the source file.
232
283
  type: string
233
284
  x-agents:
234
285
  - direct
235
- - node
236
286
  - transferd
287
+ - node
288
+ x-cli-option: true
237
289
  multi_session:
238
290
  description: >-
239
291
  Use multi-session transfer. max 128.
@@ -246,15 +298,16 @@ properties:
246
298
  x-cli-special: true
247
299
  multi_session_threshold:
248
300
  description: >-
249
- Split files across multiple ascp sessions if their size in bytes is greater than
301
+ Split files across multiple `ascp` sessions if their size in bytes is greater than
250
302
  or equal to the specified value.
251
303
 
252
304
  (0=no file is split)
253
305
  type: integer
254
306
  x-agents:
255
307
  - direct
256
- - node
257
308
  - transferd
309
+ - node
310
+ x-cli-option: true
258
311
  overwrite:
259
312
  description: >-
260
313
  Overwrite files at the destination with source files of the same name based
@@ -297,12 +350,14 @@ properties:
297
350
 
298
351
  `full_checksum` : The source and destination files are compared based on full checksums
299
352
  default: diff
353
+ type: string
300
354
  enum:
301
355
  - never
302
356
  - always
303
357
  - diff
304
358
  - older
305
359
  - diff+older
360
+ x-cli-option: true
306
361
  password:
307
362
  description: >-
308
363
  Password for local Windows user when transfer user associated with node API user is not
@@ -328,9 +383,11 @@ properties:
328
383
 
329
384
  Because source access times are updated by the transfer operation,
330
385
  the timestamp that is preserved is the one just before to the transfer.
386
+ type: boolean
331
387
  x-cli-switch: true
332
388
  preserve_acls:
333
389
  description: Preserve access control lists.
390
+ type: string
334
391
  enum:
335
392
  - none
336
393
  - native
@@ -339,36 +396,40 @@ properties:
339
396
  x-agents:
340
397
  - direct
341
398
  - transferd
399
+ x-cli-option: true
342
400
  preserve_creation_time:
343
401
  description: >-
344
402
  Preserve source-file creation timestamps at the destination.
345
403
 
346
404
  Only Windows systems retain information about creation time.
347
405
  If the destination is not a Windows computer, this option is ignored.
406
+ type: boolean
348
407
  x-cli-switch: true
349
408
  preserve_extended_attrs:
350
409
  description: Preserve the extended attributes.
410
+ type: string
351
411
  enum:
352
412
  - none
353
413
  - native
354
414
  - metafile
355
415
  default: none
356
416
  x-agents:
417
+ - direct
357
418
  - transferd
358
419
  x-cli-option: --preserve-xattrs
359
420
  preserve_file_owner_gid:
360
421
  description: Preserve the group ID for a file owner.
361
422
  type: boolean
362
423
  x-agents:
363
- - transferd
364
424
  - direct
425
+ - transferd
365
426
  x-cli-switch: true
366
427
  preserve_file_owner_uid:
367
428
  description: Preserve the user ID for a file owner.
368
429
  type: boolean
369
430
  x-agents:
370
- - transferd
371
431
  - direct
432
+ - transferd
372
433
  x-cli-switch: true
373
434
  preserve_modification_time:
374
435
  description: >-
@@ -376,43 +437,46 @@ properties:
376
437
  of a transferred file to the modification of the source file or directory.
377
438
 
378
439
  Preserve source-file modification timestamps at the destination.
440
+ type: boolean
379
441
  x-cli-switch: true
380
442
  preserve_remote_acls:
381
443
  description: Preserve remote access control lists.
444
+ type: string
382
445
  enum:
383
446
  - none
384
447
  - native
385
448
  - metafile
386
449
  default: none
387
450
  x-agents:
388
- - transferd
389
451
  - direct
452
+ - transferd
390
453
  x-cli-option: --remote-preserve-acls
391
454
  preserve_remote_extended_attrs:
392
455
  description: Preserve remote extended attributes.
456
+ type: string
393
457
  enum:
394
458
  - none
395
459
  - native
396
460
  - metafile
397
461
  default: none
398
462
  x-agents:
399
- - transferd
400
463
  - direct
464
+ - transferd
401
465
  x-cli-option: --remote-preserve-xattrs
402
466
  preserve_source_access_time:
403
467
  description: Preserve the time logged for when the source file was accessed.
404
468
  type: boolean
405
469
  x-agents:
406
- - transferd
407
470
  - direct
471
+ - transferd
408
472
  x-cli-switch: true
409
473
  preserve_times:
410
474
  description: Preserve file timestamps.
411
475
  type: boolean
412
476
  x-agents:
477
+ - direct
413
478
  - transferd
414
479
  - node
415
- - direct
416
480
  x-cli-option: -p
417
481
  rate_policy:
418
482
  description: >-
@@ -429,6 +493,7 @@ properties:
429
493
  Do not share bandwidth.
430
494
  Aspera recommends that you do not use this setting except under special circumstances,
431
495
  otherwise the destination storage can be damaged.
496
+ type: string
432
497
  enum:
433
498
  - low
434
499
  - fair
@@ -442,28 +507,31 @@ properties:
442
507
  - transferd
443
508
  remote_host:
444
509
  description: IP or fully qualified domain name (FQDN) of the remote server.
510
+ type: string
445
511
  x-cli-option: --host
446
512
  remote_password:
447
513
  description: SSH session password.
514
+ type: string
448
515
  x-cli-envvar: ASPERA_SCP_PASS
449
516
  remote_user:
450
517
  description: Remote user. Default value is `xfer` on node or connect.
518
+ type: string
451
519
  x-cli-option: --user
452
520
  remove_after_transfer:
453
521
  description: Remove SRC files after transfer success.
454
522
  type: boolean
455
523
  x-agents:
456
524
  - direct
457
- - node
458
525
  - transferd
526
+ - node
459
527
  x-cli-switch: true
460
528
  remove_empty_directories:
461
529
  description: Specifies whether to remove empty directories.
462
530
  type: boolean
463
531
  x-agents:
464
532
  - direct
465
- - node
466
533
  - transferd
534
+ - node
467
535
  x-cli-switch: true
468
536
  remove_empty_source_dir:
469
537
  description: Remove empty source subdirectories and remove the source directory itself, if empty.
@@ -483,8 +551,8 @@ properties:
483
551
  type: boolean
484
552
  x-agents:
485
553
  - direct
486
- - connect
487
554
  - node
555
+ - connect
488
556
  x-cli-switch: true
489
557
  proxy:
490
558
  description: >-
@@ -495,9 +563,11 @@ properties:
495
563
  Default ports for DNAT and DNATS protocols are 9091 and 9092.
496
564
 
497
565
  Password, if specified here, overrides the value of environment variable `ASPERA_PROXY_PASS`.
566
+ type: string
498
567
  x-agents:
499
568
  - direct
500
569
  - noded
570
+ x-cli-option: true
501
571
  resume_policy:
502
572
  description: >-
503
573
  If a transfer is interrupted or fails to finish,
@@ -514,6 +584,7 @@ properties:
514
584
 
515
585
  Note: transferd uses values: `attributes`, `sparse_checksum`, `full_checksum`.
516
586
  default: faspmgr:none;other:sparse_csum
587
+ type: string
517
588
  enum:
518
589
  - none
519
590
  - attrs
@@ -526,8 +597,8 @@ properties:
526
597
  sparse_csum: 2
527
598
  full_csum: 3
528
599
  retry_duration:
529
- description: Specifies how long to wait before retrying transfer (e.g. `5min`).
530
600
  $comment: "TODO: check this."
601
+ description: Specifies how long to wait before retrying transfer (e.g. `5min`).
531
602
  type:
532
603
  - integer
533
604
  - string
@@ -542,17 +613,18 @@ properties:
542
613
  before writing the new file.
543
614
 
544
615
  File attributes are maintained in the renamed file.
616
+ type: boolean
545
617
  x-cli-switch: true
546
618
  x-agents:
547
619
  - direct
548
- - node
549
620
  - transferd
621
+ - node
550
622
  skip_duplicate_check:
551
623
  description: Don't check for duplicate files at the destination.
552
624
  type: boolean
553
625
  x-agents:
554
- - transferd
555
626
  - direct
627
+ - transferd
556
628
  x-cli-option: --skip-dir-traversal-dupes
557
629
  x-cli-switch: true
558
630
  skip_special_files:
@@ -562,14 +634,15 @@ properties:
562
634
  If `true`, `ascp` skips special assets and proceeds with the transfer of all other assets.
563
635
  type: boolean
564
636
  x-agents:
565
- - transferd
566
637
  - direct
638
+ - transferd
567
639
  x-cli-switch: true
568
640
  source_root:
569
641
  description: >-
570
642
  Path to be prepended to each source path.
571
643
 
572
644
  This is either a conventional path or it can be a URI but only if there is no root defined.
645
+ type: string
573
646
  x-cli-option: --source-prefix64
574
647
  x-cli-convert: base64
575
648
  source_root_id:
@@ -587,18 +660,19 @@ properties:
587
660
  The remaining portion of the source path is kept intact at the destination.
588
661
 
589
662
  Special care must be taken when used with cloud storage.
663
+ type: string
590
664
  x-agents:
591
665
  - direct
592
- - node
593
666
  - transferd
667
+ - node
594
668
  x-cli-option: --src-base64
595
669
  x-cli-convert: base64
596
670
  src_base64:
597
671
  description: The folder name below which the directory structure is preserved (base64 encoded).
598
672
  type: string
599
673
  x-agents:
600
- - transferd
601
674
  - direct
675
+ - transferd
602
676
  x-cli-option: --src-base64
603
677
  ssh_port:
604
678
  description: Specifies SSH (TCP) port.
@@ -612,6 +686,7 @@ properties:
612
686
  Shall look like: -----BEGIN RSA PRIV4TE KEY-----\nMII...
613
687
 
614
688
  Note the JSON encoding: \n for newlines.
689
+ type: string
615
690
  x-agents:
616
691
  - direct
617
692
  - transferd
@@ -620,24 +695,19 @@ properties:
620
695
  description: The passphrase associated with the transfer user's SSH private key. Available as of 3.7.2.
621
696
  type: string
622
697
  x-agents:
623
- - transferd
624
698
  - direct
699
+ - transferd
625
700
  x-cli-envvar: ASPERA_SCP_PASS
626
701
  ssh_private_key_path:
627
702
  description: Path to private key for SSH.
628
703
  type: string
629
704
  x-agents:
630
- - transferd
631
705
  - direct
632
- x-cli-option: -i
633
- ssh_args:
634
- description: Array of arguments to pass to SSH. Use with caution.
635
- type: array
636
- x-agents:
637
706
  - transferd
638
- x-cli-option: --ssh-args
707
+ x-cli-option: -i
639
708
  symlink_policy:
640
709
  description: Handle source side symbolic links.
710
+ type: string
641
711
  enum:
642
712
  - follow
643
713
  - copy
@@ -660,16 +730,17 @@ properties:
660
730
  Key `aspera.xfer_retry` specifies a retry timeout for node API initiated transfers.
661
731
  type: string
662
732
  x-agents:
663
- - transferd
664
733
  - direct
734
+ - transferd
735
+ x-cli-option: true
665
736
  target_rate_cap_kbps:
666
737
  description: >-
667
738
  Maximum target rate for incoming transfers, in kilobits per second.
668
739
  Returned by upload/download_setup node API.
669
740
  type: integer
670
741
  x-agents:
671
- - connect
672
742
  - transferd
743
+ - connect
673
744
  target_rate_kbps:
674
745
  description: Specifies desired speed for the transfer.
675
746
  type: integer
@@ -683,28 +754,47 @@ properties:
683
754
  - transferd
684
755
  token:
685
756
  description: "Authorization token. Type: Bearer, Basic or ATM. (Also arg -W)"
757
+ type: string
686
758
  x-cli-envvar: ASPERA_SCP_TOKEN
687
759
  use_ascp4:
688
- description: Specify version of protocol. Do not use ascp4.
760
+ description: Specify version of protocol. Do not use `ascp4`.
689
761
  type: boolean
690
762
  default: false
691
763
  x-agents:
692
764
  - direct
693
- - node
694
765
  - transferd
766
+ - node
695
767
  x-cli-special: true
696
768
  use_system_ssh:
697
- description: TODO, comment...
698
- type: string
769
+ description: >-
770
+ Use an external `ssh` program instead of the built-in `libssh2` implementation to establish
771
+ the connection to the remote host.
772
+ The desired `ssh` program must be in the environment's `PATH`.
773
+
774
+ To enable debugging of the `ssh` process, supply `-DD` and `--ssh-arg=-vv` arguments to `ascp`.
775
+ type: boolean
699
776
  x-agents:
700
- - transferd
701
777
  - direct
778
+ - transferd
702
779
  x-cli-option: -SSH
780
+ x-cli-switch: true
781
+ ssh_args:
782
+ $comment: "TODO: Generate multiple options and place as in comment (after -i , before user/host)"
783
+ description: >-
784
+ Add arguments to the command-line arguments passed to the external ssh program (implies -SSH).
785
+ The arguments are inserted before any key file(s) supplied to `ascp` and before the user/host arguments.
786
+ type: array
787
+ x-agents:
788
+ - direct
789
+ - transferd
790
+ x-cli-option: --ssh-arg
791
+ x-cli-special: true
703
792
  keepalive:
704
793
  description: The session is running in persistent session mode.
794
+ type: boolean
705
795
  x-agents:
706
- - transferd
707
796
  - direct
797
+ - transferd
708
798
  x-cli-switch: true
709
799
  dgram_size:
710
800
  description: UDP datagram size in bytes.
@@ -717,13 +807,17 @@ properties:
717
807
  x-cli-option: -m
718
808
  sshfp:
719
809
  description: Check it against server SSH host key fingerprint.
810
+ type: string
720
811
  x-cli-option: --check-sshfp
721
812
  target_rate_percentage:
722
- description: "TODO: remove ?"
813
+ $comment: "TODO: Remove ?"
814
+ description: "n/a"
815
+ type: string
723
816
  x-agents: []
724
817
  rate_policy_allowed:
725
818
  description: Specifies most aggressive rate policy that is allowed.
726
819
  Returned by node API.
820
+ type: string
727
821
  enum:
728
822
  - low
729
823
  - fair
@@ -733,13 +827,27 @@ properties:
733
827
  - connect
734
828
  fasp_url:
735
829
  description: Only used in Faspex.
830
+ type: string
736
831
  x-agents: []
737
832
  authentication:
738
833
  description: Set to `token` for SSH bypass keys, else password asked if not provided.
834
+ type: string
739
835
  x-agents:
740
836
  - connect
741
837
  cipher_allowed:
742
838
  description: Returned by node API. Valid literals include `aes-128` and `none`.
839
+ type: string
840
+ enum:
841
+ - none
842
+ - aes-128
843
+ - aes-192
844
+ - aes-256
845
+ - aes-128-cfb
846
+ - aes-192-cfb
847
+ - aes-256-cfb
848
+ - aes-128-gcm
849
+ - aes-192-gcm
850
+ - aes-256-gcm
743
851
  x-agents:
744
852
  - connect
745
853
  obfuscate_file_names:
@@ -750,21 +858,24 @@ properties:
750
858
  wss_enabled:
751
859
  description: Server has Web Socket service enabled.
752
860
  type: boolean
861
+ x-cli-option: --ws-connect
862
+ x-cli-switch: true
753
863
  x-cli-special: true
754
864
  wss_port:
755
- description: TCP port used for websocket service feed.
865
+ description: TCP port used for Web Socket service feed.
756
866
  type: integer
757
867
  x-cli-special: true
758
868
  compression:
759
- description: ascp4 only, 0 / 1?
869
+ description: ascp4 only.
870
+ $comment: "0 / 1?"
760
871
  type: integer
761
872
  x-agents: []
762
873
  read_threads:
763
- description: ascp4 only
874
+ description: ascp4 only.
764
875
  type: integer
765
876
  x-agents: []
766
877
  write_threads:
767
- description: ascp4 only
878
+ description: ascp4 only.
768
879
  type: integer
769
880
  x-agents: []
770
881
  xfer_max_retries: