@hardfin/cli 0.1.0-dev.24 → 0.1.0-dev.25

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.
@@ -0,0 +1,2570 @@
1
+ {
2
+ "globalFlags": [
3
+ {
4
+ "name": "api-url",
5
+ "description": "The API to call, whose host also holds the authorization server",
6
+ "valueName": "url"
7
+ },
8
+ {
9
+ "name": "issuer-url",
10
+ "description": "The authorization server, when it does not sit at the API's host",
11
+ "valueName": "url"
12
+ }
13
+ ],
14
+ "commands": [
15
+ {
16
+ "name": "login",
17
+ "summary": "Sign in to Hardfin through a browser",
18
+ "runs": true,
19
+ "flags": [
20
+ {
21
+ "name": "scope",
22
+ "description": "The scopes to ask for, separated by spaces",
23
+ "valueName": "scopes"
24
+ },
25
+ {
26
+ "name": "no-browser",
27
+ "description": "Print the URL instead of opening it"
28
+ },
29
+ {
30
+ "name": "device",
31
+ "description": "Approve on another machine, by typing a code, with no listener on this one"
32
+ },
33
+ {
34
+ "name": "json",
35
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
36
+ }
37
+ ],
38
+ "arguments": [],
39
+ "subcommands": []
40
+ },
41
+ {
42
+ "name": "logout",
43
+ "summary": "Sign out, and tell Hardfin to forget this machine",
44
+ "runs": true,
45
+ "flags": [
46
+ {
47
+ "name": "json",
48
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
49
+ }
50
+ ],
51
+ "arguments": [],
52
+ "subcommands": []
53
+ },
54
+ {
55
+ "name": "status",
56
+ "summary": "Report what this CLI is configured with, signed in as, and able to reach",
57
+ "runs": true,
58
+ "flags": [
59
+ {
60
+ "name": "offline",
61
+ "description": "Skip every network call, and report only what is on this machine"
62
+ },
63
+ {
64
+ "name": "json",
65
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
66
+ }
67
+ ],
68
+ "arguments": [],
69
+ "subcommands": []
70
+ },
71
+ {
72
+ "name": "asset",
73
+ "summary": "Asset commands",
74
+ "runs": false,
75
+ "flags": [],
76
+ "arguments": [],
77
+ "subcommands": [
78
+ {
79
+ "name": "list",
80
+ "summary": "Get asset listing",
81
+ "runs": true,
82
+ "flags": [
83
+ {
84
+ "name": "page",
85
+ "description": "The page to return, starting at 1",
86
+ "valueName": "number"
87
+ },
88
+ {
89
+ "name": "limit",
90
+ "description": "The number of records per page, from 1 to 100",
91
+ "valueName": "number"
92
+ },
93
+ {
94
+ "name": "sort-by",
95
+ "description": "The field to sort by",
96
+ "valueName": "value",
97
+ "values": [
98
+ "serial",
99
+ "project",
100
+ "item",
101
+ "location",
102
+ "owner",
103
+ "activity"
104
+ ]
105
+ },
106
+ {
107
+ "name": "sort-order",
108
+ "description": "The sort direction",
109
+ "valueName": "value",
110
+ "values": [
111
+ "ASC",
112
+ "DESC"
113
+ ]
114
+ },
115
+ {
116
+ "name": "archived",
117
+ "description": "Whether to return unarchived records, archived records, or all of them",
118
+ "valueName": "value",
119
+ "values": [
120
+ "all",
121
+ "false",
122
+ "true"
123
+ ]
124
+ },
125
+ {
126
+ "name": "search-query",
127
+ "description": "Text to match against the serial, description, item, project, owner, and location, ignored when shorter than three characters",
128
+ "valueName": "value"
129
+ },
130
+ {
131
+ "name": "for-asset-id",
132
+ "description": "The IDs of the assets to list",
133
+ "valueName": "uuid",
134
+ "repeatable": true
135
+ },
136
+ {
137
+ "name": "for-asset-key",
138
+ "description": "The keys of the assets to list",
139
+ "valueName": "value",
140
+ "repeatable": true
141
+ },
142
+ {
143
+ "name": "for-customer",
144
+ "description": "The IDs of the customers whose assets to list",
145
+ "valueName": "uuid",
146
+ "repeatable": true
147
+ },
148
+ {
149
+ "name": "for-item",
150
+ "description": "The IDs of the items whose assets to list",
151
+ "valueName": "uuid",
152
+ "repeatable": true
153
+ },
154
+ {
155
+ "name": "at-site",
156
+ "description": "The IDs of the locations whose assets to list",
157
+ "valueName": "uuid",
158
+ "repeatable": true
159
+ },
160
+ {
161
+ "name": "at-customer-sites",
162
+ "description": "The IDs of the customers whose sites to list assets at",
163
+ "valueName": "uuid",
164
+ "repeatable": true
165
+ },
166
+ {
167
+ "name": "with-functional-statuses",
168
+ "description": "The functional statuses to list, where SCRAPPED lists scrapped assets",
169
+ "valueName": "value",
170
+ "repeatable": true
171
+ },
172
+ {
173
+ "name": "with-transit-statuses",
174
+ "description": "The transit statuses to list",
175
+ "valueName": "value",
176
+ "repeatable": true
177
+ },
178
+ {
179
+ "name": "with-inventory-statuses",
180
+ "description": "In_inventory, not_in_inventory, or both, which filters only when one is sent",
181
+ "valueName": "value",
182
+ "repeatable": true
183
+ },
184
+ {
185
+ "name": "with-location-company-type",
186
+ "description": "Customer, manufacturer, or both, for assets at customer sites or your own, which filters only when one is sent",
187
+ "valueName": "value",
188
+ "repeatable": true
189
+ },
190
+ {
191
+ "name": "with-project-status",
192
+ "description": "The project assignments to list: upcoming, active, past, or none",
193
+ "valueName": "value",
194
+ "repeatable": true
195
+ },
196
+ {
197
+ "name": "with-owner",
198
+ "description": "Manufacturer for assets your organization owns, customer for assets customers own, or both",
199
+ "valueName": "value",
200
+ "repeatable": true
201
+ },
202
+ {
203
+ "name": "for-project",
204
+ "description": "The IDs of the projects whose assets to list",
205
+ "valueName": "uuid",
206
+ "repeatable": true
207
+ },
208
+ {
209
+ "name": "scrapped",
210
+ "description": "Whether to list unscrapped assets, scrapped assets, or all of them",
211
+ "valueName": "value",
212
+ "values": [
213
+ "all",
214
+ "false",
215
+ "true"
216
+ ]
217
+ },
218
+ {
219
+ "name": "json",
220
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
221
+ }
222
+ ],
223
+ "arguments": [],
224
+ "subcommands": []
225
+ },
226
+ {
227
+ "name": "create",
228
+ "summary": "Create asset",
229
+ "runs": true,
230
+ "flags": [
231
+ {
232
+ "name": "allocated-indirect",
233
+ "description": "One unit's share of overhead, a cost component",
234
+ "valueName": "value"
235
+ },
236
+ {
237
+ "name": "bill-of-materials",
238
+ "description": "The parts cost of one unit, a cost component",
239
+ "valueName": "value"
240
+ },
241
+ {
242
+ "name": "depreciation-model",
243
+ "description": "The method one unit is depreciated by, or null to clear it",
244
+ "valueName": "value",
245
+ "values": [
246
+ "DOUBLE_DECLINING",
247
+ "STRAIGHT_LINE",
248
+ "SUM_YEAR",
249
+ "UNIT_OF_PRODUCTION"
250
+ ]
251
+ },
252
+ {
253
+ "name": "description",
254
+ "description": "A free-form description of the asset",
255
+ "valueName": "value"
256
+ },
257
+ {
258
+ "name": "direct-labor",
259
+ "description": "The labor cost to build one unit, a cost component",
260
+ "valueName": "value"
261
+ },
262
+ {
263
+ "name": "freight-inbound",
264
+ "description": "The shipping cost to receive one unit, a cost component",
265
+ "valueName": "value"
266
+ },
267
+ {
268
+ "name": "freight-outbound",
269
+ "description": "The shipping cost to deploy one unit, a deployment cost component",
270
+ "valueName": "value"
271
+ },
272
+ {
273
+ "name": "functional-status",
274
+ "description": "The asset's starting functional status, FUNCTIONAL when absent, which cannot be SCRAPPED",
275
+ "valueName": "value",
276
+ "values": [
277
+ "FUNCTIONAL",
278
+ "NEEDS_REVIEW",
279
+ "NON-FUNCTIONAL",
280
+ "SCRAPPED"
281
+ ]
282
+ },
283
+ {
284
+ "name": "in-inventory-date",
285
+ "description": "The day the asset entered inventory, which cannot be in the future",
286
+ "valueName": "value"
287
+ },
288
+ {
289
+ "name": "in-service-date",
290
+ "description": "The day the asset was put into service, which Hardfin sets itself when absent",
291
+ "valueName": "value"
292
+ },
293
+ {
294
+ "name": "installation",
295
+ "description": "The cost to install one unit, a deployment cost component",
296
+ "valueName": "value"
297
+ },
298
+ {
299
+ "name": "interest",
300
+ "description": "The financing cost of one unit, a cost component",
301
+ "valueName": "value"
302
+ },
303
+ {
304
+ "name": "item-id",
305
+ "description": "The ID of the catalog item the asset is a unit of",
306
+ "valueName": "uuid"
307
+ },
308
+ {
309
+ "name": "location-id",
310
+ "description": "The ID of the location the asset enters inventory at",
311
+ "valueName": "uuid"
312
+ },
313
+ {
314
+ "name": "salvage-value",
315
+ "description": "The value one unit keeps at the end of its useful life, or null to clear it",
316
+ "valueName": "value"
317
+ },
318
+ {
319
+ "name": "serial",
320
+ "description": "The asset's serial number, unique within its item",
321
+ "valueName": "value"
322
+ },
323
+ {
324
+ "name": "simple-cost-basis",
325
+ "description": "A single cost for one unit, which cannot be sent together with the cost components",
326
+ "valueName": "value"
327
+ },
328
+ {
329
+ "name": "tariffs",
330
+ "description": "The import duty paid on one unit, a cost component",
331
+ "valueName": "value"
332
+ },
333
+ {
334
+ "name": "tax",
335
+ "description": "The tax paid on one unit, a cost component",
336
+ "valueName": "value"
337
+ },
338
+ {
339
+ "name": "useful-life",
340
+ "description": "The number of months one unit is depreciated over, or null to clear it",
341
+ "valueName": "number"
342
+ },
343
+ {
344
+ "name": "unset",
345
+ "description": "A field to clear, named as its flag is, repeatable",
346
+ "valueName": "field",
347
+ "repeatable": true
348
+ },
349
+ {
350
+ "name": "json",
351
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
352
+ }
353
+ ],
354
+ "arguments": [],
355
+ "subcommands": []
356
+ },
357
+ {
358
+ "name": "move",
359
+ "summary": "Move commands",
360
+ "runs": false,
361
+ "flags": [],
362
+ "arguments": [],
363
+ "subcommands": [
364
+ {
365
+ "name": "execute",
366
+ "summary": "Execute commands",
367
+ "runs": false,
368
+ "flags": [],
369
+ "arguments": [],
370
+ "subcommands": [
371
+ {
372
+ "name": "create",
373
+ "summary": "Execute asset move",
374
+ "runs": true,
375
+ "flags": [
376
+ {
377
+ "name": "move",
378
+ "description": "The moves to carry out",
379
+ "valueName": "assetId=,deliverAt=,deliverAtTimezone=,destinationId=,originId=,shipAt=,shipAtTimezone=",
380
+ "repeatable": true
381
+ },
382
+ {
383
+ "name": "json",
384
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
385
+ }
386
+ ],
387
+ "arguments": [],
388
+ "subcommands": []
389
+ }
390
+ ]
391
+ },
392
+ {
393
+ "name": "plan",
394
+ "summary": "Plan commands",
395
+ "runs": false,
396
+ "flags": [],
397
+ "arguments": [],
398
+ "subcommands": [
399
+ {
400
+ "name": "create",
401
+ "summary": "Plan asset move",
402
+ "runs": true,
403
+ "flags": [
404
+ {
405
+ "name": "move",
406
+ "description": "The moves to plan",
407
+ "valueName": "assetId=,deliverAt=,id=,shipAt=",
408
+ "repeatable": true
409
+ },
410
+ {
411
+ "name": "json",
412
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
413
+ }
414
+ ],
415
+ "arguments": [],
416
+ "subcommands": []
417
+ }
418
+ ]
419
+ }
420
+ ]
421
+ },
422
+ {
423
+ "name": "get",
424
+ "summary": "Get asset",
425
+ "runs": true,
426
+ "flags": [
427
+ {
428
+ "name": "json",
429
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
430
+ }
431
+ ],
432
+ "arguments": [
433
+ {}
434
+ ],
435
+ "subcommands": []
436
+ },
437
+ {
438
+ "name": "update",
439
+ "summary": "Patch asset",
440
+ "runs": true,
441
+ "flags": [
442
+ {
443
+ "name": "description",
444
+ "description": "The asset's new description, or null to clear it",
445
+ "valueName": "value"
446
+ },
447
+ {
448
+ "name": "functional-status",
449
+ "description": "The asset's new functional status, which cannot be SCRAPPED because scrapping has its own endpoint",
450
+ "valueName": "value",
451
+ "values": [
452
+ "FUNCTIONAL",
453
+ "NEEDS_REVIEW",
454
+ "NON-FUNCTIONAL",
455
+ "SCRAPPED"
456
+ ]
457
+ },
458
+ {
459
+ "name": "in-inventory-date",
460
+ "description": "The day the asset entered inventory, which cannot be in the future",
461
+ "valueName": "value"
462
+ },
463
+ {
464
+ "name": "initial-location-id",
465
+ "description": "The ID of the location the asset entered inventory at",
466
+ "valueName": "uuid"
467
+ },
468
+ {
469
+ "name": "metadata",
470
+ "description": "New values for the asset's custom fields, each naming its field",
471
+ "valueName": "fieldId=,value=",
472
+ "repeatable": true
473
+ },
474
+ {
475
+ "name": "serial",
476
+ "description": "The asset's new serial number, which cannot be empty",
477
+ "valueName": "value"
478
+ },
479
+ {
480
+ "name": "unset",
481
+ "description": "A field to clear, named as its flag is, repeatable",
482
+ "valueName": "field",
483
+ "repeatable": true
484
+ },
485
+ {
486
+ "name": "json",
487
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
488
+ }
489
+ ],
490
+ "arguments": [
491
+ {}
492
+ ],
493
+ "subcommands": []
494
+ },
495
+ {
496
+ "name": "accounting",
497
+ "summary": "Accounting commands",
498
+ "runs": false,
499
+ "flags": [],
500
+ "arguments": [],
501
+ "subcommands": [
502
+ {
503
+ "name": "update",
504
+ "summary": "Update asset accounting",
505
+ "runs": true,
506
+ "flags": [
507
+ {
508
+ "name": "allocated-indirect",
509
+ "description": "One unit's share of overhead, a cost component",
510
+ "valueName": "value"
511
+ },
512
+ {
513
+ "name": "bill-of-materials",
514
+ "description": "The parts cost of one unit, a cost component",
515
+ "valueName": "value"
516
+ },
517
+ {
518
+ "name": "depreciation-model",
519
+ "description": "The method one unit is depreciated by, or null to clear it",
520
+ "valueName": "value",
521
+ "values": [
522
+ "DOUBLE_DECLINING",
523
+ "STRAIGHT_LINE",
524
+ "SUM_YEAR",
525
+ "UNIT_OF_PRODUCTION"
526
+ ]
527
+ },
528
+ {
529
+ "name": "direct-labor",
530
+ "description": "The labor cost to build one unit, a cost component",
531
+ "valueName": "value"
532
+ },
533
+ {
534
+ "name": "freight-inbound",
535
+ "description": "The shipping cost to receive one unit, a cost component",
536
+ "valueName": "value"
537
+ },
538
+ {
539
+ "name": "freight-outbound",
540
+ "description": "The shipping cost to deploy one unit, a deployment cost component",
541
+ "valueName": "value"
542
+ },
543
+ {
544
+ "name": "in-service-date",
545
+ "description": "The day the asset was put into service and began depreciating, or null to clear it",
546
+ "valueName": "value"
547
+ },
548
+ {
549
+ "name": "installation",
550
+ "description": "The cost to install one unit, a deployment cost component",
551
+ "valueName": "value"
552
+ },
553
+ {
554
+ "name": "interest",
555
+ "description": "The financing cost of one unit, a cost component",
556
+ "valueName": "value"
557
+ },
558
+ {
559
+ "name": "is-in-service-date-managed-automatically",
560
+ "description": "Whether Hardfin sets the in-service date itself, which sending an in-service date turns off",
561
+ "negatable": true
562
+ },
563
+ {
564
+ "name": "salvage-value",
565
+ "description": "The value one unit keeps at the end of its useful life, or null to clear it",
566
+ "valueName": "value"
567
+ },
568
+ {
569
+ "name": "simple-cost-basis",
570
+ "description": "A single cost for one unit, which cannot be sent together with the cost components",
571
+ "valueName": "value"
572
+ },
573
+ {
574
+ "name": "tariffs",
575
+ "description": "The import duty paid on one unit, a cost component",
576
+ "valueName": "value"
577
+ },
578
+ {
579
+ "name": "tax",
580
+ "description": "The tax paid on one unit, a cost component",
581
+ "valueName": "value"
582
+ },
583
+ {
584
+ "name": "useful-life",
585
+ "description": "The number of months one unit is depreciated over, or null to clear it",
586
+ "valueName": "number"
587
+ },
588
+ {
589
+ "name": "unset",
590
+ "description": "A field to clear, named as its flag is, repeatable",
591
+ "valueName": "field",
592
+ "repeatable": true
593
+ },
594
+ {
595
+ "name": "json",
596
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
597
+ }
598
+ ],
599
+ "arguments": [
600
+ {}
601
+ ],
602
+ "subcommands": []
603
+ },
604
+ {
605
+ "name": "in-service-management",
606
+ "summary": "In service management commands",
607
+ "runs": false,
608
+ "flags": [],
609
+ "arguments": [],
610
+ "subcommands": [
611
+ {
612
+ "name": "update",
613
+ "summary": "Toggle in service date management",
614
+ "runs": true,
615
+ "flags": [
616
+ {
617
+ "name": "automatic",
618
+ "description": "Whether Hardfin sets the asset's in-service date itself",
619
+ "negatable": true
620
+ },
621
+ {
622
+ "name": "json",
623
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
624
+ }
625
+ ],
626
+ "arguments": [
627
+ {}
628
+ ],
629
+ "subcommands": []
630
+ }
631
+ ]
632
+ }
633
+ ]
634
+ },
635
+ {
636
+ "name": "cost-adjustment",
637
+ "summary": "Cost adjustment commands",
638
+ "runs": false,
639
+ "flags": [],
640
+ "arguments": [],
641
+ "subcommands": [
642
+ {
643
+ "name": "create",
644
+ "summary": "Create asset cost adjustment",
645
+ "runs": true,
646
+ "flags": [
647
+ {
648
+ "name": "adjustment-type",
649
+ "description": "Whether the adjustment adds to the asset's cost basis or writes it down",
650
+ "valueName": "value",
651
+ "values": [
652
+ "CAPITALIZATION",
653
+ "IMPAIRMENT"
654
+ ]
655
+ },
656
+ {
657
+ "name": "amount",
658
+ "description": "How much the adjustment changes the cost basis by, which must be greater than zero",
659
+ "valueName": "value"
660
+ },
661
+ {
662
+ "name": "effective-date",
663
+ "description": "The day the adjustment takes effect, which cannot be in the future",
664
+ "valueName": "value"
665
+ },
666
+ {
667
+ "name": "notes",
668
+ "description": "Free-form detail about the adjustment, which a reason of OTHER requires",
669
+ "valueName": "value"
670
+ },
671
+ {
672
+ "name": "reason",
673
+ "description": "Why the adjustment was made, which must be one its adjustment type allows",
674
+ "valueName": "value",
675
+ "values": [
676
+ "ADDITION",
677
+ "BETTERMENT",
678
+ "DAMAGE",
679
+ "INSTALLATION",
680
+ "LIFE_EXTENSION",
681
+ "MARKET_DECLINE",
682
+ "OBSOLESCENCE",
683
+ "OTHER",
684
+ "REGULATORY"
685
+ ]
686
+ },
687
+ {
688
+ "name": "unset",
689
+ "description": "A field to clear, named as its flag is, repeatable",
690
+ "valueName": "field",
691
+ "repeatable": true
692
+ },
693
+ {
694
+ "name": "json",
695
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
696
+ }
697
+ ],
698
+ "arguments": [
699
+ {}
700
+ ],
701
+ "subcommands": []
702
+ }
703
+ ]
704
+ },
705
+ {
706
+ "name": "event",
707
+ "summary": "Event commands",
708
+ "runs": false,
709
+ "flags": [],
710
+ "arguments": [],
711
+ "subcommands": [
712
+ {
713
+ "name": "list",
714
+ "summary": "Get asset event list",
715
+ "runs": true,
716
+ "flags": [
717
+ {
718
+ "name": "json",
719
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
720
+ }
721
+ ],
722
+ "arguments": [
723
+ {}
724
+ ],
725
+ "subcommands": []
726
+ }
727
+ ]
728
+ },
729
+ {
730
+ "name": "event-group",
731
+ "summary": "Event group commands",
732
+ "runs": false,
733
+ "flags": [],
734
+ "arguments": [],
735
+ "subcommands": [
736
+ {
737
+ "name": "list",
738
+ "summary": "Get asset event group listing",
739
+ "runs": true,
740
+ "flags": [
741
+ {
742
+ "name": "start",
743
+ "description": "The earliest an event group may have happened, or null to read from the first",
744
+ "valueName": "value"
745
+ },
746
+ {
747
+ "name": "end",
748
+ "description": "The latest an event group may have happened, or null to read through the last",
749
+ "valueName": "value"
750
+ },
751
+ {
752
+ "name": "json",
753
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
754
+ }
755
+ ],
756
+ "arguments": [
757
+ {}
758
+ ],
759
+ "subcommands": []
760
+ },
761
+ {
762
+ "name": "get",
763
+ "summary": "Get asset event group",
764
+ "runs": true,
765
+ "flags": [
766
+ {
767
+ "name": "json",
768
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
769
+ }
770
+ ],
771
+ "arguments": [
772
+ {},
773
+ {}
774
+ ],
775
+ "subcommands": []
776
+ }
777
+ ]
778
+ },
779
+ {
780
+ "name": "file",
781
+ "summary": "File commands",
782
+ "runs": false,
783
+ "flags": [],
784
+ "arguments": [],
785
+ "subcommands": [
786
+ {
787
+ "name": "list",
788
+ "summary": "Get asset files",
789
+ "runs": true,
790
+ "flags": [
791
+ {
792
+ "name": "json",
793
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
794
+ }
795
+ ],
796
+ "arguments": [
797
+ {}
798
+ ],
799
+ "subcommands": []
800
+ },
801
+ {
802
+ "name": "delete",
803
+ "summary": "Delete asset file",
804
+ "runs": true,
805
+ "flags": [
806
+ {
807
+ "name": "json",
808
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
809
+ }
810
+ ],
811
+ "arguments": [
812
+ {},
813
+ {}
814
+ ],
815
+ "subcommands": []
816
+ }
817
+ ]
818
+ },
819
+ {
820
+ "name": "functional-status",
821
+ "summary": "Functional status commands",
822
+ "runs": false,
823
+ "flags": [],
824
+ "arguments": [],
825
+ "subcommands": [
826
+ {
827
+ "name": "list",
828
+ "summary": "Get asset functional status history",
829
+ "runs": true,
830
+ "flags": [
831
+ {
832
+ "name": "json",
833
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
834
+ }
835
+ ],
836
+ "arguments": [
837
+ {}
838
+ ],
839
+ "subcommands": []
840
+ }
841
+ ]
842
+ },
843
+ {
844
+ "name": "ownership",
845
+ "summary": "Ownership commands",
846
+ "runs": false,
847
+ "flags": [],
848
+ "arguments": [],
849
+ "subcommands": [
850
+ {
851
+ "name": "list",
852
+ "summary": "Get asset ownership history",
853
+ "runs": true,
854
+ "flags": [
855
+ {
856
+ "name": "json",
857
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
858
+ }
859
+ ],
860
+ "arguments": [
861
+ {}
862
+ ],
863
+ "subcommands": []
864
+ },
865
+ {
866
+ "name": "create",
867
+ "summary": "Create asset ownership",
868
+ "runs": true,
869
+ "flags": [
870
+ {
871
+ "name": "customer-id",
872
+ "description": "The ID of the customer that takes ownership of the asset",
873
+ "valueName": "uuid"
874
+ },
875
+ {
876
+ "name": "date",
877
+ "description": "The day the customer takes ownership, which cannot be in the future",
878
+ "valueName": "value"
879
+ },
880
+ {
881
+ "name": "sale-price",
882
+ "description": "What the customer paid for the asset, which cannot be negative",
883
+ "valueName": "value"
884
+ },
885
+ {
886
+ "name": "unset",
887
+ "description": "A field to clear, named as its flag is, repeatable",
888
+ "valueName": "field",
889
+ "repeatable": true
890
+ },
891
+ {
892
+ "name": "json",
893
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
894
+ }
895
+ ],
896
+ "arguments": [
897
+ {}
898
+ ],
899
+ "subcommands": []
900
+ },
901
+ {
902
+ "name": "clear",
903
+ "summary": "Clear the ownership an asset holds today",
904
+ "runs": true,
905
+ "flags": [
906
+ {
907
+ "name": "date",
908
+ "description": "The day your organization takes the asset back, which cannot be in the future",
909
+ "valueName": "value"
910
+ },
911
+ {
912
+ "name": "json",
913
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
914
+ }
915
+ ],
916
+ "arguments": [
917
+ {}
918
+ ],
919
+ "subcommands": []
920
+ },
921
+ {
922
+ "name": "get",
923
+ "summary": "Get asset ownership segment",
924
+ "runs": true,
925
+ "flags": [
926
+ {
927
+ "name": "json",
928
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
929
+ }
930
+ ],
931
+ "arguments": [
932
+ {},
933
+ {}
934
+ ],
935
+ "subcommands": []
936
+ },
937
+ {
938
+ "name": "update",
939
+ "summary": "Patch asset ownership segment",
940
+ "runs": true,
941
+ "flags": [
942
+ {
943
+ "name": "customer-id",
944
+ "description": "The ID of the customer that owned the asset during the segment",
945
+ "valueName": "uuid"
946
+ },
947
+ {
948
+ "name": "date",
949
+ "description": "The day the segment's owner took ownership, which cannot be in the future",
950
+ "valueName": "value"
951
+ },
952
+ {
953
+ "name": "sale-price",
954
+ "description": "What the owner paid for the asset, which cannot be negative",
955
+ "valueName": "value"
956
+ },
957
+ {
958
+ "name": "unset",
959
+ "description": "A field to clear, named as its flag is, repeatable",
960
+ "valueName": "field",
961
+ "repeatable": true
962
+ },
963
+ {
964
+ "name": "json",
965
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
966
+ }
967
+ ],
968
+ "arguments": [
969
+ {},
970
+ {}
971
+ ],
972
+ "subcommands": []
973
+ },
974
+ {
975
+ "name": "delete",
976
+ "summary": "Delete asset ownership segment",
977
+ "runs": true,
978
+ "flags": [
979
+ {
980
+ "name": "json",
981
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
982
+ }
983
+ ],
984
+ "arguments": [
985
+ {},
986
+ {}
987
+ ],
988
+ "subcommands": []
989
+ }
990
+ ]
991
+ },
992
+ {
993
+ "name": "scrap",
994
+ "summary": "Scrap commands",
995
+ "runs": false,
996
+ "flags": [],
997
+ "arguments": [],
998
+ "subcommands": [
999
+ {
1000
+ "name": "create",
1001
+ "summary": "Scrap asset",
1002
+ "runs": true,
1003
+ "flags": [
1004
+ {
1005
+ "name": "disposal-date",
1006
+ "description": "The day the asset was scrapped",
1007
+ "valueName": "value"
1008
+ },
1009
+ {
1010
+ "name": "disposal-price",
1011
+ "description": "What the scrapped asset was sold for, or null when it was not sold",
1012
+ "valueName": "value"
1013
+ },
1014
+ {
1015
+ "name": "disposal-reason",
1016
+ "description": "Why the asset was scrapped",
1017
+ "valueName": "value"
1018
+ },
1019
+ {
1020
+ "name": "unset",
1021
+ "description": "A field to clear, named as its flag is, repeatable",
1022
+ "valueName": "field",
1023
+ "repeatable": true
1024
+ },
1025
+ {
1026
+ "name": "json",
1027
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1028
+ }
1029
+ ],
1030
+ "arguments": [
1031
+ {}
1032
+ ],
1033
+ "subcommands": []
1034
+ }
1035
+ ]
1036
+ },
1037
+ {
1038
+ "name": "unscrap",
1039
+ "summary": "Unscrap commands",
1040
+ "runs": false,
1041
+ "flags": [],
1042
+ "arguments": [],
1043
+ "subcommands": [
1044
+ {
1045
+ "name": "create",
1046
+ "summary": "Unscrap asset",
1047
+ "runs": true,
1048
+ "flags": [
1049
+ {
1050
+ "name": "json",
1051
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1052
+ }
1053
+ ],
1054
+ "arguments": [
1055
+ {}
1056
+ ],
1057
+ "subcommands": []
1058
+ }
1059
+ ]
1060
+ },
1061
+ {
1062
+ "name": "url-link",
1063
+ "summary": "URL link commands",
1064
+ "runs": false,
1065
+ "flags": [],
1066
+ "arguments": [],
1067
+ "subcommands": [
1068
+ {
1069
+ "name": "list",
1070
+ "summary": "Get asset URL links",
1071
+ "runs": true,
1072
+ "flags": [
1073
+ {
1074
+ "name": "json",
1075
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1076
+ }
1077
+ ],
1078
+ "arguments": [
1079
+ {}
1080
+ ],
1081
+ "subcommands": []
1082
+ },
1083
+ {
1084
+ "name": "create",
1085
+ "summary": "Create asset URL link",
1086
+ "runs": true,
1087
+ "flags": [
1088
+ {
1089
+ "name": "name",
1090
+ "description": "The link's display name, or null to show the address instead",
1091
+ "valueName": "value"
1092
+ },
1093
+ {
1094
+ "name": "url",
1095
+ "description": "The address the link points to",
1096
+ "valueName": "value"
1097
+ },
1098
+ {
1099
+ "name": "unset",
1100
+ "description": "A field to clear, named as its flag is, repeatable",
1101
+ "valueName": "field",
1102
+ "repeatable": true
1103
+ },
1104
+ {
1105
+ "name": "json",
1106
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1107
+ }
1108
+ ],
1109
+ "arguments": [
1110
+ {}
1111
+ ],
1112
+ "subcommands": []
1113
+ }
1114
+ ]
1115
+ },
1116
+ {
1117
+ "name": "useful-life-revision",
1118
+ "summary": "Useful life revision commands",
1119
+ "runs": false,
1120
+ "flags": [],
1121
+ "arguments": [],
1122
+ "subcommands": [
1123
+ {
1124
+ "name": "create",
1125
+ "summary": "Create asset useful life revision",
1126
+ "runs": true,
1127
+ "flags": [
1128
+ {
1129
+ "name": "effective-date",
1130
+ "description": "The day the revised useful life takes effect, which cannot be in the future",
1131
+ "valueName": "value"
1132
+ },
1133
+ {
1134
+ "name": "notes",
1135
+ "description": "Free-form detail about the revision, which a reason of OTHER requires",
1136
+ "valueName": "value"
1137
+ },
1138
+ {
1139
+ "name": "reason",
1140
+ "description": "Why the useful life was revised",
1141
+ "valueName": "value",
1142
+ "values": [
1143
+ "CHANGE_IN_USE",
1144
+ "DAMAGE",
1145
+ "OBSOLESCENCE",
1146
+ "OTHER",
1147
+ "REASSESSMENT",
1148
+ "REFURBISHMENT",
1149
+ "REGULATORY"
1150
+ ]
1151
+ },
1152
+ {
1153
+ "name": "useful-life-months",
1154
+ "description": "The asset's revised useful life in months",
1155
+ "valueName": "number"
1156
+ },
1157
+ {
1158
+ "name": "unset",
1159
+ "description": "A field to clear, named as its flag is, repeatable",
1160
+ "valueName": "field",
1161
+ "repeatable": true
1162
+ },
1163
+ {
1164
+ "name": "json",
1165
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1166
+ }
1167
+ ],
1168
+ "arguments": [
1169
+ {}
1170
+ ],
1171
+ "subcommands": []
1172
+ }
1173
+ ]
1174
+ }
1175
+ ]
1176
+ },
1177
+ {
1178
+ "name": "customer",
1179
+ "summary": "Customer commands",
1180
+ "runs": false,
1181
+ "flags": [],
1182
+ "arguments": [],
1183
+ "subcommands": [
1184
+ {
1185
+ "name": "list",
1186
+ "summary": "Get customers",
1187
+ "runs": true,
1188
+ "flags": [
1189
+ {
1190
+ "name": "page",
1191
+ "description": "The page to return, starting at 1",
1192
+ "valueName": "number"
1193
+ },
1194
+ {
1195
+ "name": "limit",
1196
+ "description": "The number of records per page, from 1 to 100",
1197
+ "valueName": "number"
1198
+ },
1199
+ {
1200
+ "name": "sort-by",
1201
+ "description": "The field to sort by",
1202
+ "valueName": "value"
1203
+ },
1204
+ {
1205
+ "name": "sort-order",
1206
+ "description": "The sort direction",
1207
+ "valueName": "value",
1208
+ "values": [
1209
+ "ASC",
1210
+ "DESC"
1211
+ ]
1212
+ },
1213
+ {
1214
+ "name": "archived",
1215
+ "description": "Whether to return unarchived records, archived records, or all of them",
1216
+ "valueName": "value",
1217
+ "values": [
1218
+ "all",
1219
+ "false",
1220
+ "true"
1221
+ ]
1222
+ },
1223
+ {
1224
+ "name": "is-customer",
1225
+ "description": "True to return only customers, or false to return only non-customers"
1226
+ },
1227
+ {
1228
+ "name": "is-supplier",
1229
+ "description": "True to return only suppliers, or false to return only non-suppliers"
1230
+ },
1231
+ {
1232
+ "name": "sync-statuses",
1233
+ "description": "The CRM sync statuses to return: in-sync, out-of-sync, or not-linked",
1234
+ "valueName": "value",
1235
+ "repeatable": true
1236
+ },
1237
+ {
1238
+ "name": "search",
1239
+ "description": "Text to match against customer names",
1240
+ "valueName": "value"
1241
+ },
1242
+ {
1243
+ "name": "json",
1244
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1245
+ }
1246
+ ],
1247
+ "arguments": [],
1248
+ "subcommands": []
1249
+ },
1250
+ {
1251
+ "name": "create",
1252
+ "summary": "Create customer",
1253
+ "runs": true,
1254
+ "flags": [
1255
+ {
1256
+ "name": "billing-address",
1257
+ "description": "The address invoices are sent to",
1258
+ "valueName": "value"
1259
+ },
1260
+ {
1261
+ "name": "billing-contact-email",
1262
+ "description": "The billing contact's email address",
1263
+ "valueName": "value"
1264
+ },
1265
+ {
1266
+ "name": "billing-contact-name",
1267
+ "description": "The billing contact's name",
1268
+ "valueName": "value"
1269
+ },
1270
+ {
1271
+ "name": "billing-contact-phone",
1272
+ "description": "The billing contact's phone number",
1273
+ "valueName": "value"
1274
+ },
1275
+ {
1276
+ "name": "comment",
1277
+ "description": "A free-form note about the customer",
1278
+ "valueName": "value"
1279
+ },
1280
+ {
1281
+ "name": "domain",
1282
+ "description": "The customer's web domain, used to look up its logo",
1283
+ "valueName": "value"
1284
+ },
1285
+ {
1286
+ "name": "external-id",
1287
+ "description": "The customer's identifier in another system",
1288
+ "valueName": "value"
1289
+ },
1290
+ {
1291
+ "name": "is-customer",
1292
+ "description": "Whether the company is a customer",
1293
+ "negatable": true
1294
+ },
1295
+ {
1296
+ "name": "is-supplier",
1297
+ "description": "Whether the company is a supplier",
1298
+ "negatable": true
1299
+ },
1300
+ {
1301
+ "name": "name",
1302
+ "description": "The customer's display name",
1303
+ "valueName": "value"
1304
+ },
1305
+ {
1306
+ "name": "unset",
1307
+ "description": "A field to clear, named as its flag is, repeatable",
1308
+ "valueName": "field",
1309
+ "repeatable": true
1310
+ },
1311
+ {
1312
+ "name": "json",
1313
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1314
+ }
1315
+ ],
1316
+ "arguments": [],
1317
+ "subcommands": []
1318
+ },
1319
+ {
1320
+ "name": "get",
1321
+ "summary": "Get customer",
1322
+ "runs": true,
1323
+ "flags": [
1324
+ {
1325
+ "name": "json",
1326
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1327
+ }
1328
+ ],
1329
+ "arguments": [
1330
+ {}
1331
+ ],
1332
+ "subcommands": []
1333
+ },
1334
+ {
1335
+ "name": "update",
1336
+ "summary": "Patch customer",
1337
+ "runs": true,
1338
+ "flags": [
1339
+ {
1340
+ "name": "billing-address",
1341
+ "description": "The address invoices are sent to",
1342
+ "valueName": "value"
1343
+ },
1344
+ {
1345
+ "name": "billing-contact-email",
1346
+ "description": "The billing contact's email address",
1347
+ "valueName": "value"
1348
+ },
1349
+ {
1350
+ "name": "billing-contact-name",
1351
+ "description": "The billing contact's name",
1352
+ "valueName": "value"
1353
+ },
1354
+ {
1355
+ "name": "billing-contact-phone",
1356
+ "description": "The billing contact's phone number",
1357
+ "valueName": "value"
1358
+ },
1359
+ {
1360
+ "name": "comment",
1361
+ "description": "A free-form note about the customer",
1362
+ "valueName": "value"
1363
+ },
1364
+ {
1365
+ "name": "domain",
1366
+ "description": "The customer's web domain, used to look up its logo",
1367
+ "valueName": "value"
1368
+ },
1369
+ {
1370
+ "name": "external-id",
1371
+ "description": "The customer's identifier in another system",
1372
+ "valueName": "value"
1373
+ },
1374
+ {
1375
+ "name": "is-archived",
1376
+ "description": "Whether the customer is archived",
1377
+ "negatable": true
1378
+ },
1379
+ {
1380
+ "name": "is-customer",
1381
+ "description": "Whether the company is a customer",
1382
+ "negatable": true
1383
+ },
1384
+ {
1385
+ "name": "is-supplier",
1386
+ "description": "Whether the company is a supplier",
1387
+ "negatable": true
1388
+ },
1389
+ {
1390
+ "name": "name",
1391
+ "description": "The customer's display name",
1392
+ "valueName": "value"
1393
+ },
1394
+ {
1395
+ "name": "unset",
1396
+ "description": "A field to clear, named as its flag is, repeatable",
1397
+ "valueName": "field",
1398
+ "repeatable": true
1399
+ },
1400
+ {
1401
+ "name": "json",
1402
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1403
+ }
1404
+ ],
1405
+ "arguments": [
1406
+ {}
1407
+ ],
1408
+ "subcommands": []
1409
+ }
1410
+ ]
1411
+ },
1412
+ {
1413
+ "name": "file",
1414
+ "summary": "File commands",
1415
+ "runs": false,
1416
+ "flags": [],
1417
+ "arguments": [],
1418
+ "subcommands": [
1419
+ {
1420
+ "name": "create",
1421
+ "summary": "Upload file",
1422
+ "runs": true,
1423
+ "flags": [
1424
+ {
1425
+ "name": "file-type",
1426
+ "description": "The kind of file uploaded, which is ASSET_FILE, the only kind the API uploads",
1427
+ "valueName": "value"
1428
+ },
1429
+ {
1430
+ "name": "for-entity",
1431
+ "description": "The ID of the asset the file is attached to",
1432
+ "valueName": "uuid"
1433
+ },
1434
+ {
1435
+ "name": "is-public",
1436
+ "description": "Whether any organization's API key may download the file, which is false unless sent as true"
1437
+ },
1438
+ {
1439
+ "name": "file",
1440
+ "description": "The file to upload",
1441
+ "valueName": "path"
1442
+ },
1443
+ {
1444
+ "name": "json",
1445
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1446
+ }
1447
+ ],
1448
+ "arguments": [],
1449
+ "subcommands": []
1450
+ },
1451
+ {
1452
+ "name": "get",
1453
+ "summary": "Get file",
1454
+ "runs": true,
1455
+ "flags": [
1456
+ {
1457
+ "name": "attachment",
1458
+ "description": "True when the file downloads as an attachment rather than opening inline"
1459
+ },
1460
+ {
1461
+ "name": "output",
1462
+ "description": "Where to write the file, or - for standard output",
1463
+ "valueName": "path"
1464
+ },
1465
+ {
1466
+ "name": "json",
1467
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1468
+ }
1469
+ ],
1470
+ "arguments": [
1471
+ {}
1472
+ ],
1473
+ "subcommands": []
1474
+ }
1475
+ ]
1476
+ },
1477
+ {
1478
+ "name": "item",
1479
+ "summary": "Item commands",
1480
+ "runs": false,
1481
+ "flags": [],
1482
+ "arguments": [],
1483
+ "subcommands": [
1484
+ {
1485
+ "name": "list",
1486
+ "summary": "Get items",
1487
+ "runs": true,
1488
+ "flags": [
1489
+ {
1490
+ "name": "type",
1491
+ "description": "The item type to list, SERVICE, DEVICE, or BULK, or absent for every type",
1492
+ "valueName": "value",
1493
+ "values": [
1494
+ "BULK",
1495
+ "DEVICE",
1496
+ "SERVICE"
1497
+ ]
1498
+ },
1499
+ {
1500
+ "name": "search",
1501
+ "description": "Text to match against item names, SKUs, and descriptions, in any case",
1502
+ "valueName": "value"
1503
+ },
1504
+ {
1505
+ "name": "page",
1506
+ "description": "The page to return, starting at 1",
1507
+ "valueName": "number"
1508
+ },
1509
+ {
1510
+ "name": "limit",
1511
+ "description": "The number of records per page, from 1 to 100",
1512
+ "valueName": "number"
1513
+ },
1514
+ {
1515
+ "name": "sort-by",
1516
+ "description": "The field to sort by",
1517
+ "valueName": "value",
1518
+ "values": [
1519
+ "name",
1520
+ "sku",
1521
+ "type",
1522
+ "lastUpdatedAt"
1523
+ ]
1524
+ },
1525
+ {
1526
+ "name": "sort-order",
1527
+ "description": "The sort direction",
1528
+ "valueName": "value",
1529
+ "values": [
1530
+ "ASC",
1531
+ "DESC"
1532
+ ]
1533
+ },
1534
+ {
1535
+ "name": "archived",
1536
+ "description": "Whether to return unarchived records, archived records, or all of them",
1537
+ "valueName": "value",
1538
+ "values": [
1539
+ "all",
1540
+ "false",
1541
+ "true"
1542
+ ]
1543
+ },
1544
+ {
1545
+ "name": "exclude-linked-integration",
1546
+ "description": "An integration whose already-linked items to leave out",
1547
+ "valueName": "value"
1548
+ },
1549
+ {
1550
+ "name": "json",
1551
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1552
+ }
1553
+ ],
1554
+ "arguments": [],
1555
+ "subcommands": []
1556
+ },
1557
+ {
1558
+ "name": "create",
1559
+ "summary": "Create item",
1560
+ "runs": true,
1561
+ "flags": [
1562
+ {
1563
+ "name": "accepts-bulk-serials",
1564
+ "description": "Whether a BULK item records serial numbers on its units, which SERVICE and DEVICE items ignore",
1565
+ "negatable": true
1566
+ },
1567
+ {
1568
+ "name": "description",
1569
+ "description": "A free-form description of the item",
1570
+ "valueName": "value"
1571
+ },
1572
+ {
1573
+ "name": "name",
1574
+ "description": "The item's display name",
1575
+ "valueName": "value"
1576
+ },
1577
+ {
1578
+ "name": "sku",
1579
+ "description": "The item's stock keeping unit, unique within your organization",
1580
+ "valueName": "value"
1581
+ },
1582
+ {
1583
+ "name": "type",
1584
+ "description": "SERVICE for a non-physical item, DEVICE for a physical item tracked by serial number, or BULK for a part tracked by quantity",
1585
+ "valueName": "value",
1586
+ "values": [
1587
+ "BULK",
1588
+ "DEVICE",
1589
+ "SERVICE"
1590
+ ]
1591
+ },
1592
+ {
1593
+ "name": "unit-of-measure",
1594
+ "description": "The unit a BULK item's quantities are counted in, which SERVICE and DEVICE items ignore",
1595
+ "valueName": "value",
1596
+ "values": [
1597
+ "BG",
1598
+ "BO",
1599
+ "BX",
1600
+ "C62",
1601
+ "CMK",
1602
+ "CMT",
1603
+ "CR",
1604
+ "CS",
1605
+ "CT",
1606
+ "DMQ",
1607
+ "DR",
1608
+ "DZN",
1609
+ "EA",
1610
+ "EN",
1611
+ "FOT",
1612
+ "FTK",
1613
+ "FTQ",
1614
+ "GLL",
1615
+ "GRM",
1616
+ "GRO",
1617
+ "H87",
1618
+ "INH",
1619
+ "INK",
1620
+ "INQ",
1621
+ "KG",
1622
+ "KGM",
1623
+ "KMT",
1624
+ "KT",
1625
+ "LBR",
1626
+ "LO",
1627
+ "LTR",
1628
+ "MGM",
1629
+ "MLT",
1630
+ "MMK",
1631
+ "MMT",
1632
+ "MTK",
1633
+ "MTQ",
1634
+ "MTR",
1635
+ "ONZ",
1636
+ "OZA",
1637
+ "PK",
1638
+ "PR",
1639
+ "PTI",
1640
+ "PX",
1641
+ "QTI",
1642
+ "RL",
1643
+ "RO",
1644
+ "SET",
1645
+ "SMI",
1646
+ "ST",
1647
+ "STN",
1648
+ "SV",
1649
+ "TNE",
1650
+ "TU",
1651
+ "YDK",
1652
+ "YDQ",
1653
+ "YRD"
1654
+ ]
1655
+ },
1656
+ {
1657
+ "name": "unset",
1658
+ "description": "A field to clear, named as its flag is, repeatable",
1659
+ "valueName": "field",
1660
+ "repeatable": true
1661
+ },
1662
+ {
1663
+ "name": "json",
1664
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1665
+ }
1666
+ ],
1667
+ "arguments": [],
1668
+ "subcommands": []
1669
+ },
1670
+ {
1671
+ "name": "get",
1672
+ "summary": "Get item",
1673
+ "runs": true,
1674
+ "flags": [
1675
+ {
1676
+ "name": "json",
1677
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1678
+ }
1679
+ ],
1680
+ "arguments": [
1681
+ {}
1682
+ ],
1683
+ "subcommands": []
1684
+ },
1685
+ {
1686
+ "name": "update",
1687
+ "summary": "Update item",
1688
+ "runs": true,
1689
+ "flags": [
1690
+ {
1691
+ "name": "accepts-bulk-serials",
1692
+ "description": "Whether a BULK item records serial numbers on its units, read only beside type",
1693
+ "negatable": true
1694
+ },
1695
+ {
1696
+ "name": "description",
1697
+ "description": "The item's new description, or null to clear it",
1698
+ "valueName": "value"
1699
+ },
1700
+ {
1701
+ "name": "field",
1702
+ "description": "New positions for a DEVICE item's fields",
1703
+ "valueName": "fieldId=,order=,section=",
1704
+ "repeatable": true
1705
+ },
1706
+ {
1707
+ "name": "is-archived",
1708
+ "description": "Whether the item is archived, which cannot be null",
1709
+ "negatable": true
1710
+ },
1711
+ {
1712
+ "name": "name",
1713
+ "description": "The item's new display name, which cannot be empty",
1714
+ "valueName": "value"
1715
+ },
1716
+ {
1717
+ "name": "sku",
1718
+ "description": "The item's new stock keeping unit, which cannot be empty and must be unique within your organization",
1719
+ "valueName": "value"
1720
+ },
1721
+ {
1722
+ "name": "type",
1723
+ "description": "The type to convert the item to, when the item's assets and inventory history allow the conversion",
1724
+ "valueName": "value",
1725
+ "values": [
1726
+ "BULK",
1727
+ "DEVICE",
1728
+ "SERVICE"
1729
+ ]
1730
+ },
1731
+ {
1732
+ "name": "unset",
1733
+ "description": "A field to clear, named as its flag is, repeatable",
1734
+ "valueName": "field",
1735
+ "repeatable": true
1736
+ },
1737
+ {
1738
+ "name": "json",
1739
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1740
+ }
1741
+ ],
1742
+ "arguments": [
1743
+ {}
1744
+ ],
1745
+ "subcommands": []
1746
+ },
1747
+ {
1748
+ "name": "accounting",
1749
+ "summary": "Accounting commands",
1750
+ "runs": false,
1751
+ "flags": [],
1752
+ "arguments": [],
1753
+ "subcommands": [
1754
+ {
1755
+ "name": "update",
1756
+ "summary": "Update item accounting",
1757
+ "runs": true,
1758
+ "flags": [
1759
+ {
1760
+ "name": "allocated-indirect",
1761
+ "description": "One unit's share of overhead, a cost component",
1762
+ "valueName": "value"
1763
+ },
1764
+ {
1765
+ "name": "bill-of-materials",
1766
+ "description": "The parts cost of one unit, a cost component",
1767
+ "valueName": "value"
1768
+ },
1769
+ {
1770
+ "name": "depreciation-model",
1771
+ "description": "The method one unit is depreciated by, or null to clear it",
1772
+ "valueName": "value",
1773
+ "values": [
1774
+ "DOUBLE_DECLINING",
1775
+ "STRAIGHT_LINE",
1776
+ "SUM_YEAR",
1777
+ "UNIT_OF_PRODUCTION"
1778
+ ]
1779
+ },
1780
+ {
1781
+ "name": "direct-labor",
1782
+ "description": "The labor cost to build one unit, a cost component",
1783
+ "valueName": "value"
1784
+ },
1785
+ {
1786
+ "name": "freight-inbound",
1787
+ "description": "The shipping cost to receive one unit, a cost component",
1788
+ "valueName": "value"
1789
+ },
1790
+ {
1791
+ "name": "freight-outbound",
1792
+ "description": "The shipping cost to deploy one unit, a deployment cost component",
1793
+ "valueName": "value"
1794
+ },
1795
+ {
1796
+ "name": "installation",
1797
+ "description": "The cost to install one unit, a deployment cost component",
1798
+ "valueName": "value"
1799
+ },
1800
+ {
1801
+ "name": "interest",
1802
+ "description": "The financing cost of one unit, a cost component",
1803
+ "valueName": "value"
1804
+ },
1805
+ {
1806
+ "name": "salvage-value",
1807
+ "description": "The value one unit keeps at the end of its useful life, or null to clear it",
1808
+ "valueName": "value"
1809
+ },
1810
+ {
1811
+ "name": "simple-cost-basis",
1812
+ "description": "A single cost for one unit, which cannot be sent together with the cost components",
1813
+ "valueName": "value"
1814
+ },
1815
+ {
1816
+ "name": "tariffs",
1817
+ "description": "The import duty paid on one unit, a cost component",
1818
+ "valueName": "value"
1819
+ },
1820
+ {
1821
+ "name": "tax",
1822
+ "description": "The tax paid on one unit, a cost component",
1823
+ "valueName": "value"
1824
+ },
1825
+ {
1826
+ "name": "useful-life",
1827
+ "description": "The number of months one unit is depreciated over, or null to clear it",
1828
+ "valueName": "number"
1829
+ },
1830
+ {
1831
+ "name": "unset",
1832
+ "description": "A field to clear, named as its flag is, repeatable",
1833
+ "valueName": "field",
1834
+ "repeatable": true
1835
+ },
1836
+ {
1837
+ "name": "json",
1838
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1839
+ }
1840
+ ],
1841
+ "arguments": [
1842
+ {}
1843
+ ],
1844
+ "subcommands": []
1845
+ }
1846
+ ]
1847
+ },
1848
+ {
1849
+ "name": "field",
1850
+ "summary": "Field commands",
1851
+ "runs": false,
1852
+ "flags": [],
1853
+ "arguments": [],
1854
+ "subcommands": [
1855
+ {
1856
+ "name": "create",
1857
+ "summary": "Create item field",
1858
+ "runs": true,
1859
+ "flags": [
1860
+ {
1861
+ "name": "field-type",
1862
+ "description": "The kind of value the field holds",
1863
+ "valueName": "value",
1864
+ "values": [
1865
+ "BOOLEAN",
1866
+ "DATE",
1867
+ "DATE_TIME",
1868
+ "INTEGER",
1869
+ "MULTILINE_TEXT",
1870
+ "NUMBER",
1871
+ "TEXT",
1872
+ "TIME"
1873
+ ]
1874
+ },
1875
+ {
1876
+ "name": "label",
1877
+ "description": "The field's display name",
1878
+ "valueName": "value"
1879
+ },
1880
+ {
1881
+ "name": "order",
1882
+ "description": "The field's position within its section, starting at 0",
1883
+ "valueName": "number"
1884
+ },
1885
+ {
1886
+ "name": "section",
1887
+ "description": "The group the field is shown in, starting at 0",
1888
+ "valueName": "number"
1889
+ },
1890
+ {
1891
+ "name": "unset",
1892
+ "description": "A field to clear, named as its flag is, repeatable",
1893
+ "valueName": "field",
1894
+ "repeatable": true
1895
+ },
1896
+ {
1897
+ "name": "json",
1898
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1899
+ }
1900
+ ],
1901
+ "arguments": [
1902
+ {}
1903
+ ],
1904
+ "subcommands": []
1905
+ },
1906
+ {
1907
+ "name": "update",
1908
+ "summary": "Update item field",
1909
+ "runs": true,
1910
+ "flags": [
1911
+ {
1912
+ "name": "label",
1913
+ "description": "The field's new display name, which cannot be empty",
1914
+ "valueName": "value"
1915
+ },
1916
+ {
1917
+ "name": "unset",
1918
+ "description": "A field to clear, named as its flag is, repeatable",
1919
+ "valueName": "field",
1920
+ "repeatable": true
1921
+ },
1922
+ {
1923
+ "name": "json",
1924
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1925
+ }
1926
+ ],
1927
+ "arguments": [
1928
+ {},
1929
+ {}
1930
+ ],
1931
+ "subcommands": []
1932
+ },
1933
+ {
1934
+ "name": "delete",
1935
+ "summary": "Delete item field",
1936
+ "runs": true,
1937
+ "flags": [
1938
+ {
1939
+ "name": "json",
1940
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
1941
+ }
1942
+ ],
1943
+ "arguments": [
1944
+ {},
1945
+ {}
1946
+ ],
1947
+ "subcommands": []
1948
+ }
1949
+ ]
1950
+ }
1951
+ ]
1952
+ },
1953
+ {
1954
+ "name": "location",
1955
+ "summary": "Location commands",
1956
+ "runs": false,
1957
+ "flags": [],
1958
+ "arguments": [],
1959
+ "subcommands": [
1960
+ {
1961
+ "name": "list",
1962
+ "summary": "Get location listing",
1963
+ "runs": true,
1964
+ "flags": [
1965
+ {
1966
+ "name": "page",
1967
+ "description": "The page to return, starting at 1",
1968
+ "valueName": "number"
1969
+ },
1970
+ {
1971
+ "name": "limit",
1972
+ "description": "The number of records per page, from 1 to 100",
1973
+ "valueName": "number"
1974
+ },
1975
+ {
1976
+ "name": "sort-by",
1977
+ "description": "The field to sort by",
1978
+ "valueName": "value",
1979
+ "values": [
1980
+ "name",
1981
+ "company",
1982
+ "assetCount"
1983
+ ]
1984
+ },
1985
+ {
1986
+ "name": "sort-order",
1987
+ "description": "The sort direction",
1988
+ "valueName": "value",
1989
+ "values": [
1990
+ "ASC",
1991
+ "DESC"
1992
+ ]
1993
+ },
1994
+ {
1995
+ "name": "archived",
1996
+ "description": "Whether to return unarchived records, archived records, or all of them",
1997
+ "valueName": "value",
1998
+ "values": [
1999
+ "all",
2000
+ "false",
2001
+ "true"
2002
+ ]
2003
+ },
2004
+ {
2005
+ "name": "is-transient",
2006
+ "description": "Whether to return permanent locations (false), transient locations (true), or both (all)",
2007
+ "valueName": "value",
2008
+ "values": [
2009
+ "all",
2010
+ "false",
2011
+ "true"
2012
+ ]
2013
+ },
2014
+ {
2015
+ "name": "search",
2016
+ "description": "Text to match against location and customer names",
2017
+ "valueName": "value"
2018
+ },
2019
+ {
2020
+ "name": "for-customer-ids",
2021
+ "description": "The IDs of the customers whose locations to return",
2022
+ "valueName": "value",
2023
+ "repeatable": true
2024
+ },
2025
+ {
2026
+ "name": "include-organization",
2027
+ "description": "Whether the customer filter also matches your organization's own locations, which on its own returns only those"
2028
+ },
2029
+ {
2030
+ "name": "sync-statuses",
2031
+ "description": "The CRM sync statuses to return: in-sync, out-of-sync, or not-linked",
2032
+ "valueName": "value",
2033
+ "repeatable": true
2034
+ },
2035
+ {
2036
+ "name": "json",
2037
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2038
+ }
2039
+ ],
2040
+ "arguments": [],
2041
+ "subcommands": []
2042
+ },
2043
+ {
2044
+ "name": "create",
2045
+ "summary": "Create location",
2046
+ "runs": true,
2047
+ "flags": [
2048
+ {
2049
+ "name": "address-line1",
2050
+ "description": "The first line of the street address",
2051
+ "valueName": "value"
2052
+ },
2053
+ {
2054
+ "name": "address-line2",
2055
+ "description": "The second line of the street address, such as a suite",
2056
+ "valueName": "value"
2057
+ },
2058
+ {
2059
+ "name": "address-city",
2060
+ "description": "The city",
2061
+ "valueName": "value"
2062
+ },
2063
+ {
2064
+ "name": "address-country",
2065
+ "description": "The country",
2066
+ "valueName": "value"
2067
+ },
2068
+ {
2069
+ "name": "address-formatted-address",
2070
+ "description": "The whole address on one line",
2071
+ "valueName": "value"
2072
+ },
2073
+ {
2074
+ "name": "address-postal-code",
2075
+ "description": "The postal or ZIP code",
2076
+ "valueName": "value"
2077
+ },
2078
+ {
2079
+ "name": "address-state",
2080
+ "description": "The state or region",
2081
+ "valueName": "value"
2082
+ },
2083
+ {
2084
+ "name": "consignee",
2085
+ "description": "The ID of the customer a zone is designated for, such as for reservations, provisioning or a 3PL",
2086
+ "valueName": "uuid"
2087
+ },
2088
+ {
2089
+ "name": "customer-id",
2090
+ "description": "The ID of the customer to assign a site to, or null for your organization's own site",
2091
+ "valueName": "uuid"
2092
+ },
2093
+ {
2094
+ "name": "description",
2095
+ "description": "A free-form description of a zone",
2096
+ "valueName": "value"
2097
+ },
2098
+ {
2099
+ "name": "is-inventory",
2100
+ "description": "Whether assets at the location count as inventory for reporting",
2101
+ "negatable": true
2102
+ },
2103
+ {
2104
+ "name": "is-inventory-override",
2105
+ "description": "Whether a zone sets its own isInventory rather than inheriting its parent site's, which a site refuses",
2106
+ "negatable": true
2107
+ },
2108
+ {
2109
+ "name": "is-transient",
2110
+ "description": "Whether assets make only occasional or temporary stops at the location, which hides it from location lists by default",
2111
+ "negatable": true
2112
+ },
2113
+ {
2114
+ "name": "name",
2115
+ "description": "The location's display name",
2116
+ "valueName": "value"
2117
+ },
2118
+ {
2119
+ "name": "parent-location-id",
2120
+ "description": "The ID of the site a zone belongs to, required for a zone and refused for a site",
2121
+ "valueName": "uuid"
2122
+ },
2123
+ {
2124
+ "name": "type",
2125
+ "description": "SITE for a site, or ZONE for a zone within a site",
2126
+ "valueName": "value",
2127
+ "values": [
2128
+ "SITE",
2129
+ "UNKNOWN",
2130
+ "ZONE"
2131
+ ]
2132
+ },
2133
+ {
2134
+ "name": "unset",
2135
+ "description": "A field to clear, named as its flag is, repeatable",
2136
+ "valueName": "field",
2137
+ "repeatable": true
2138
+ },
2139
+ {
2140
+ "name": "json",
2141
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2142
+ }
2143
+ ],
2144
+ "arguments": [],
2145
+ "subcommands": []
2146
+ },
2147
+ {
2148
+ "name": "get",
2149
+ "summary": "Get location",
2150
+ "runs": true,
2151
+ "flags": [
2152
+ {
2153
+ "name": "json",
2154
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2155
+ }
2156
+ ],
2157
+ "arguments": [
2158
+ {}
2159
+ ],
2160
+ "subcommands": []
2161
+ },
2162
+ {
2163
+ "name": "update",
2164
+ "summary": "Patch location",
2165
+ "runs": true,
2166
+ "flags": [
2167
+ {
2168
+ "name": "address-line1",
2169
+ "description": "The first line of the street address",
2170
+ "valueName": "value"
2171
+ },
2172
+ {
2173
+ "name": "address-line2",
2174
+ "description": "The second line of the street address, such as a suite",
2175
+ "valueName": "value"
2176
+ },
2177
+ {
2178
+ "name": "address-city",
2179
+ "description": "The city",
2180
+ "valueName": "value"
2181
+ },
2182
+ {
2183
+ "name": "address-country",
2184
+ "description": "The country",
2185
+ "valueName": "value"
2186
+ },
2187
+ {
2188
+ "name": "address-formatted-address",
2189
+ "description": "The whole address on one line",
2190
+ "valueName": "value"
2191
+ },
2192
+ {
2193
+ "name": "address-postal-code",
2194
+ "description": "The postal or ZIP code",
2195
+ "valueName": "value"
2196
+ },
2197
+ {
2198
+ "name": "address-state",
2199
+ "description": "The state or region",
2200
+ "valueName": "value"
2201
+ },
2202
+ {
2203
+ "name": "consignee",
2204
+ "description": "The ID of the customer a zone is designated for, such as for reservations, provisioning or a 3PL",
2205
+ "valueName": "uuid"
2206
+ },
2207
+ {
2208
+ "name": "customer-id",
2209
+ "description": "The ID of the customer to assign a site to, or null for your organization's own site",
2210
+ "valueName": "uuid"
2211
+ },
2212
+ {
2213
+ "name": "description",
2214
+ "description": "A free-form description of a zone",
2215
+ "valueName": "value"
2216
+ },
2217
+ {
2218
+ "name": "is-archived",
2219
+ "description": "Whether the location is archived, and archiving a site archives its zones",
2220
+ "negatable": true
2221
+ },
2222
+ {
2223
+ "name": "is-inventory",
2224
+ "description": "Whether assets at the location count as inventory for reporting",
2225
+ "negatable": true
2226
+ },
2227
+ {
2228
+ "name": "is-inventory-override",
2229
+ "description": "Whether a zone sets its own isInventory rather than inheriting its parent site's, which a site refuses",
2230
+ "negatable": true
2231
+ },
2232
+ {
2233
+ "name": "is-transient",
2234
+ "description": "Whether assets make only occasional or temporary stops at the location, which hides it from location lists by default",
2235
+ "negatable": true
2236
+ },
2237
+ {
2238
+ "name": "name",
2239
+ "description": "The location's display name",
2240
+ "valueName": "value"
2241
+ },
2242
+ {
2243
+ "name": "type",
2244
+ "description": "SITE for a site, or ZONE for a zone within a site",
2245
+ "valueName": "value",
2246
+ "values": [
2247
+ "SITE",
2248
+ "UNKNOWN",
2249
+ "ZONE"
2250
+ ]
2251
+ },
2252
+ {
2253
+ "name": "unset",
2254
+ "description": "A field to clear, named as its flag is, repeatable",
2255
+ "valueName": "field",
2256
+ "repeatable": true
2257
+ },
2258
+ {
2259
+ "name": "json",
2260
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2261
+ }
2262
+ ],
2263
+ "arguments": [
2264
+ {}
2265
+ ],
2266
+ "subcommands": []
2267
+ },
2268
+ {
2269
+ "name": "zones",
2270
+ "summary": "Zones commands",
2271
+ "runs": false,
2272
+ "flags": [],
2273
+ "arguments": [],
2274
+ "subcommands": [
2275
+ {
2276
+ "name": "list",
2277
+ "summary": "Get zones",
2278
+ "runs": true,
2279
+ "flags": [
2280
+ {
2281
+ "name": "archived",
2282
+ "description": "Whether to return unarchived zones, archived zones, or all of them",
2283
+ "valueName": "value",
2284
+ "values": [
2285
+ "all",
2286
+ "false",
2287
+ "true"
2288
+ ]
2289
+ },
2290
+ {
2291
+ "name": "json",
2292
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2293
+ }
2294
+ ],
2295
+ "arguments": [
2296
+ {}
2297
+ ],
2298
+ "subcommands": []
2299
+ }
2300
+ ]
2301
+ }
2302
+ ]
2303
+ },
2304
+ {
2305
+ "name": "token",
2306
+ "summary": "Token commands",
2307
+ "runs": false,
2308
+ "flags": [],
2309
+ "arguments": [],
2310
+ "subcommands": [
2311
+ {
2312
+ "name": "get",
2313
+ "summary": "Report the credential this CLI is calling with",
2314
+ "runs": true,
2315
+ "flags": [
2316
+ {
2317
+ "name": "json",
2318
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2319
+ }
2320
+ ],
2321
+ "arguments": [],
2322
+ "subcommands": []
2323
+ }
2324
+ ]
2325
+ },
2326
+ {
2327
+ "name": "url-link",
2328
+ "summary": "URL link commands",
2329
+ "runs": false,
2330
+ "flags": [],
2331
+ "arguments": [],
2332
+ "subcommands": [
2333
+ {
2334
+ "name": "get",
2335
+ "summary": "Get URL link by key",
2336
+ "runs": true,
2337
+ "flags": [
2338
+ {
2339
+ "name": "json",
2340
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2341
+ }
2342
+ ],
2343
+ "arguments": [
2344
+ {}
2345
+ ],
2346
+ "subcommands": []
2347
+ },
2348
+ {
2349
+ "name": "update",
2350
+ "summary": "Update URL link",
2351
+ "runs": true,
2352
+ "flags": [
2353
+ {
2354
+ "name": "name",
2355
+ "description": "The link's display name, or null to show the address instead",
2356
+ "valueName": "value"
2357
+ },
2358
+ {
2359
+ "name": "url",
2360
+ "description": "The address the link points to, which cannot be empty or null",
2361
+ "valueName": "value"
2362
+ },
2363
+ {
2364
+ "name": "unset",
2365
+ "description": "A field to clear, named as its flag is, repeatable",
2366
+ "valueName": "field",
2367
+ "repeatable": true
2368
+ },
2369
+ {
2370
+ "name": "json",
2371
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2372
+ }
2373
+ ],
2374
+ "arguments": [
2375
+ {}
2376
+ ],
2377
+ "subcommands": []
2378
+ },
2379
+ {
2380
+ "name": "delete",
2381
+ "summary": "Delete URL link",
2382
+ "runs": true,
2383
+ "flags": [
2384
+ {
2385
+ "name": "json",
2386
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2387
+ }
2388
+ ],
2389
+ "arguments": [
2390
+ {}
2391
+ ],
2392
+ "subcommands": []
2393
+ }
2394
+ ]
2395
+ },
2396
+ {
2397
+ "name": "api",
2398
+ "summary": "Call a Hardfin API endpoint and print what it answers",
2399
+ "runs": true,
2400
+ "flags": [
2401
+ {
2402
+ "name": "method",
2403
+ "short": "X",
2404
+ "description": "The HTTP method to use",
2405
+ "valueName": "method",
2406
+ "values": [
2407
+ "GET",
2408
+ "POST",
2409
+ "PATCH",
2410
+ "PUT",
2411
+ "DELETE"
2412
+ ]
2413
+ },
2414
+ {
2415
+ "name": "field",
2416
+ "short": "f",
2417
+ "description": "A query parameter as key=value, repeatable",
2418
+ "valueName": "key=value",
2419
+ "repeatable": true
2420
+ },
2421
+ {
2422
+ "name": "input",
2423
+ "description": "A file holding the JSON request body, or - for stdin",
2424
+ "valueName": "file"
2425
+ },
2426
+ {
2427
+ "name": "json",
2428
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2429
+ }
2430
+ ],
2431
+ "arguments": [
2432
+ {}
2433
+ ],
2434
+ "subcommands": []
2435
+ },
2436
+ {
2437
+ "name": "config",
2438
+ "summary": "Print what this invocation talks to, and where each value came from",
2439
+ "runs": true,
2440
+ "flags": [
2441
+ {
2442
+ "name": "json",
2443
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2444
+ }
2445
+ ],
2446
+ "arguments": [],
2447
+ "subcommands": []
2448
+ },
2449
+ {
2450
+ "name": "agent-guide",
2451
+ "summary": "Print instructions an agent can follow to use this CLI",
2452
+ "runs": true,
2453
+ "flags": [
2454
+ {
2455
+ "name": "json",
2456
+ "description": "Print the command registry as JSON instead of Markdown"
2457
+ }
2458
+ ],
2459
+ "arguments": [],
2460
+ "subcommands": []
2461
+ },
2462
+ {
2463
+ "name": "completion",
2464
+ "summary": "Complete hardfin commands in your shell",
2465
+ "runs": true,
2466
+ "flags": [],
2467
+ "arguments": [
2468
+ {
2469
+ "values": [
2470
+ "bash",
2471
+ "zsh",
2472
+ "fish",
2473
+ "powershell"
2474
+ ]
2475
+ }
2476
+ ],
2477
+ "subcommands": [
2478
+ {
2479
+ "name": "install",
2480
+ "summary": "Set up completion in your shell",
2481
+ "runs": true,
2482
+ "flags": [
2483
+ {
2484
+ "name": "yes",
2485
+ "short": "y",
2486
+ "description": "Make the change without asking"
2487
+ },
2488
+ {
2489
+ "name": "json",
2490
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2491
+ }
2492
+ ],
2493
+ "arguments": [
2494
+ {
2495
+ "values": [
2496
+ "bash",
2497
+ "zsh",
2498
+ "fish",
2499
+ "powershell"
2500
+ ]
2501
+ }
2502
+ ],
2503
+ "subcommands": []
2504
+ },
2505
+ {
2506
+ "name": "uninstall",
2507
+ "summary": "Remove completion from your shell",
2508
+ "runs": true,
2509
+ "flags": [
2510
+ {
2511
+ "name": "yes",
2512
+ "short": "y",
2513
+ "description": "Make the change without asking"
2514
+ },
2515
+ {
2516
+ "name": "json",
2517
+ "description": "Print machine-readable output, which is the default when stdout is not a terminal"
2518
+ }
2519
+ ],
2520
+ "arguments": [
2521
+ {
2522
+ "values": [
2523
+ "bash",
2524
+ "zsh",
2525
+ "fish",
2526
+ "powershell"
2527
+ ]
2528
+ }
2529
+ ],
2530
+ "subcommands": []
2531
+ }
2532
+ ]
2533
+ },
2534
+ {
2535
+ "name": "mcp",
2536
+ "summary": "Serve this CLI to an agent over the Model Context Protocol",
2537
+ "runs": true,
2538
+ "flags": [
2539
+ {
2540
+ "name": "json",
2541
+ "description": "Accepted for consistency, and ignored, because the protocol decides the output"
2542
+ }
2543
+ ],
2544
+ "arguments": [],
2545
+ "subcommands": []
2546
+ },
2547
+ {
2548
+ "name": "__complete",
2549
+ "summary": "Answer what may follow the words typed so far",
2550
+ "hidden": true,
2551
+ "runs": true,
2552
+ "flags": [
2553
+ {
2554
+ "name": "json",
2555
+ "description": "Accepted for consistency, and ignored"
2556
+ },
2557
+ {
2558
+ "name": "tree",
2559
+ "description": "Print the tree completion answers from, which the build writes beside the CLI"
2560
+ }
2561
+ ],
2562
+ "arguments": [
2563
+ {
2564
+ "variadic": true
2565
+ }
2566
+ ],
2567
+ "subcommands": []
2568
+ }
2569
+ ]
2570
+ }