[flyctl]
longHelp = """flyctl is a command line interface to the Fly.io platform.

It allows users to manage authentication, application launch,
deployment, network configuration, logging and more with just the
one command.

* Launch an app with the launch command
* Deploy an app with the deploy command
* View a deployed web application with the open command
* Check the status of an application with the status command

To read more, use the docs command to view Fly's help on the web.
"""
shortHelp = "The Fly CLI"
usage = "flyctl"

[info]
longHelp = """Shows information about the application on the Fly platform

Information includes the application's
* name, owner, version, status and hostname
* services
* IP addresses
"""
shortHelp = "Show detailed app information"
usage = "info"

[image]
longHelp = "Manage app image"
shortHelp = "Manage app image"
usage = "image"
[image.show]
longHelp = "Show image details."
shortHelp = "Show image details."
usage = "show"
[image.update]
longHelp = """This will update the application's image to the latest available version.
The update will perform a rolling restart against each VM, which may result in a brief service disruption.
"""
shortHelp = "Updates the app's image to the latest available version. (Fly Postgres only)"
usage = "update"

[open]
longHelp = """Open browser to current deployed application. If an optional path is specified, this is appended to the
URL for deployed application.
"""
shortHelp = "Open browser to current deployed application"
usage = "open [PATH]"

[destroy]
longHelp = """The DESTROY command will remove an application
from the Fly platform.
"""
shortHelp = "Permanently destroys an app"
usage = "destroy [APPNAME]"

[resume]
longHelp = """The RESUME command will restart a previously suspended application.
The application will resume with its original region pool and a min count of one
meaning there will be one running instance once restarted. Use SCALE SET MIN= to raise
the number of configured instances.
"""
shortHelp = "Resume an application"
usage = "resume [APPNAME]"

[restart]
longHelp = """The RESTART command will restart all running vms.
"""
shortHelp = "Restart an application"
usage = "restart [APPNAME]"

[move]
longHelp = """The MOVE command will move an application to another
organization the current user belongs to.
"""
shortHelp = "Move an app to another organization"
usage = "move [APPNAME]"

[apps]
longHelp = """The APPS commands focus on managing your Fly applications.
Start with the CREATE command to register your application.
The LIST command will list all currently registered applications.
"""
shortHelp = "Manage apps"
usage = "apps"
[apps.list]
longHelp = """The APPS LIST command will show the applications currently
registered and available to this user. The list will include applications
from all the organizations the user is a member of. Each application will
be shown with its name, owner and when it was last deployed.
"""
shortHelp = "List applications"
usage = "list"
[apps.create]
longHelp = """The APPS CREATE command will both register a new application
with the Fly platform and create the fly.toml file which controls how
the application will be deployed. The --builder flag allows a cloud native
buildpack to be specified which will be used instead of a Dockerfile to
create the application image when it is deployed.
"""
shortHelp = "Create a new application"
usage = "create [APPNAME]"
[apps.destroy]
longHelp = """The APPS DESTROY command will remove an application
from the Fly platform.
"""
shortHelp = "Permanently destroys an app"
usage = "destroy [APPNAME]"
[apps.move]
longHelp = """The APPS MOVE command will move an application to another
organization the current user belongs to.
"""
shortHelp = "Move an app to another organization"
usage = "move [APPNAME]"
[apps.suspend]
longHelp = """The APPS SUSPEND command will suspend an application.
All instances will be halted leaving the application running nowhere.
It will continue to consume networking resources (IP address). See APPS RESUME
for details on restarting it.
"""
shortHelp = "Suspend an application"
usage = "suspend [APPNAME]"
[apps.resume]
longHelp = """The APPS RESUME command will restart a previously suspended application.
The application will resume with its original region pool and a min count of one
meaning there will be one running instance once restarted. Use SCALE SET MIN= to raise
the number of configured instances.
"""
shortHelp = "Resume an application"
usage = "resume [APPNAME]"
[apps.restart]
longHelp = """The APPS RESTART command will restart all running vms.
"""
shortHelp = "Restart an application"
usage = "restart [APPNAME]"

