code: func (u *UserCommand) Initialize(app *kingpin.Application, config *service.Config) {
  	u.config = config
  	users := app.Command("users", "Manage user accounts")
  
  	u.userAdd = users.Command("add", "Generate a user invitation token")
  	u.userAdd.Arg("account", "Teleport user account name").Required().StringVar(&u.login)
  	u.userAdd.Arg("local-logins", "Local UNIX users this account can log in as [login]").
  		Default("").StringVar(&u.allowedLogins)
  	u.userAdd.Flag("k8s-groups", "Kubernetes groups to assign to a user.").
  		Default("").StringVar(&u.kubeGroups)
  	u.userAdd.Flag("ttl", fmt.Sprintf("Set expiration time for token, default is %v hour, maximum is %v hours",
  		int(defaults.SignupTokenTTL/time.Hour), int(defaults.MaxSignupTokenTTL/time.Hour))).
  		Default(fmt.Sprintf("%v", defaults.SignupTokenTTL)).DurationVar(&u.ttl)
  	u.userAdd.Flag("format", "Output format, 'text' or 'json'").Hidden().Default(teleport.Text).StringVar(&u.format)
  	u.userAdd.Alias(AddUserHelp)
  
  	u.userUpdate = users.Command("update", "Update properties for existing user").Hidden()
  	u.userUpdate.Arg("login", "Teleport user login").Required().StringVar(&u.login)
  	u.userUpdate.Flag("set-roles", "Roles to assign to this user").
  		Default("").StringVar(&u.roles)
  
  	u.userList = users.Command("ls", "List all user accounts")
  	u.userList.Flag("format", "Output format, 'text' or 'json'").Hidden().Default(teleport.Text).StringVar(&u.format)
  
  	u.userDelete = users.Command("rm", "Deletes user accounts").Alias("del")
  	u.userDelete.Arg("logins", "Comma-separated list of user logins to delete").
  		Required().StringVar(&u.login)
  }
docs: // Initialize allows UserCommand to plug itself into the CLI parser