// TODO(ericsnow) Change "tags" to "labels" in the help text?
// Info implements cmd.Command.
974368
func (c RegisterCmd) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    RegisterCmdName,
		Args:    "<type> <class> <id> [tags...]",
		Purpose: "register a charm payload with juju",
		Doc: `
"payload-register" is used while a hook is running to let Juju know that a
payload has been started. The information used to start the payload must be
provided when "register" is run.

The payload class must correspond to one of the payloads defined in
the charm's metadata.yaml.

		`,
	})
}
568660
func (c *ListPlansCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "plans",
		Args:    "",
		Purpose: "List plans.",
		Doc:     listPlansDoc,
		Aliases: []string{"list-plans"},
	})
}
1302839
func (c *showMachineCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "show-machine",
		Args:    "<machineID> ...",
		Purpose: "Show a machine's status.",
		Doc:     showMachineCommandDoc,
	})
}
381341
func (c *removeStorageCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "remove-storage",
		Purpose: "Removes storage from the model.",
		Doc:     removeStorageCommandDoc,
		Args:    removeStorageCommandArgs,
	})
}
675794
func (c *addKeysCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "add-ssh-key",
		Args:    "<ssh key> ...",
		Purpose: usageAddSSHKeySummary,
		Doc:     usageAddSSHKeyDetails,
	})
}
599305
func (c *showModelCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "show-model",
		Args:    "<model name>",
		Purpose: "Shows information about the current or specified model.",
		Doc:     showModelCommandDoc,
	})
}
1267904
func (c *unregisterCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "unregister",
		Args:    "<controller name>",
		Purpose: "Unregisters a Juju controller.",
		Doc:     usageUnregisterDetails,
	})
}
1094647
func (c *findCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "find-offers",
		Purpose: "Find offered application endpoints.",
		Doc:     findCommandDoc,
	})
}
114814
func (c *AddCloudCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "add-cloud",
		Args:    "<cloud name> [<cloud definition file>]",
		Purpose: usageAddCloudSummary,
		Doc:     usageAddCloudDetails,
	})
}
793310
func (c *checkoutCommand) Info() *cmd.Info {
	info := &cmd.Info{
		Name:    "checkout",
		Args:    "<branch name>",
		Purpose: checkoutSummary,
		Doc:     checkoutDoc,
	}
	return jujucmd.Info(info)
}
263382
func (c *configCommand) Info() *cmd.Info {
	info := &cmd.Info{
		Args:    "[<model-key>[=<value>] ...]",
		Name:    "model-config",
		Purpose: modelConfigSummary,
	}
	if details, err := c.modelConfigDetails(); err == nil {
		if output, err := formatGlobalModelConfigDetails(details); err == nil {
			info.Doc = fmt.Sprintf("%s%s\n%s%s",
				modelConfigHelpDocPartOne,
				modelConfigHelpDocKeys,
				output,
				modelConfigHelpDocPartTwo)
			return info
		}
	}
	info.Doc = fmt.Sprintf("%s%s",
		modelConfigHelpDocPartOne,
		modelConfigHelpDocPartTwo)
	return jujucmd.Info(info)
}
787323
func (c *ListCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "spaces",
		Args:    "[--short] [--format yaml|json] [--output <path>]",
		Purpose: "List known spaces, including associated subnets.",
		Doc:     strings.TrimSpace(listCommandDoc),
		Aliases: []string{"list-spaces"},
	})
}
835411
func (c *removeCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "remove-user",
		Args:    "<user name>",
		Purpose: removeUsageSummary,
		Doc:     removeUsageDetails,
	})
}
147144
func (c *listControllersCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "controllers",
		Purpose: helpControllersSummary,
		Doc:     helpControllersDetails,
		Aliases: []string{"list-controllers"},
	})
}
842466
func (c *exportBundleCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "export-bundle",
		Purpose: "Exports the current model configuration as a reusable bundle.",
		Doc:     exportBundleHelpDoc,
	})
}
262448
func (c *RenameCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "rename-space",
		Args:    "<old-name> <new-name>",
		Purpose: "Rename a network space",
		Doc:     strings.TrimSpace(renameCommandDoc),
	})
}
672745
func (c *upgradeGUICommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "upgrade-gui",
		Purpose: "Upgrade to a new Juju GUI version.",
		Doc:     upgradeGUIDoc,
	})
}