code: func getVMSlotsCmd(params *Parameters) *subcommands.Command {
  	return &subcommands.Command{
  		UsageLine: "get-slots -n <slots> [-man <manufacturer>]... [-vdc <virtual datacenter>]... [-state <state>]...",
  		ShortDesc: "retrieves available VM slots",
  		LongDesc:  "Retrieves available VM slots.\n\nExample to get 5 free VM slots on Apple hardware:\ncrimson get-slots -n 5 -man apple",
  		CommandRun: func() subcommands.CommandRun {
  			cmd := &GetVMSlotsCmd{}
  			cmd.Initialize(params)
  			cmd.Flags.Var(flag.Int32(&cmd.req.Slots), "n", "The number of available VM slots to get.")
  			cmd.Flags.Var(flag.StringSlice(&cmd.req.Manufacturers), "man", "Manufacturer to filter by. Can be specified multiple times.")
  			cmd.Flags.Var(flag.StringSlice(&cmd.req.VirtualDatacenters), "vdc", "Virtual datacenter to filter by. Can be specified multiple times.")
  			cmd.Flags.Var(StateSliceFlag(&cmd.req.States), "state", "State to filter by. Can be specified multiple times.")
  			return cmd
  		},
  	}
  }
docs: // getVMSlotsCmd returns a command to get available VM slots.