[auth]
longHelp = """Authenticate with Fly (and logout if you need to).
If you do not have an account, start with the AUTH SIGNUP command.
If you do have and account, begin with the AUTH LOGIN subcommand.
"""
shortHelp = "Manage authentication"
usage = "auth"
[auth.whoami]
longHelp = """Displays the users email address/service identity currently
authenticated and in use.
"""
shortHelp = "Show the currently authenticated user"
usage = "whoami"
[auth.token]
longHelp = """Shows the authentication token that is currently in use.
This can be used as an authentication token with API services,
independent of flyctl.
"""
shortHelp = "Show the current auth token"
usage = "token"
[auth.login]
longHelp = """Logs a user into the Fly platform. Supports browser-based,
email/password and one-time-password authentication. Defaults to using
browser-based authentication.
"""
shortHelp = "Log in a user"
usage = "login"
[auth.logout]
longHelp = """Log the currently logged-in user out of the Fly platform.
To continue interacting with Fly, the user will need to log in again.
"""
shortHelp = "Logs out the currently logged in user"
usage = "logout"
[auth.signup]
longHelp = """Creates a new fly account. The command opens the browser
and sends the user to a form to provide appropriate credentials.
"""
shortHelp = "Create a new fly account"
usage = "signup"
[auth.docker]
longHelp = """Adds registry.fly.io to the docker daemon's authenticated
registries. This allows you to push images directly to fly from
the docker cli.
"""
shortHelp = "Authenticate docker"
usage = "docker"

[builds]
longHelp = """Fly builds are templates to make developing Fly applications easier.
"""
shortHelp = "Work with Fly builds"
usage = "builds"
[builds.list]
longHelp = """
"""
shortHelp = "List builds"
usage = "list"
[builds.logs]
longHelp = """
"""
shortHelp = "Show logs associated with builds"
usage = "logs"

[certs]
longHelp = """Manages the certificates associated with a deployed application.
Certificates are created by associating a hostname/domain with the application.
When Fly is then able to validate that hostname/domain, the platform gets
certificates issued for the hostname/domain by Let's Encrypt.
"""
shortHelp = "Manage certificates"
usage = "certs"
[certs.list]
longHelp = """List the certificates associated with a deployed application.
"""
shortHelp = "List certificates for an app."
usage = "list"
[certs.add]
longHelp = """Add a certificate for an application. Takes a hostname
as a parameter for the certificate.
"""
shortHelp = "Add a certificate for an app."
usage = "add <hostname>"
[certs.remove]
longHelp = """Removes a certificate from an application. Takes hostname
as a parameter to locate the certificate.
"""
shortHelp = "Removes a certificate from an app"
usage = "remove <hostname>"
[certs.show]
longHelp = """Shows certificate information for an application.
Takes hostname as a parameter to locate the certificate.
"""
shortHelp = "Shows certificate information"
usage = "show <hostname>"
[certs.check]
longHelp = """Checks the DNS configuration for the specified hostname.
Displays results in the same format as the SHOW command.
"""
shortHelp = "Checks DNS configuration"
usage = "check <hostname>"

[checks]
longHelp = "Manage health checks"
shortHelp = "Manage health checks"
usage = "checks"
[checks.handlers]
longHelp = "Manage health check handlers"
shortHelp = "Manage health check handlers"
usage = "handlers"
[checks.handlers.create]
longHelp = "Create a health check handler"
shortHelp = "Create a health check handler"
usage = "create"
[checks.handlers.delete]
longHelp = "Delete a health check handler"
shortHelp = "Delete a health check handler"
usage = "delete <organization> <handler-name>"
[checks.handlers.list]
longHelp = "List health check handlers"
shortHelp = "List health check handlers"
usage = "list"
[checks.list]
longHelp = "List app health checks"
shortHelp = "List app health checks"
usage = "list"

[curl]
longHelp = """Run a performance test against a url.
"""
shortHelp = "Run a performance test against a url"
usage = "curl <url>"

