code: func editPhysicalHostCmd(params *Parameters) *subcommands.Command {
  	return &subcommands.Command{
  		UsageLine: "edit-host -name <name> [-machine <machine>] [-os <os>] [-state <state>] [-slots <vm slots>] [-vdc <virtual datacenter>] [-desc <description>] [-tick <deployment ticket>]",
  		ShortDesc: "edits a physical host",
  		LongDesc:  "Edits a physical host in the database.\n\nExample edit the state of a host:\ncrimson edit-host -name server01-y0 -state test -desc 'testing for labs'",
  		CommandRun: func() subcommands.CommandRun {
  			cmd := &EditPhysicalHostCmd{}
  			cmd.Initialize(params)
  			cmd.Flags.StringVar(&cmd.host.Name, "name", "", "The name of this host on the network. Required and must be the name of a host returned by get-hosts.")
  			cmd.Flags.StringVar(&cmd.host.Machine, "machine", "", "The machine backing this host. Must be the name of a machine returned by get-machines.")
  			cmd.Flags.StringVar(&cmd.host.Os, "os", "", "The operating system this host is running. Must be the name of an operating system returned by get-oses.")
  			cmd.Flags.Var(StateFlag(&cmd.host.State), "state", "The state of this host. Must be a state returned by get-states.")
  			cmd.Flags.Var(flag.Int32(&cmd.host.VmSlots), "slots", "The number of VMs which can be deployed on this host.")
  			cmd.Flags.StringVar(&cmd.host.VirtualDatacenter, "vdc", "", "The virtual datacenter VMs deployed on this host will belong to.")
  			cmd.Flags.StringVar(&cmd.host.Description, "desc", "", "A description of this host.")
  			cmd.Flags.StringVar(&cmd.host.DeploymentTicket, "tick", "", "The deployment ticket associated with this host.")
  			return cmd
  		},
  	}
  }
docs: // editPhysicalHostCmd returns a command to edit a physical host.