/ schema / enbas_cli_schema.json
enbas_cli_schema.json
  1  {
  2    "flags": {
  3      "account-name": {
  4        "type": "StringSliceValue",
  5        "description": "The name of the account"
  6      },
  7      "all-audio": {
  8        "type": "bool",
  9        "description": "Set to true to play all audio files from the status"
 10      },
 11      "all-images": {
 12        "type": "bool",
 13        "description": "Set to true to show all images from the status"
 14      },
 15      "all-videos": {
 16        "type": "bool",
 17        "description": "Set to true to play all videos from the status"
 18      },
 19      "attachment-id": {
 20        "type": "StringSliceValue",
 21        "description": "The ID of the media attachment"
 22      },
 23      "add-poll": {
 24        "type": "bool",
 25        "description": "Set to true to add a poll when creating a status"
 26      },
 27      "boosted-by": {
 28        "type": "bool",
 29        "description": "Set to true to see the accounts who boosted the status"
 30      },
 31      "browser": {
 32        "type": "bool",
 33        "description": "Set to true to view in the your favourite browser"
 34      },
 35      "content": {
 36        "type": "string",
 37        "description": "The content of the created resource"
 38      },
 39      "content-type": {
 40        "type": "string",
 41        "description": "The type that the contents should be parsed from (valid values are plain and markdown)"
 42      },
 43      "enable-likes": {
 44        "type": "bool",
 45        "description": "Set to true to allow the status to be liked (favourited)"
 46      },
 47      "enable-replies": {
 48        "type": "bool",
 49        "description": "Set to true to allow viewers to reply to the status"
 50      },
 51      "enable-reposts": {
 52        "type": "bool",
 53        "description": "Set to true to allow the status to be reposted (boosted) by others"
 54      },
 55      "exclude-boosts": {
 56        "type": "bool",
 57        "description": "Set to true to exclude statuses that are boosts of another status"
 58      },
 59      "exclude-notification-type": {
 60        "type": "StringSliceValue",
 61        "description": "The type of notifications to exclude from the output"
 62      },
 63      "exclude-replies": {
 64        "type": "bool",
 65        "description": "Set to true to exclude statuses that are a reply to another status"
 66      },
 67      "from": {
 68        "type": "string",
 69        "description": "The resource type to action the target resource from (e.g. status)"
 70      },
 71      "full": {
 72        "type": "bool",
 73        "description": "Set to true to print the build information in full"
 74      },
 75      "in-reply-to": {
 76        "type": "string",
 77        "description": "The ID of the status that you want to reply to"
 78      },
 79      "include-notification-type": {
 80        "type": "StringSliceValue",
 81        "description": "The type of notifications to include in the output"
 82      },
 83      "instance": {
 84        "type": "string",
 85        "description": "The instance that you want to log into"
 86      },
 87      "language": {
 88        "type": "string",
 89        "description": "The ISO 639 language code for this status"
 90      },
 91      "liked-by": {
 92        "type": "bool",
 93        "description": "Set to true to see the accounts who liked (favourited) the status"
 94      },
 95      "limit": {
 96        "type": "int",
 97        "description": "Specify the limit of items to display"
 98      },
 99      "list-exclusive": {
100        "type": "bool",
101        "description": "Set to true to hide posts from members of this list from your home timeline"
102      },
103      "list-id": {
104        "type": "string",
105        "description": "The ID of the list in question"
106      },
107      "list-title": {
108        "type": "string",
109        "description": "The title of the list"
110      },
111      "list-replies-policy": {
112        "type": "string",
113        "description": "The replies policy of the list"
114      },
115      "local-only": {
116        "type": "bool",
117        "description": "Set to true to NOT federate the status beyond the local timeline(s)"
118      },
119      "media-description": {
120        "type": "StringSliceValue",
121        "description": "The description of the media attachment which will be used as the alt-text"
122      },
123      "media-file": {
124        "type": "StringSliceValue",
125        "description": "The path to the media file"
126      },
127      "media-focus": {
128        "type": "StringSliceValue",
129        "description": "The focus of the media file"
130      },
131      "mute-duration": {
132        "type": "TimeDurationValue",
133        "description": "Specify how long the mute should last for. To mute indefinitely, set this to 0s"
134      },
135      "mute-notifications": {
136        "type": "bool",
137        "description": "Set to true to mute notifications as well as posts"
138      },
139      "my-account": {
140        "type": "bool",
141        "description": "Set to true to specify your account"
142      },
143      "no-idle-timeout": {
144        "type": "bool",
145        "description": "Set to true to run the server without a timeout"
146      },
147      "notification-id": {
148        "type": "string",
149        "description": "The ID of the notification"
150      },
151      "notify": {
152        "type": "bool",
153        "description": "Get notifications from statuses from the account you want to follow"
154      },
155      "only-media": {
156        "type": "bool",
157        "description": "Set to true to show only the statuses with media attachments"
158      },
159      "only-pinned": {
160        "type": "bool",
161        "description": "Set to true to show only the account's pinned statuses"
162      },
163      "only-public": {
164        "type": "bool",
165        "description": "Set to true to show only the account's public posts"
166      },
167      "poll-allows-multiple-choices": {
168        "type": "bool",
169        "description": "Set to true to allow viewers to make multiple choices in the poll"
170      },
171      "poll-expires-in": {
172        "type": "TimeDurationValue",
173        "description": "The duration in which the poll is open for"
174      },
175      "poll-hides-vote-counts": {
176        "type": "bool",
177        "description": "Set to true to hide the vote count until the poll is closed"
178      },
179      "poll-option": {
180        "type": "StringSliceValue",
181        "description": "A poll option. Use this multiple times to set multiple options"
182      },
183      "save-text": {
184        "type": "bool",
185        "description": "Set to true to save the text of the deleted status"
186      },
187      "sensitive": {
188        "type": "BoolPtrValue",
189        "description": "Set to true if the status should be marked as sensitive"
190      },
191      "show-preferences": {
192        "type": "bool",
193        "description": "Set to true to view your posting preferences when viewing your account information"
194      },
195      "show-reposts": {
196        "type": "bool",
197        "description": "Show reposts from the account you want to follow"
198      },
199      "show-statuses": {
200        "type": "bool",
201        "description": "Set to true to view the statuses created from the account you are viewing"
202      },
203      "skip-relationship": {
204        "type": "bool",
205        "description": "Set to true to skip showing your relationship to the account that you are viewing"
206      },
207      "status-id": {
208        "type": "string",
209        "description": "The ID of the status"
210      },
211      "summary": {
212        "type": "string",
213        "description": "The summary of the status (a.k.a the subject, spoiler text or content warning)"
214      },
215      "tag": {
216        "type": "string",
217        "description": "The name of the tag"
218      },
219      "timeline-category": {
220        "type": "string",
221        "description": "The timeline category"
222      },
223      "to": {
224        "type": "string",
225        "description": "The resource type to action the target resource to (e.g. status)"
226      },
227      "type": {
228        "type": "string",
229        "description": "The type of resource you want to action on (e.g. account, status)"
230      },
231      "visibility": {
232        "type": "string",
233        "description": "The visibility of the posted status"
234      },
235      "vote": {
236        "type": "IntSliceValue",
237        "description": "Add a vote to an option in a poll"
238      }
239    },
240  
241    "commands": {
242      "accept": {
243        "additionalFields": [
244          { "name": "configDir", "type": "string"}
245        ],
246        "flags": [
247          { "flag": "account-name" },
248          { "flag": "type", "fieldName": "resourceType", "default": "" }
249        ],
250        "summary": "Accepts a request (e.g. a follow request)",
251        "useConfig": true,
252        "usePrinter": true
253      },
254      "add": {
255        "additionalFields": [
256          { "name": "configDir", "type": "string"}
257        ],
258        "flags": [
259          { "flag": "account-name", "fieldName": "accountNames" },
260          { "flag": "content", "default": "" },
261          { "flag": "list-id", "fieldName": "listID", "default": "" },
262          { "flag": "status-id", "fieldName": "statusID", "default": "" },
263          { "flag": "to", "fieldName": "toResourceType", "default": "" },
264          { "flag": "type", "fieldName": "resourceType", "default": "" },
265          { "flag": "vote", "fieldName": "votes" }
266        ],
267        "summary": "Adds a resource to another resource",
268        "useConfig": true,
269        "usePrinter": true
270      },
271      "block": {
272        "additionalFields": [
273          { "name": "configDir", "type": "string"}
274        ],
275        "flags": [
276          { "flag": "account-name" },
277          { "flag": "type", "fieldName": "resourceType", "default": "" }
278        ],
279        "summary": "Blocks a resource (e.g. an account)",
280        "useConfig": true,
281        "usePrinter": true
282      },
283      "create": {
284        "additionalFields": [
285          { "name": "configDir", "type": "string"}
286        ],
287        "flags": [
288          { "flag": "add-poll", "default": "false" },
289          { "flag": "attachment-id", "fieldName": "attachmentIDs" },
290          { "flag": "content", "default": "" },
291          { "flag": "content-type", "default": "plain" },
292          { "flag": "local-only", "default": "false" },
293          { "flag": "enable-likes", "fieldName": "likeable", "default": "true" },
294          { "flag": "enable-replies", "fieldName": "replyable", "default": "true" },
295          { "flag": "enable-reposts", "fieldName": "boostable", "default": "true" },
296          { "flag": "in-reply-to", "default": "" },
297          { "flag": "language", "default": "" },
298          { "flag": "list-exclusive", "default": "false" },
299          { "flag": "list-replies-policy", "default": "list" },
300          { "flag": "list-title", "default": "" },
301          { "flag": "media-description", "fieldName": "mediaDescriptions" },
302          { "flag": "media-focus", "fieldName": "mediaFocusValues" },
303          { "flag": "media-file", "fieldName": "mediaFiles" },
304          { "flag": "poll-allows-multiple-choices", "default": "false" },
305          { "flag": "poll-expires-in" },
306          { "flag": "poll-hides-vote-counts", "default": "false" },
307          { "flag": "poll-option", "fieldName": "pollOptions" },
308          { "flag": "sensitive" },
309          { "flag": "summary", "default": "" },
310          { "flag": "type", "fieldName": "resourceType", "default": "" },
311          { "flag": "visibility", "default": "" }
312        ],
313        "summary": "Creates a specific resource",
314        "useConfig": true,
315        "usePrinter": true
316      },
317      "server": {
318        "additionalFields": [
319          { "name": "configDir", "type": "string"}
320        ],
321        "flags": [
322          { "flag": "no-idle-timeout", "default": "false"}
323        ],
324        "summary": "Runs Enbas in server mode",
325        "useConfig": true,
326        "usePrinter": true
327      },
328      "delete": {
329        "additionalFields": [
330          { "name": "configDir", "type": "string"}
331        ],
332        "flags": [
333          { "flag": "list-id", "fieldName": "listID", "default": ""},
334          { "flag": "save-text", "default": "false" },
335          { "flag": "status-id", "fieldName": "statusID", "default": "" },
336          { "flag": "type",    "fieldName": "resourceType", "default": "" }
337        ],
338        "summary": "Deletes a specific resource",
339        "useConfig": true,
340        "usePrinter": true
341      },
342      "edit": {
343        "additionalFields": [
344          { "name": "configDir", "type": "string"}
345        ],
346        "flags": [
347          { "flag": "attachment-id", "fieldName": "attachmentIDs" },
348          { "flag": "list-id", "fieldName": "listID", "default": ""},
349          { "flag": "list-title", "default": "" },
350          { "flag": "list-replies-policy", "default": "" },
351          { "flag": "media-description", "fieldName": "mediaDescriptions" },
352          { "flag": "media-focus", "fieldName": "mediaFocusValues" },
353          { "flag": "type", "fieldName": "resourceType", "default": "" }
354        ],
355        "summary": "Edit a specific resource",
356        "useConfig": true,
357        "usePrinter": true
358      },
359      "follow": {
360        "additionalFields": [
361          { "name": "configDir", "type": "string"}
362        ],
363        "flags": [
364          { "flag": "account-name" },
365          { "flag": "notify", "default": "false" },
366          { "flag": "show-reposts", "default": "true" },
367          { "flag": "tag", "default": ""},
368          { "flag": "type", "fieldName": "resourceType", "default": "" }
369        ],
370        "summary": "Follow a resource (e.g. an account)",
371        "useConfig": true,
372        "usePrinter": true
373      },
374      "init": {
375        "additionalFields": [
376          { "name": "configDir", "type": "string"}
377        ],
378        "flags": [],
379        "summary": "Creates a new configuration file in the specified configuration directory",
380        "useConfig": false,
381        "usePrinter": true
382      },
383      "login": {
384        "additionalFields": [
385          { "name": "configDir", "type": "string"}
386        ],
387        "flags": [
388          { "flag": "instance", "default": "" }
389        ],
390        "summary": "Logs into an account on GoToSocial",
391        "useConfig": true,
392        "usePrinter": true
393      },
394      "mute": {
395        "additionalFields": [
396          { "name": "configDir", "type": "string"}
397        ],
398        "flags": [
399          { "flag": "account-name" },
400          { "flag": "mute-duration" },
401          { "flag": "mute-notifications", "default": "false" },
402          { "flag": "status-id", "fieldName": "statusID", "default": "" },
403          { "flag": "type", "fieldName": "resourceType", "default": "" }
404        ],
405        "summary": "Mutes a specific resource (e.g. an account)",
406        "useConfig": true,
407        "usePrinter": true
408      },
409      "reject": {
410        "additionalFields": [
411          { "name": "configDir", "type": "string"}
412        ],
413        "flags": [
414          { "flag": "account-name" },
415          { "flag": "type", "fieldName": "resourceType", "default": "" }
416        ],
417        "summary": "Rejects a request (e.g. a follow request)",
418        "useConfig": true,
419        "usePrinter": true
420      },
421      "remove": {
422        "additionalFields": [
423          { "name": "configDir", "type": "string"}
424        ],
425        "flags": [
426          { "flag": "account-name", "fieldName": "accountNames" },
427          { "flag": "from", "fieldName": "fromResourceType", "default": "" },
428          { "flag": "list-id", "fieldName": "listID", "default": "" },
429          { "flag": "status-id", "fieldName": "statusID", "default": "" },
430          { "flag": "type", "fieldName": "resourceType", "default": "" }
431        ],
432        "summary": "Removes a resource from another resource",
433        "useConfig": true,
434        "usePrinter": true
435      },
436      "show": {
437        "additionalFields": [
438          { "name": "configDir", "type": "string"}
439        ],
440        "flags": [
441          { "flag": "account-name" },
442          { "flag": "all-audio", "fieldName": "getAllAudio", "default": "false" },
443          { "flag": "all-images", "fieldName": "getAllImages", "default": "false" },
444          { "flag": "all-videos", "fieldName": "getAllVideos", "default": "false" },
445          { "flag": "attachment-id", "fieldName": "attachmentIDs" },
446          { "flag": "boosted-by", "default": "false" },
447          { "flag": "browser", "fieldName": "showInBrowser", "default": "false" },
448          { "flag": "exclude-boosts", "default": "false" },
449          { "flag": "exclude-notification-type" },
450          { "flag": "exclude-replies", "default": "false" },
451          { "flag": "from", "fieldName": "fromResourceType", "default": "" },
452          { "flag": "include-notification-type" },
453          { "flag": "liked-by", "default": "false" },
454          { "flag": "limit", "default": "20" },
455          { "flag": "list-id", "fieldName": "listID", "default": "" },
456          { "flag": "my-account", "default": "false" },
457          { "flag": "notification-id", "fieldName": "notificationID", "default": "" },
458          { "flag": "only-media", "default": "false" },
459          { "flag": "only-pinned", "default": "false" },
460          { "flag": "only-public", "default": "false" },
461          { "flag": "show-preferences", "fieldName": "showUserPreferences", "default": "false" },
462          { "flag": "show-statuses", "default": "false" },
463          { "flag": "skip-relationship", "fieldName": "skipAccountRelationship", "default": "false" },
464          { "flag": "status-id", "fieldName": "statusID", "default": "" },
465          { "flag": "timeline-category", "default": "home" },
466          { "flag": "tag", "default": "" },
467          { "flag": "type", "fieldName": "resourceType", "default": "" }
468        ],
469        "summary": "Shows details about a specified resource",
470        "useConfig": true,
471        "usePrinter": true
472      },
473      "switch": {
474        "additionalFields": [
475          { "name": "configDir", "type": "string"}
476        ],
477        "flags": [
478          { "flag": "account-name" },
479          { "flag": "to",           "default": "" }
480        ],
481        "summary": "Performs a switch operation (e.g. switching between logged in accounts)",
482        "useConfig": true,
483        "usePrinter": true
484      },
485      "unblock": {
486        "additionalFields": [
487          { "name": "configDir", "type": "string"}
488        ],
489        "flags": [
490          { "flag": "account-name" },
491          { "flag": "type", "fieldName": "resourceType", "default": "" }
492        ],
493        "summary": "Unblocks a resource (e.g. an account)",
494        "useConfig": true,
495        "usePrinter": true
496      },
497      "unfollow": {
498        "additionalFields": [
499          { "name": "configDir", "type": "string"}
500        ],
501        "flags": [
502          { "flag": "account-name" },
503          { "flag": "tag", "default": ""},
504          { "flag": "type", "fieldName": "resourceType", "default": "" }
505        ],
506        "summary": "Unfollows a resource (e.g. an account)",
507        "useConfig": true,
508        "usePrinter": true
509      },
510      "unmute": {
511        "additionalFields": [
512          { "name": "configDir", "type": "string"}
513        ],
514        "flags": [
515          { "flag": "account-name" },
516          { "flag": "status-id", "fieldName": "statusID", "default": "" },
517          { "flag": "type", "fieldName": "resourceType", "default": "" }
518        ],
519        "summary": "Umutes a specific resource (e.g. an account)",
520        "useConfig": true,
521        "usePrinter": true
522      },
523      "version": {
524        "additionalFields": [
525          { "name": "configDir", "type": "string"}
526        ],
527        "flags": [
528          { "flag": "full", "default": "false" }
529        ],
530        "summary": "Prints the application's version and build information",
531        "useConfig": false,
532        "usePrinter": true
533      },
534      "whoami": {
535        "additionalFields": [
536          { "name": "configDir", "type": "string"}
537        ],
538        "flags": [],
539        "summary": "Prints the account that you are currently logged into",
540        "useConfig": true,
541        "usePrinter": true
542      }
543    }
544  }