[config]
longHelp = """The CONFIG commands allow you to work with an application's configuration.
"""
shortHelp = "Manage an app's configuration"
usage = "config"
[config.display]
longHelp = """Display an application's configuration. The configuration is presented
in JSON format. The configuration data is retrieved from the Fly service.
"""
shortHelp = "Display an app's configuration"
usage = "display"
[config.save]
longHelp = """Save an application's configuration locally. The configuration data is
retrieved from the Fly service and saved in TOML format.
"""
shortHelp = "Save an app's config file"
usage = "save"
[config.validate]
longHelp = """Validates an application's config file against the Fly platform to
ensure it is correct and meaningful to the platform.
"""
shortHelp = "Validate an app's config file"
usage = "validate"
[config.env]
longHelp = """Display an app's runtime environment variables. It displays a section for
secrets and another for config file defined environment variables.
"""
shortHelp = "Display an app's runtime environment variables"
usage = "env"

[dashboard]
longHelp = """Open web browser on Fly Web UI for this application"""
shortHelp = "Open web browser on Fly Web UI for this app"
usage = "dashboard"

[dashboard.metrics]
longHelp = """Open web browser on Fly Web UI for this application's metrics"""
shortHelp = "Open web browser on Fly Web UI for this app's metrics"
usage = "metrics"

[deploy]
longHelp = """Deploy an application to the Fly platform. The application can be a local
image, remote image, defined in a Dockerfile or use a CNB buildpack.

Use the --config/-c flag to select a specific toml configuration file.

Use the --image/-i flag to specify a local or remote image to deploy.

Use the --detach flag to return immediately from starting the deployment rather
than monitoring the deployment progress.

Use flyctl monitor to restart monitoring deployment progress
"""
shortHelp = "Deploy an app to the Fly platform"
usage = "deploy [<workingdirectory>]"
[dns-records]
longHelp = """Manage DNS records within a domain"""
shortHelp = "Manage DNS records"
usage = "dns-records"

[dns-records.list]
longHelp = """List DNS records within a domain"""
shortHelp = "List DNS records"
usage = "list <domain>"

[dns-records.export]
longHelp = """Export DNS records. Will write to a file if a filename is given, otherwise
writers to StdOut."""
shortHelp = "Export DNS records"
usage = "export <domain> [<filename>]"

[dns-records.import]
longHelp = """Import DNS records. Will import from a file is a filename is given, otherwise
imports from StdIn."""
shortHelp = "Import DNS records"
usage = "import <domain> [<filename>]"

[docs]
longHelp = """View Fly documentation on the Fly.io website. This command will open a
browser to view the content.
"""
shortHelp = "View Fly documentation"
usage = "docs"

[domains]
longHelp = """Manage domains"""
shortHelp = "Manage domains"
usage = "domains"

[domains.add]
longHelp = """Add a domain to an organization"""
shortHelp = "Add a domain"
usage = "add [org] [name]"

[domains.list]
longHelp = """List domains for an organization"""
shortHelp = "List domains"
usage = "list [<org>]"

[domains.register]
longHelp = """Register a new domain in an organization"""
shortHelp = "Register a domain"
usage = "register [org] [name]"

[domains.show]
longHelp = """Show information about a domain"""
shortHelp = "Show domain"
usage = "show <domain>"

[history]
longHelp = """List the history of changes in the application. Includes autoscaling
events and their results.
"""
shortHelp = "List an app's change history"
usage = "history"

[ips]
longHelp = """The IPS commands manage IP addresses for applications. An application
can have a number of IP addresses associated with it and this family of commands
allows you to list, allocate and release those addresses. It supports both IPv4
and IPv6 addresses.
"""
shortHelp = "Manage IP addresses for apps"
usage = "ips"
[ips.list]
longHelp = """Lists the IP addresses allocated to the application.
"""
shortHelp = "List allocated IP addresses"
usage = "list"
[ips.allocate-v4]
longHelp = """Allocates an IPv4 address to the application.
"""
shortHelp = "Allocate an IPv4 address"
usage = "allocate-v4"
[ips.allocate-v6]
longHelp = """Allocates an IPv6 address to the application.
"""
shortHelp = "Allocate an IPv6 address"
usage = "allocate-v6"
[ips.release]
longHelp = """Releases an IP address from the application.
"""
shortHelp = "Release an IP address"
usage = "release [ADDRESS]"
[ips.private]
longHelp = """List instances private IP addresses, accessible from within the
Fly network"""
shortHelp = "List instances private IP addresses"
usage = "private"

