@tigrisdata/cli 2.1.0 → 2.2.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 (43) hide show
  1. package/README.md +381 -1
  2. package/dist/auth/client.js +1 -1
  3. package/dist/auth/config.js +1 -1
  4. package/dist/auth/s3-client.js +1 -1
  5. package/dist/auth/storage.js +1 -1
  6. package/dist/cli.js +11 -8
  7. package/dist/index.js +11 -8
  8. package/dist/lib/buckets/create.js +2 -2
  9. package/dist/lib/buckets/delete.js +2 -0
  10. package/dist/lib/buckets/get.js +7 -0
  11. package/dist/lib/buckets/list.js +6 -6
  12. package/dist/lib/configure/index.js +2 -2
  13. package/dist/lib/cp.js +1 -1
  14. package/dist/lib/forks/create.js +2 -0
  15. package/dist/lib/forks/list.js +7 -0
  16. package/dist/lib/login/credentials.js +2 -2
  17. package/dist/lib/login/oauth.js +5 -0
  18. package/dist/lib/login/select.js +5 -5
  19. package/dist/lib/logout.js +2 -2
  20. package/dist/lib/ls.js +6 -1
  21. package/dist/lib/mk.js +1 -1
  22. package/dist/lib/mv.js +1 -1
  23. package/dist/lib/objects/delete.js +2 -0
  24. package/dist/lib/objects/get.js +2 -0
  25. package/dist/lib/objects/list.js +7 -0
  26. package/dist/lib/objects/put.js +7 -0
  27. package/dist/lib/organizations/create.js +5 -0
  28. package/dist/lib/organizations/list.js +10 -0
  29. package/dist/lib/organizations/select.js +9 -0
  30. package/dist/lib/rm.js +1 -1
  31. package/dist/lib/snapshots/list.js +7 -0
  32. package/dist/lib/snapshots/take.js +2 -0
  33. package/dist/lib/touch.js +1 -0
  34. package/dist/lib/whoami.js +3 -3
  35. package/dist/specs.yaml +260 -259
  36. package/dist/utils/messages.js +2 -2
  37. package/dist/utils/path.js +1 -1
  38. package/package.json +13 -4
  39. package/dist/lib/login/ui.js +0 -5
  40. package/dist/lib/orgs/create.js +0 -2
  41. package/dist/lib/orgs/list.js +0 -7
  42. package/dist/lib/orgs/select.js +0 -6
  43. /package/dist/lib/{stat.js → _stat.js} +0 -0
package/dist/specs.yaml CHANGED
@@ -71,27 +71,121 @@ definitions:
71
71
  value: syd
72
72
  description: Sydney, Australia
73
73
 
74
- access_options: &access_options
75
- [public, private]
74
+ access_options: &access_options [public, private]
76
75
 
77
76
  commands:
