// Info implements Command.Info.
495917
func (c *showCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "show-offer",
		Args:    "[<controller>:]<offer url>",
		Purpose: "Shows extended information about the offered application.",
		Doc:     showCommandDoc,
	})
}
63183
func (c *modelCredentialCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "set-credential",
		Args:    "<cloud name> <credential name>",
		Purpose: "Relates a remote credential to a model.",
		Doc:     modelCredentialDoc,
	})
}
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,
	})
}
1290500
func (c *dumpCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "dump-model",
		Purpose: "Displays the database agnostic representation of the model.",
		Doc:     dumpModelHelpDoc,
	})
}
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)
}
240849
func (c *offerCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "offer",
		Purpose: "Offer application endpoints for use in other models.",
		Args:    "[model-name.]<application-name>:<endpoint-name>[,...] [offer-name]",
		Doc:     offerCommandDoc,
	})
}
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,
	})
}
1064144
func (c *BootstrapCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "bootstrap-state",
		Purpose: "initialize juju state",
	})
}
832593
func (c *dumpDBCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "dump-db",
		Purpose: "Displays the mongo documents for of the model.",
		Doc:     dumpDBHelpDoc,
	})
}
168110
func (c *IntrospectCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "juju-introspect",
		Args:    "(--listen=...|<path>)",
		Purpose: "introspect Juju agents running on this machine",
		Doc:     introspectCommandDoc,
	})
}
186596
func (c *RelationGetCommand) Info() *cmd.Info {
	args := "<key> <unit id>"
	doc := `
relation-get prints the value of a unit's relation setting, specified by key.
If no key is given, or if the key is "-", all keys and values will be printed.
`
	// There's nothing we can really do about the error here.
	if name, err := c.ctx.RemoteUnitName(); err == nil {
		args = "[<key> [<unit id>]]"
		doc += fmt.Sprintf("Current default unit id is %q.", name)
	} else if !errors.IsNotFound(err) {
		logger.Errorf("Failed to retrieve remote unit name: %v", err)
	}
	return jujucmd.Info(&cmd.Info{
		Name:    "relation-get",
		Args:    args,
		Purpose: "get relation settings",
		Doc:     doc,
	})
}
300538
func (c *UpdateCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "update-space",
		Args:    "<name> <CIDR1> [ <CIDR2> ...]",
		Purpose: "Update a network space's CIDRs",
		Doc:     strings.TrimSpace(updateCommandDoc),
	})
}
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),
	})
}
1113886
func (c *listMachinesCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "machines",
		Purpose: usageListMachinesSummary,
		Doc:     usageListMachinesDetails,
		Aliases: []string{"list-machines"},
	})
}
16372
func (c *killCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "kill-controller",
		Args:    "<controller name>",
		Purpose: "Forcibly terminate all machines and other associated resources for a Juju controller.",
		Doc:     killDoc,
	})
}
1010671
func (c *listKeysCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "ssh-keys",
		Purpose: usageListSSHKeysSummary,
		Doc:     usageListSSHKeysDetails,
		Aliases: []string{"list-ssh-keys"},
	})
}
3462
func (c *AddCommand) Info() *cmd.Info {
	return jujucmd.Info(&cmd.Info{
		Name:    "add-space",
		Args:    "<name> [<CIDR1> <CIDR2> ...]",
		Purpose: "Add a new network space.",
		Doc:     strings.TrimSpace(addCommandDoc),
	})
}