[launch]
longHelp = "Create and configure a new app from source code or an image reference."
shortHelp = "Launch a new app"
usage = "launch"

[list]
longHelp = """The list command is for listing your resources on has two subcommands, apps and orgs.

The apps command lists your applications. There are filtering options available.

The orgs command lists all the organizations you are a member of.
"""
shortHelp = "Lists your Fly resources"
usage = "list"

[list.apps]
longHelp = """The list apps command lists all your applications. As this may be a
long list, there are options to filter the results.

Specifying a text string as a parameter will only return applications where the
application name contains the text.

The --orgs/-o flag allows you to specify the name of an organization that the
application must be owned by. (see list orgs for organization names).

The --status/-s flag allows you to specify status applications should be at to be
returned in the results. e.g. -s running would only return running applications.
"""
shortHelp = "Lists all your apps"
usage = "apps [text] [-o org] [-s status]"

[list.orgs]
longHelp = """Lists all organizations which your are a member of. It will show the
short name of the organization and the long name.
"""
shortHelp = "List all your organizations"
usage = "orgs"

[logs]
longHelp = """View application logs as generated by the application running on
the Fly platform.

Logs can be filtered to a specific instance using the --instance/-i flag or
to all instances running in a specific region using the --region/-r flag.
"""
shortHelp = "View app logs"
usage = "logs"

[monitor]
longHelp = """Monitor application deployments and other activities. Use --verbose/-v
to get details of every instance . Control-C to stop output."""
shortHelp = "Monitor deployments"
usage = "monitor"

[platform]
longHelp = """The PLATFORM commands are for users looking for information
about the Fly platform.
"""
shortHelp = "Fly platform information"
usage = "platform"

[platform.regions]
longHelp = """View a list of regions where Fly has edges and/or datacenters
"""
shortHelp = "List regions"
usage = "regions"

[platform.vmsizes]
longHelp = """View a list of VM sizes which can be used with the FLYCTL SCALE VM command
"""
shortHelp = "List VM Sizes"
usage = "vm-sizes"

[platform.status]
longHelp = """Show current Fly platform status in a browser
"""
shortHelp = "Show current platform status"
usage = "status"

[postgres]
longHelp = "Manage postgres clusters"
shortHelp = "Manage postgres clusters"
usage = "postgres"
[postgres.attach]
longHelp = "Attach a postgres cluster to an app"
shortHelp = "Attach a postgres cluster to an app"
usage = "attach"
[postgres.connect]
shortHelp = "Connect to the Postgres console"
longHelp  = "Connect to the Postgres console"
usage     = "connect"
[postgres.create]
longHelp = "Create a postgres cluster"
shortHelp = "Create a postgres cluster"
usage = "create"
[postgres.db]
longHelp = "manage databases in a cluster"
shortHelp = "manage databases in a cluster"
usage = "db"
[postgres.db.create]
longHelp = "create a database in a cluster"
shortHelp = "create a database in a cluster"
usage = "create <postgres-cluster-name>"
[postgres.db.list]
longHelp = "list databases in a cluster"
shortHelp = "list databases in a cluster"
usage = "list <postgres-cluster-name>"
[postgres.detach]
longHelp = "Detach a postgres cluster from an app"
shortHelp = "Detach a postgres cluster from an app"
usage = "detach"
[postgres.list]
longHelp = "list postgres clusters"
shortHelp = "list postgres clusters"
usage = "list"
[postgres.users]
longHelp = "manage users in a cluster"
shortHelp = "manage users in a cluster"
usage = "users"
[postgres.users.create]
longHelp = "create a user in a cluster"
shortHelp = "create a user in a cluster"
usage = "create <postgres-cluster-name>"
[postgres.users.list]
longHelp = "list users in a cluster"
shortHelp = "list users in a cluster"
usage = "list <postgres-cluster-name>"

[regions]
longHelp = """Configure the region placement rules for an application.
"""
shortHelp = "Manage regions"
usage = "regions"

[regions.add]
longHelp = """Allow the app to run in one or more regions
"""
shortHelp = "Allow the app to run in the provided regions"
usage = "add REGION ..."