77
+ #########################
78
+ # Authentication
79
+ #########################
80
+ # configure
81
+ - name: configure
82
+ description: Save credentials permanently. After running this, all commands work automatically
83
+ alias: c
84
+ messages:
85
+ onStart: 'Saving credentials...'
86
+ onSuccess: 'Credentials saved to ~/.tigris/config.json. You can now use all tigris commands.'
87
+ onFailure: 'Failed to save credentials'
88
+ arguments:
89
+ - name: access-key
90
+ description: Your Tigris access key ID
91
+ alias: key
92
+ required: false
93
+ - name: access-secret
94
+ description: Your Tigris secret access key
95
+ alias: secret
96
+ required: false
97
+ - name: endpoint
98
+ description: 'Tigris API endpoint (default: https://t3.storage.dev)'
99
+ alias: e
100
+ required: false
101
+
102
+ # login
103
+ - name: login
104
+ description: Start a session. Use OAuth (default) or temporary credentials that override your saved config
105
+ messages:
106
+ onStart: ''
107
+ onSuccess: 'Login successful'
108
+ onFailure: 'Login failed'
109
+ alias: l
110
+ arguments:
111
+ - name: access-key
112
+ description: Use temporary credentials instead of OAuth (useful for testing different keys)
113
+ alias: key
114
+ required: false
115
+ - name: access-secret
116
+ description: Secret for temporary credentials
117
+ alias: secret
118
+ required: false
119
+ operations:
120
+ # login (main interactive operation)
121
+ - name: select
122
+ description: Choose how to login - OAuth (browser) or credentials (access key)
123
+ messages:
124
+ onStart: ''
125
+ onSuccess: 'Login successful'
126
+ onFailure: 'Login failed'
127
+ # oauth
128
+ - name: oauth
129
+ description: Login via browser (OAuth2 device flow). Best for interactive use
130
+ alias: o
131
+ messages:
132
+ onStart: 'Opening browser for authentication...'
133
+ onSuccess: "Logged in successfully\nOrganization '{{org}}' selected"
134
+ onFailure: 'Authentication failed'
135
+ onAlreadyDone: "Already logged in.\nRun \"tigris logout\" first to switch accounts."
136
+ hint: "You have {{count}} organizations.\nRun \"tigris orgs list\" to switch."
137
+ # credentials
138
+ - name: credentials
139
+ description: Login with access key + secret. Creates a temporary session (cleared on logout)
140
+ alias: c
141
+ messages:
142
+ onStart: 'Authenticating...'
143
+ onSuccess: 'Logged in with credentials'
144
+ onFailure: 'Authentication failed'
145
+ arguments:
146
+ - name: access-key
147
+ description: Your access key ID (will prompt if not provided)
148
+ alias: key
149
+ required: false
150
+ - name: access-secret
151
+ description: Your secret access key (will prompt if not provided)
152
+ alias: secret
153
+ required: false
154
+ default: select
155
+
156
+ # whoami
157
+ - name: whoami
158
+ description: Show information about the current user
159
+ alias: w
160
+ messages:
161
+ onStart: ''
162
+ onSuccess: ''
163
+ onFailure: 'Failed to get user information'
164
+ onAlreadyDone: "Not authenticated\nRun \"tigris login\" to authenticate"
165
+
166
+ # logout
167
+ - name: logout
168
+ description: End your session. Clears login state but keeps credentials from 'configure'
169
+ messages:
170
+ onStart: 'Logging out...'
171
+ onSuccess: 'Logged out. Your configured credentials are still saved.'
172
+ onFailure: 'Failed to logout'
173
+
78
174
  #########################
79
175
  # Unix style commands
80
176
  #########################
81
-
82
177
  # ls
83
178
  - name: ls
84
179
  description: List buckets or objects in a bucket or path
85
180
  alias: list
86
181
  arguments:
87
182
  - name: path
88
- required: true
89
- type: noun
90
- description: a bucket or path in a bucket
183
+ type: positional
184
+ description: a bucket or path in a bucket (if not provided, lists all buckets)
91
185
  examples:
92
186
  - my-bucket
93
187
  - my-bucket/my-path
94
-
188
+
95
189
  # mk
96
190
  - name: mk
97
191
  description: Create a bucket or a folder in a bucket
@@ -99,25 +193,36 @@ commands:
99
193
  arguments:
100
194
  - name: path
101
195
  required: true
102
- type: noun
196
+ type: positional
103
197
  description: a bucket or a folder in a bucket
104
198
  examples:
105
199
  - my-bucket
106
200
  - my-bucket/my-path
107
-
201
+
202
+ # touch
203
+ - name: touch
204
+ description: Create an empty object in a bucket
205
+ arguments:
206
+ - name: path
207
+ required: true
208
+ type: positional
209
+ description: path to the object (bucket/key)
210
+ examples:
211
+ - my-bucket/my-file.txt
212
+
108
213
  # stat
109
214
  - name: stat
110
215
  description: Get the details of a bucket or a folder in a bucket or an object in a bucket or path
111
216
  arguments:
112
217
  - name: path
113
218
  required: true
114
- type: noun
219
+ type: positional
115
220
  description: a bucket or a folder in a bucket or an object in a bucket or path
116
221
  examples:
117
222
  - my-bucket
118
223
  - my-bucket/my-path
119
224
  - my-bucket/my-path/my-object.json
120
-
225
+
121
226
  # cp
122
227
  - name: cp
123
228
  description: Copy a folder or an object
@@ -125,7 +230,7 @@ commands:
125
230
  arguments:
126
231
  - name: src
127
232
  required: true
128
- type: noun
233
+ type: positional
129
234
  description: a bucket, a folder in a bucket, an object in a bucket / path. Wildcard is supported.
130
235
  examples:
131
236
  - my-bucket
@@ -133,43 +238,46 @@ commands:
133
238
  - my-bucket/my-path/my-object.json
134
239
  - name: dest
135
240
  required: true
136
- type: noun
241
+ type: positional
137
242
  description: path to copy to
138
243
  examples:
139
244
  - my-bucket
140
245
  - my-bucket/my-path
141
246
  - my-bucket/my-path/*
142
247
  - my-bucket/my-path/my-object.json
143
-
248
+
144
249
  # mv
145
250
  - name: mv
146
251
  description: Move a folder or an object
147
252
  alias: move
148
253
  arguments:
149
254
  - name: src
150
- type: noun
255
+ type: positional
151
256
  required: true
152
257
  description: path to move from
153
258
  examples:
154
- - my-bucket
155
259
  - my-bucket/my-path
156
260
  - my-bucket/my-path/*
157
261
  - my-bucket/my-path/my-object.json
158
262
  - name: dest
159
- type: noun
263
+ type: positional
160
264
  required: true
161
265
  description: path to move to
162
266
  examples:
163
267
  - my-bucket
164
268
  - my-bucket/new-path
165
-
269
+ - name: force
270
+ type: flag
271
+ alias: f
272
+ description: Skip confirmation prompt
273
+
166
274
  # rm
167
275
  - name: rm
168
276
  description: Remove a bucket or a folder in a bucket or an object in a bucket or path
169
- alias: remvoe
277
+ alias: remove
170
278
  arguments:
171
279
  - name: path
172
- type: noun
280
+ type: positional
173
281
  required: true
174
282
  description: a bucket, a folder in a bucket, an object in a bucket / path. Wildcard is supported.
175
283
  examples:
@@ -177,137 +285,16 @@ commands:
177
285
  - my-bucket/my-path
178
286
  - my-bucket/my-path/*
179
287
  - my-bucket/my-path/my-object.json
180
-
181
- #########################
182
- # Authentication
183
- #########################
184
- # logout
185
- - name: logout
186
- description: Logout from Tigris
187
- messages:
188
- onStart: "Logging out..."
189
- onSuccess: "Logged out successfully"
190
- onFailure: "Failed to logout"
191
-
192
- # whoami
193
- - name: whoami
194
- description: Show information about the current user
195
- alias: w
196
- messages:
197
- onStart: ""
198
- onSuccess: ""
199
- onFailure: "Failed to get user information"
200
- onAlreadyDone: "Not authenticated\nRun \"tigris login\" to authenticate"
201
-
202
- # configure
203
- - name: configure
204
- description: Configure Tigris credentials interactively
205
- alias: c
206
- messages:
207
- onStart: "Configuring credentials..."
208
- onSuccess: "Configuration saved"
209
- onFailure: "Failed to configure credentials"
210
- arguments:
211
- - name: access-key
212
- description: Tigris Access key ID
213
- alias: key
214
- required: false
215
- - name: access-secret
216
- description: Tigris Access secret
217
- alias: secret
218
- required: false
219
- - name: endpoint
220
- description: Tigris Endpoint
221
- alias: e
222
- required: false
223
-
224
- # login
225
- - name: login
226
- description: Login to Tigris (interactive selection between user and machine)
227
- messages:
228
- onStart: "Logging in..."
229
- onSuccess: "Login successful"
230
- onFailure: "Login failed"
231
- alias: l
232
- arguments:
233
- - name: access-key
234
- description: Access key (optional, will use credentials flow if provided)
235
- alias: key
236
- required: false
237
- - name: access-secret
238
- description: Access secret (optional, will use credentials flow if provided)
239
- alias: secret
240
- required: false
241
- - name: profile
242
- description: Use saved credentials profile (loads from ~/.tigris/credentials.json)
243
- alias: p
244
- required: false
288
+ - name: force
245
289
  type: flag
246
- - name: oauth
247
- description: Login as a user (OAuth2 flow)
248
- alias: o
249
- required: false
250
- type: flag
251
- operations:
252
- # login (main interactive operation)
253
- - name: select
254
- description: Interactive selection between user and machine login
255
- messages:
256
- onStart: ""
257
- onSuccess: "Login successful"
258
- onFailure: "Login failed"
259
- arguments:
260
- - name: access-key
261
- description: Access key (optional, will use credentials flow if provided)
262
- alias: key
263
- required: false
264
- - name: access-secret
265
- description: Access secret (optional, will use credentials flow if provided)
266
- alias: secret
267
- required: false
268
- - name: profile
269
- description: Use saved credentials profile (loads from ~/.tigris/credentials.json)
270
- alias: p
271
- required: false
272
- type: flag
273
- - name: oauth
274
- description: Login as a user (OAuth2 flow)
275
- alias: o
276
- required: false
277
- type: flag
278
- # ui
279
- - name: ui
280
- description: Login as a user (OAuth2 flow)
281
- alias: u
282
- messages:
283
- onStart: "Initiating authentication..."
284
- onSuccess: "Authentication successful\nOrganization '{{org}}' selected"
285
- onFailure: "Authentication failed"
286
- onAlreadyDone: "You are already logged in.\nRun \"tigris logout\" first if you want to login with a different account."
287
- hint: "You have {{count}} organizations available.\nRun \"tigris orgs list\" to see all and switch if needed."
288
- # credentials
289
- - name: credentials
290
- description: Login as a machine (with access key and secret)
291
- alias: c
292
- messages:
293
- onStart: "Authenticating with credentials..."
294
- onSuccess: "Login successful"
295
- onFailure: "Login failed"
296
- arguments:
297
- - name: access-key
298
- description: Access key (optional, will prompt or use saved credentials if not provided)
299
- alias: key
300
- required: false
301
- - name: access-secret
302
- description: Access secret (optional, will prompt or use saved credentials if not provided)
303
- alias: secret
304
- required: false
305
- default: select
290
+ alias: f
291
+ description: Skip confirmation prompt
306
292
 
307
293
  #########################
308
294
  # Manage organizations
309
295
  #########################
310
- - name: orgs
296
+ - name: organizations
297
+ alias: orgs
311
298
  description: Manage organizations
312
299
  operations:
313
300
  # list
@@ -315,9 +302,9 @@ commands:
315
302
  description: List organizations
316
303
  alias: l
317
304
  messages:
318
- onStart: "Listing organizations..."
305
+ onStart: 'Listing organizations...'
319
306
  onSuccess: "Organization '{{name}}' selected"
320
- onFailure: "Failed to select organization"
307
+ onFailure: 'Failed to select organization'
321
308
  onEmpty: "No organizations found. You may need to re-authenticate.\nRun: tigris login"
322
309
  arguments:
323
310
  - name: format
@@ -333,25 +320,25 @@ commands:
333
320
  description: Create organization
334
321
  alias: c
335
322
  messages:
336
- onStart: "Creating organization..."
323
+ onStart: 'Creating organization...'
337
324
  onSuccess: "Organization '{{name}}' created successfully\nOrganization ID: {{id}}"
338
- onFailure: "Failed to create organization"
325
+ onFailure: 'Failed to create organization'
339
326
  hint: "Next steps:\n - Select this organization: tigris orgs select {{name}}"
340
327
  arguments:
341
328
  - name: name
342
- type: noun
329
+ type: positional
343
330
  required: true
344
331
  description: Name of the organization
345
332
  - name: select
346
333
  description: Select the organization to use
347
334
  alias: s
348
335
  messages:
349
- onStart: ""
336
+ onStart: ''
350
337
  onSuccess: "Organization '{{name}}' selected"
351
- onFailure: "Failed to select organization"
338
+ onFailure: 'Failed to select organization'
352
339
  arguments:
353
340
  - name: name
354
- type: noun
341
+ type: positional
355
342
  required: true
356
343
  description: Name of the organization
357
344
 
@@ -367,10 +354,10 @@ commands:
367
354
  description: List buckets
368
355
  alias: l
369
356
  messages:
370
- onStart: "Listing buckets..."
371
- onSuccess: "Found {{count}} bucket(s)"
372
- onFailure: "Failed to list buckets"
373
- onEmpty: "No buckets found"
357
+ onStart: 'Listing buckets...'
358
+ onSuccess: 'Found {{count}} bucket(s)'
359
+ onFailure: 'Failed to list buckets'
360
+ onEmpty: 'No buckets found'
374
361
  arguments:
375
362
  - name: format
376
363
  description: Format
@@ -382,13 +369,13 @@ commands:
382
369
  description: Create bucket
383
370
  alias: [c]
384
371
  messages:
385
- onStart: "Creating bucket..."
372
+ onStart: 'Creating bucket...'
386
373
  onSuccess: "Bucket '{{name}}' created successfully"
387
- onFailure: "Failed to create bucket"
374
+ onFailure: 'Failed to create bucket'
388
375
  arguments:
389
376
  - name: name
390
377
  description: Name of the bucket
391
- type: noun
378
+ type: positional
392
379
  required: false
393
380
  - name: access
394
381
  description: Access level
@@ -420,29 +407,29 @@ commands:
420
407
  description: Get bucket details
421
408
  alias: g
422
409
  messages:
423
- onStart: "Getting bucket details..."
424
- onSuccess: ""
425
- onFailure: "Failed to get bucket details"
410
+ onStart: 'Getting bucket details...'
411
+ onSuccess: ''
412
+ onFailure: 'Failed to get bucket details'
426
413
  arguments:
427
414
  - name: name
428
415
  description: Name of the bucket
429
- type: noun
416
+ type: positional
430
417
  required: true
431
418
  # delete
432
419
  - name: delete
433
420
  description: Delete bucket
434
421
  alias: d
435
422
  messages:
436
- onStart: "Deleting bucket..."
423
+ onStart: 'Deleting bucket...'
437
424
  onSuccess: "Bucket '{{name}}' deleted successfully"
438
425
  onFailure: "Failed to delete bucket '{{name}}'"
439
426
  arguments:
440
427
  - name: name
441
428
  description: Name of the bucket or comma separated list of buckets
442
- type: noun
429
+ type: positional
443
430
  required: true
444
431
  multiple: true
445
-
432
+
446
433
  #########################
447
434
  # Manage forks
448
435
  #########################
@@ -452,27 +439,44 @@ commands:
452
439
  operations:
453
440
  # list
454
441
  - name: list
455
- description: List forks
442
+ description: List forks of a bucket
456
443
  alias: l
444
+ messages:
445
+ onStart: 'Listing forks...'
446
+ onSuccess: 'Found {{count}} fork(s)'
447
+ onFailure: 'Failed to list forks'
448
+ onEmpty: 'No forks found for this bucket'
457
449
  arguments:
458
450
  - name: name
459
- description: Name of the bucket
460
- type: noun
451
+ description: Name of the source bucket
452
+ type: positional
461
453
  required: true
454
+ - name: format
455
+ description: Output format
456
+ alias: f
457
+ options: [json, table, xml]
458
+ default: table
462
459
  # create
463
460
  - name: create
464
- description: Create fork
461
+ description: Create a fork of a bucket
465
462
  alias: c
463
+ messages:
464
+ onStart: 'Creating fork...'
465
+ onSuccess: "Fork '{{forkName}}' created from '{{name}}'"
466
+ onFailure: 'Failed to create fork'
466
467
  arguments:
467
468
  - name: name
468
- description: Name of the bucket
469
- type: noun
469
+ description: Name of the source bucket
470
+ type: positional
470
471
  required: true
471
472
  - name: fork-name
472
- description: Name of the fork
473
- type: noun
473
+ description: Name for the new fork
474
+ type: positional
474
475
  required: true
475
-
476
+ - name: snapshot
477
+ description: Create fork from a specific snapshot
478
+ alias: s
479
+
476
480
  #########################
477
481
  # Manage snapshots
478
482
  #########################
@@ -480,28 +484,42 @@ commands:
480
484
  description: Manage snapshots
481
485
  alias: s
482
486
  operations:
483
- # list
487
+ # list
484
488
  - name: list
485
- description: List snapshots
489
+ description: List snapshots of a bucket
486
490
  alias: l
491
+ messages:
492
+ onStart: 'Listing snapshots...'
493
+ onSuccess: 'Found {{count}} snapshot(s)'
494
+ onFailure: 'Failed to list snapshots'
495
+ onEmpty: 'No snapshots found for this bucket'
487
496
  arguments:
488
497
  - name: name
489
498
  description: Name of the bucket
490
- type: noun
499
+ type: positional
491
500
  required: true
492
- # create
493
- - name: create
494
- description: Create snapshot
495
- alias: c
501
+ - name: format
502
+ description: Output format
503
+ alias: f
504
+ options: [json, table, xml]
505
+ default: table
506
+ # take
507
+ - name: take
508
+ description: Take a snapshot of a bucket
509
+ alias: t
510
+ messages:
511
+ onStart: 'Taking snapshot...'
512
+ onSuccess: "Snapshot '{{snapshotName}}' taken for bucket '{{name}}'"
513
+ onFailure: 'Failed to take snapshot'
496
514
  arguments:
497
515
  - name: name
498
516
  description: Name of the bucket
499
- type: noun
517
+ type: positional
500
518
  required: true
501
519
  - name: snapshot-name
502
- description: Name of the snapshot
503
- type: noun
504
- required: true
520
+ description: Name of the snapshot (optional)
521
+ type: positional
522
+ required: false
505
523
 
506
524
  #########################
507
525
  # Manage objects
@@ -512,52 +530,70 @@ commands:
512
530
  operations:
513
531
  # list
514
532
  - name: list
515
- description: List objects
533
+ description: List objects in a bucket
516
534
  alias: l
535
+ messages:
536
+ onStart: 'Listing objects...'
537
+ onSuccess: 'Found {{count}} object(s)'
538
+ onFailure: 'Failed to list objects'
539
+ onEmpty: 'No objects found'
517
540
  arguments:
518
541
  - name: bucket
519
542
  description: Name of the bucket
520
- alias: b
543
+ type: positional
521
544
  required: true
545
+ - name: prefix
546
+ description: Filter objects by prefix
547
+ alias: p
522
548
  - name: format
523
- description: Format
549
+ description: Output format
524
550
  alias: f
525
551
  options: [json, table, xml]
526
552
  default: table
527
553
  # get
528
554
  - name: get
529
- description: Get object
555
+ description: Get an object
530
556
  alias: g
557
+ messages:
558
+ onStart: 'Getting object...'
559
+ onSuccess: ''
560
+ onFailure: 'Failed to get object'
531
561
  arguments:
532
562
  - name: bucket
533
563
  description: Name of the bucket
534
- type: noun
564
+ type: positional
535
565
  required: true
536
566
  - name: key
537
- description: Name of the object
538
- type: noun
567
+ description: Key of the object
568
+ type: positional
539
569
  required: true
540
- - name: format
541
- description: Format
542
- alias: f
543
- options: [string, file, stream]
544
- default: string
545
- # create
546
- - name: create
547
- description: Create object
548
- alias: c
570
+ - name: output
571
+ description: Output file path (if not specified, prints to stdout)
572
+ alias: o
573
+ - name: mode
574
+ description: Response mode (auto-detected from extension if not specified)
575
+ alias: m
576
+ options: [string, stream]
577
+ # put
578
+ - name: put
579
+ description: Upload an object
580
+ alias: p
581
+ messages:
582
+ onStart: 'Uploading object...'
583
+ onSuccess: "Object '{{key}}' uploaded successfully"
584
+ onFailure: 'Failed to upload object'
549
585
  arguments:
550
586
  - name: bucket
551
587
  description: Name of the bucket
552
- type: noun
588
+ type: positional
553
589
  required: true
554
- - name: name
555
- description: Name of the object
556
- type: noun
590
+ - name: key
591
+ description: Key for the object
592
+ type: positional
557
593
  required: true
558
- - name: body
559
- description: Body of the object
560
- alias: d
594
+ - name: file
595
+ description: Path to the file to upload
596
+ type: positional
561
597
  required: true
562
598
  - name: access
563
599
  description: Access level
@@ -566,62 +602,27 @@ commands:
566
602
  default: private
567
603
  - name: content-type
568
604
  description: Content type
569
- alias: c
570
- - name: content-disposition
571
- description: Content disposition
572
- alias: d
573
- - name: tier
574
- description: Tier
575
605
  alias: t
576
- options: *tier_options
577
- default: STANDARD
606
+ - name: format
607
+ description: Output format
608
+ alias: f
609
+ options: [json, table, xml]
610
+ default: table
578
611
  # delete
579
612
  - name: delete
580
- description: Delete object
613
+ description: Delete an object
581
614
  alias: d
615
+ messages:
616
+ onStart: 'Deleting object...'
617
+ onSuccess: "Object '{{key}}' deleted successfully"
618
+ onFailure: 'Failed to delete object'
582
619
  arguments:
583
620
  - name: bucket
584
621
  description: Name of the bucket
585
- type: noun
622
+ type: positional
586
623
  required: true
587
624
  - name: key
588
- description: Name of the object (comma separated names for multiple objects)
589
- type: noun
590
- required: true
591
- multiple: true
592
- # copy
593
- - name: copy
594
- description: Copy object
595
- alias: c
596
- arguments:
597
- - name: bucket
598
- description: Name of the bucket
599
- type: noun
600
- required: true
601
- - name: name
602
- description: Name of the object (comma separated names for multiple objects)
603
- type: noun
625
+ description: Key of the object (comma separated for multiple)
626
+ type: positional
604
627
  required: true
605
628
  multiple: true
606
- - name: destination
607
- description: Destination
608
- type: noun
609
- required: true
610
- # move
611
- - name: move
612
- description: Move object
613
- alias: m
614
- arguments:
615
- - name: bucket
616
- description: Name of the bucket
617
- type: noun
618
- required: true
619
- - name: source
620
- description: Name of the object (comma separated names for multiple objects)
621
- type: noun
622
- required: true
623
- multiple: true
624
- - name: destination
625
- description: Destination
626
- type: noun
627
- required: true