[regions.remove]
longHelp = """Prevent the app from running in the provided regions
"""
shortHelp = "Prevent the app from running in the provided regions"
usage = "remove REGION ..."

[regions.set]
longHelp = """Sets the region pool with provided regions
"""
shortHelp = "Sets the region pool with provided regions"
usage = "set REGION ..."

[regions.backup]
longHelp = """Sets the backup region pool with provided regions
"""
shortHelp = "Sets the backup region pool with provided regions"
usage = "backup REGION ..."

[regions.list]
longHelp = """Shows the list of regions the app is allowed to run in.
"""
shortHelp = "Shows the list of regions the app is allowed to run in"
usage = "list"

[releases]
longHelp = """List all the releases of the application onto the Fly platform,
including type, when, success/fail and which user triggered the release.
"""
shortHelp = "List app releases"
usage = "releases"

[autoscale]
longHelp = """Autoscaling application resources
"""
shortHelp = "Autoscaling app resources"
usage = "autoscale"

[autoscale.disable]
longHelp = """Disable autoscaling to manually controlling app resources
"""
shortHelp = "Disable autoscaling"
usage = "disable"

[autoscale.balanced]
longHelp = """Configure the app to balance regions based on traffic with given parameters:

min=int - minimum number of instances to be allocated from region pool.
max=int - maximum number of instances to be allocated from region pool.
"""
shortHelp = "Configure a traffic balanced app with params (min=int max=int)"
usage = "balanced"

[autoscale.standard]
longHelp = """Configure the app without traffic balancing with the given parameters:

min=int - minimum number of instances to be allocated from region pool.
max=int - maximum number of instances to be allocated from region pool.
"""
shortHelp = "Configure a standard balanced app with params (min=int max=int)"
usage = "standard"

[autoscale.show]
longHelp = """Show current autoscaling configuration
"""
shortHelp = "Show current autoscaling configuration"
usage = "show"

[autoscale.set]
longHelp = """Allows the setting of the current models autoscaling parameters:

min=int - minimum number of instances to be allocated from region pool.
max=int - maximum number of instances to be allocated from region pool.
"""
shortHelp = "Set current models autoscaling parameters"
usage = "set"

[scale]
longHelp = """Scale application resources
"""
shortHelp = "Scale app resources"
usage = "scale"

[scale.vm]
longHelp = """Change an application's VM size to one of the named VM sizes.

Size names include shared-cpu-1x, dedicated-cpu-1x, dedicated-cpu-2x.

For a full list of supported sizes use the command FLYCTL PLATFORM VM-SIZES

Memory size can be set with --memory=number-of-MB

e.g. flyctl scale vm shared-cpu-1x --memory=2048

For dedicated vms, this should be a multiple of 1024MB.

For shared vms, this can be 256MB or a a multiple of 1024MB.

For pricing, see https://fly.io/docs/about/pricing/
"""
shortHelp = "Change an app's VM to a named size (eg. shared-cpu-1x, dedicated-cpu-1x, dedicated-cpu-2x...)"
usage = "vm [SIZENAME] [flags]"

[scale.count]
longHelp = """Change an app's VM count to the given value.

For pricing, see https://fly.io/docs/about/pricing/
"""
shortHelp = "Change an app's VM count to the given value"
usage = "count <count>"

[scale.memory]
longHelp = """Set VM memory to a number of megabytes
"""
shortHelp = "Set VM memory"
usage = "memory <memoryMB>"

[scale.show]
longHelp = """Show current VM size and counts
"""
shortHelp = "Show current resources"
usage = "show"

[secrets]
longHelp = """Manage application secrets with the set and unset commands.

Secrets are provided to applications at runtime as ENV variables. Names are
case sensitive and stored as-is, so ensure names are appropriate for
the application and vm environment.
"""
shortHelp = "Manage app secrets"
usage = "secrets"

[secrets.list]
longHelp = """List the secrets available to the application. It shows each
secret's name, a digest of the its value and the time the secret was last set.
The actual value of the secret is only available to the application.
"""
shortHelp = "Lists the secrets available to the app"
usage = "list"
[secrets.set]
longHelp = """Set one or more encrypted secrets for an application.

Secrets are provided to application at runtime as ENV variables. Names are
case sensitive and stored as-is, so ensure names are appropriate for
the application and vm environment.

Any value that equals "-" will be assigned from STDIN instead of args.
"""
shortHelp = "Set one or more encrypted secrets for an app"
usage = "set [flags] NAME=VALUE NAME=VALUE ..."
[secrets.import]
longHelp = """Set one or more encrypted secrets for an application. Values
are read from stdin as name=value
"""
shortHelp = "Read secrets in name=value from stdin"
usage = "import [flags]"

[secrets.unset]
longHelp = """Remove encrypted secrets from the application. Unsetting a
secret removes its availability to the application.
"""
shortHelp = "Remove encrypted secrets from an app"
usage = "unset [flags] NAME NAME ..."

[status]
longHelp = """Show the application's current status including application
details, tasks, most recent deployment details and in which regions it is
currently allocated.
"""
shortHelp = "Show app status"
usage = "status"

[status.instance]
longHelp = """Show the instance's current status including logs, checks,
and events.
"""
shortHelp = "Show instance status"
usage = "instance [instance-id]"

[version]
longHelp = """Shows version information for the flyctl command itself,
including version number and build date.
"""
shortHelp = "Show version information for the flyctl command"
usage = "version"

[version.update]
longHelp = """Checks for update and if one is available, runs the appropriate
command to update the application.
"""
shortHelp = "Checks for available updates and automatically updates"
usage = "update"

[builtins]
longHelp = """View and manage Flyctl deployment builtins.
"""
shortHelp = "View and manage Flyctl deployment builtins"
usage = "builtins"

[builtins.list]
longHelp = """List available Flyctl deployment builtins and their
descriptions.
"""
shortHelp = "List available Flyctl deployment builtins"
usage = "list"

[builtins.show]
longHelp = """Show details of a Fly deployment builtins, including
the builtin "Dockerfile" with default settings and other information.
"""
shortHelp = "Show details of a builtin's configuration"
usage = "show [<builtin name>]"

[builtins.show-app]
longHelp = """Show details of a Fly deployment builtins, including
the builtin "Dockerfile" with an apps settings included
and other information.
"""
shortHelp = "Show details of a builtin's configuration"
usage = "show-app"

[orgs]
longHelp = """Commands for managing Fly organizations. list, create, show and
destroy organizations.
Organization admins can also invite or remove users from Organizations.
"""
shortHelp = "Commands for managing Fly organizations"
usage = "orgs"

[orgs.list]
longHelp = """Lists organizations available to current user."""
shortHelp = "Lists organizations for current user"
usage = "list"

[orgs.show]
longHelp = """Shows information about an organization.
Includes name, slug and type. Summarizes user permissions, DNS zones and
associated member. Details full list of members and roles."""
shortHelp = "Show information about an organization"
usage = "show <org>"

[orgs.invite]
longHelp = """Invite a user, by email, to join organization. The invitation will be
sent, and the user will be pending until they respond. See also orgs revoke."""
shortHelp = "Invite user (by email) to organization"
usage = "invite <org> <email>"

[orgs.revoke]
longHelp = """Revokes an invitation to join an organization that has been sent to a
user by email."""
shortHelp = "Revoke a pending invitation to an organization"
usage = "revoke <org> <email>"

[orgs.remove]
longHelp = """Remove a user from an organization. User must have accepted a previous
invitation to join (if not, see orgs revoke)."""
shortHelp = "Remove a user from an organization"
usage = "remove <org> <email>"

[orgs.create]
longHelp = """Create a new organization. Other users can be invited to join the
organization later."""
shortHelp = "Create an organization"
usage = "create <org>"

[orgs.delete]
longHelp = """Delete an existing organization."""
shortHelp = "Delete an organization"
usage = "delete <org>"

[volumes]
longHelp = """Commands for managing Fly Volumes associated with an application."""
shortHelp = "Volume management commands"
usage = "volumes <command>"

[volumes.create]
longHelp = """Create new volume for app. --region flag must be included to specify
region the volume exists in. --size flag is optional, defaults to 10,
sets the size as the number of gigabytes the volume will consume."""
shortHelp = "Create new volume for app"
usage = "create <volumename>"

[volumes.list]
longHelp = """List all the volumes associated with this application."""
shortHelp = "List the volumes for app"
usage = "list"

[volumes.delete]
longHelp = """Delete a volume from the application. Requires the volume's ID
number to operate. This can be found through the volumes list command"""
shortHelp = "Delete a volume from the app"
usage = "delete <id>"

[volumes.show]
longHelp = """Show details of an app's volume. Requires the volume's ID
number to operate. This can be found through the volumes list command"""
shortHelp = "Show details of an app's volume"
usage = "show <id>"

[volumes.snapshots]
longHelp = "Commands for managing volume snapshots"
shortHelp = "Manage volume snapshots"
usage = "snapshots"
[volumes.snapshots.list]
longHelp = "list snapshots associated with the specified volume"
shortHelp = "list snapshots associated with the specified volume"
usage = "list <volume-id>"

[ssh]
longHelp = """Commands that manage SSH credentials"""
shortHelp = "Commands that manage SSH credentials"
usage = "ssh <command>"

[ssh.console]
longHelp = """Connect to a running instance of the current app; with -select, choose instance from list."""
shortHelp = "Connect to a running instance of the current app."
usage = "console [<host>]"

[ssh.log]
longHelp = """log of all issued certs"""
shortHelp = "Log of all issued certs"
usage = "log"

[ssh.establish]
longHelp = """Create a root SSH certificate for your organization. If <override>
is provided, will re-key an organization; all previously issued creds will be
invalidated."""
shortHelp = "Create a root SSH certificate for your organization"
usage = "establish [<org>] [<override>]"

[ssh.issue]
longHelp = """Issue a new SSH credential. With -agent, populate credential
into SSH agent. With -hour, set the number of hours (1-72) for credential
validity."""
shortHelp = "Issue a new SSH credential."
usage = "issue [org] [email] [path]"

[ssh.shell]
longHelp = """Connect directly to an instance. With -region, set the
WireGuard region to use for the connection."""
shortHelp = "Connect directly to an instance."
usage = "shell [org] [address]"

[vm]
longHelp = "Commands that manage VM instances"
shortHelp = "Commands that manage VM instances"
usage = "vm <command>"
[vm.restart]
longHelp = "Request for a VM to be asynchronously restarted."
shortHelp = "Restart a VM"
usage = "restart <vm-id>"
[vm.status]
longHelp = "Show a VM's current status including logs, checks, and events."
shortHelp = "Show a VM's status"
usage = "status <vm-id>"
[vm.stop]
longHelp = "Request for a VM to be asynchronously stopped."
shortHelp = "Stop a VM"
usage = "stop <vm-id>"

[agent]
longHelp = """Commands that manage the Fly agent"""
shortHelp = "Commands that manage the Fly agent"
usage = "agent <command>"

[agent.daemon-start]
longHelp = "Run the Fly agent as a service (manually)"
shortHelp = "Run the Fly agent as a service (manually)"
usage = "daemon-start"

[agent.start]
longHelp = "Start the Fly agent"
shortHelp = "Start the Fly agent"
usage = "start"

[agent.restart]
longHelp = "Restart the Fly agent"
shortHelp = "Restart the Fly agent"
usage = "restart"

[agent.stop]
longHelp = "Stop the Fly agent"
shortHelp = "Stop the Fly agent"
usage = "stop"

[agent.ping]
longHelp = "ping the Fly agent"
shortHelp = "ping the Fly agent"
usage = "ping"

[wireguard]
longHelp = """Commands that manage WireGuard peer connections"""
shortHelp = "Commands that manage WireGuard peer connections"
usage = "wireguard <command>"

[wireguard.list]
longHelp = "List all WireGuard peer connections"
shortHelp = "List all WireGuard peer connections"
usage = "list [<org>]"

[wireguard.create]
longHelp = """Add a WireGuard peer connection to an organization"""
shortHelp = "Add a WireGuard peer connection"
usage = "create [org] [region] [name]"

[wireguard.reset]
longHelp = """Reset WireGuard peer connection for an organization"""
shortHelp = "Reset WireGuard peer connection for an organization"
usage = "reset [org]"

[wireguard.remove]
longHelp = """Remove a WireGuard peer connection from an organization"""
shortHelp = "Remove a WireGuard peer connection"
usage = "remove [org] [name]"

[wireguard.status]
longHelp = """Get status for a WireGuard peer connection"""
shortHelp = "Get status a WireGuard peer connection"
usage = "status [org] [name]"

[wireguard.websockets]
longHelp = """Enable or disable WireGuard tunneling over WebSockets"""
shortHelp = "Enable or disable WireGuard tunneling over WebSockets"
usage = "websockets [enable/disable]"

[wireguard.token]
longHelp = """Commands that managed WireGuard delegated access tokens"""
shortHelp = "Commands that managed WireGuard delegated access tokens"
usage = "token <command>"

[wireguard.token.list]
longHelp = "List all WireGuard tokens"
shortHelp = "List all WireGuard tokens"
usage = "list [<org>]"

[wireguard.token.create]
longHelp = "Create a new WireGuard token"
shortHelp = "Create a new WireGuard token"
usage = "create [org] [name]"

[wireguard.token.delete]
longHelp = "Delete a WireGuard token; token is name:<name> or token:<token>"
shortHelp = "Delete a WireGuard token; token is name:<name> or token:<token>"
usage = "delete [org] [token]"

[wireguard.token.start]
longHelp = "Start a new WireGuard peer connection associated with a token (set FLY_WIREGUARD_TOKEN)"
shortHelp = "Start a new WireGuard peer connection associated with a token (set FLY_WIREGUARD_TOKEN)"
usage = "start [name] [group] [region] [file]"

[wireguard.token.update]
longHelp = "Rekey a WireGuard peer connection associated with a token (set FLY_WIREGUARD_TOKEN)"
shortHelp = "Rekey a WireGuard peer connection associated with a token (set FLY_WIREGUARD_TOKEN)"
usage = "update [name] [file]"

[machine]
longHelp = """Commands that manage machines"""
shortHelp = "Commands that manage machines"
usage = "machine <command>"
[machine.clone]
longHelp = "Clones a Fly Machine"
shortHelp = "Clones a Fly Machine"
usage = "clone"
[machine.run]
longHelp = "Launch Fly machine with the provided image and command"
shortHelp = "Launch a Fly machine"
usage = "run <image> [command]"
[machine.list]
longHelp = "List Fly machines"
shortHelp = "List Fly machines"
usage = "list"
[machine.stop]
longHelp = "Stop a Fly machine"
shortHelp = "Stop a Fly machine"
usage = "stop <id>"
[machine.start]
longHelp = "Start a Fly machine"
shortHelp = "Start a Fly machine"
usage = "start <id>"
[machine.kill]
longHelp = "Kill (SIGKILL) a Fly machine"
shortHelp = "Kill (SIGKILL) a Fly machine"
usage = "kill <id>"
[machine.remove]
longHelp = "Remove a Fly machine"
shortHelp = "Remove a Fly machine"
usage = "remove <id>"
[machine.status]
longHelp = """Show current status of a running machine"""
shortHelp = "Show current status of a running machine"
usage = "status <id>"

[proxy]
longHelp = """Proxies connections to a fly app through the wireguard tunnel"""
shortHelp = "Proxies connections to a fly app"
usage = "proxy <local:remote>"

[turboku]
longHelp = "Launches heroku apps"
shortHelp =  "Launches heroku apps"
usage = "turboku <heroku-app>"

[dig]
longHelp = """Make DNS requests against Fly.io's internal DNS server. Valid types include
AAAA and TXT (the two types our servers answer authoritatively), AAAA-NATIVE
and TXT-NATIVE, which resolve with Go's resolver (they're slower,
but may be useful if diagnosing a DNS bug) and A and CNAME
(if you're using the server to test recursive lookups.)
Note that this resolves names against the server for the current organization. You can
set the organization with -o <org-slug>; otherwise, the command uses the organization
attached to the current app (you can pass an app in with -a <appname>)."""
shortHelp = "DNS lookups"
usage = "dig [type] <name>"