Aliases: []string{"resize"},
	Short:   "Upgrade an instance",
	Example: "civo instance upgrade --size g1.medium [name or ID]",
	Long:    `Upgrade the CPU, RAM and SSD disk for an instance with the specifed name or partial/full ID`,
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) < 1 {
			fmt.Println("You need to specify a name or a partial/whole ID")
			os.Exit(-1)
		}
		if instanceUpgradeSize == "" {
			fmt.Println("You need to specify a size with --size to specify the new size")
			os.Exit(-3)
		}

		search := args[0]
		id := api.InstanceFind(search)
		if id == "" {
			fmt.Println("Couldn't find a single instance based on that name or partial/whole ID, it must match exactly one instance")
			os.Exit(-1)
		}

		_, err := api.InstanceUpgrade(id, instanceUpgradeSize)
		if err != nil {
			errorColor := color.New(color.FgRed, color.Bold).SprintFunc()
			fmt.Println(errorColor("An error occured:"), err.Error())
			return
		}
		fmt.Printf("Resizing instance with ID %s to %s\n", id, instanceUpgradeSize)
	},
}
	Use:     "create",
	Aliases: []string{"new", "backup"},
	Short:   "Create a new snapshot",
	Example: "civo snapshot create --name my-backup --instance my-host.example.com",
	Long:    `Create a new snapshot of the specified instance with the given name`,
	Run: func(cmd *cobra.Command, args []string) {
		if snapshotCreateName == "" && len(args) > 0 {
			snapshotCreateName = args[0]
		}
		if snapshotCreateInstanceID == "" && snapshotCreateName != "" && len(args) > 0 {
			snapshotCreateInstanceID = args[0]
		} else if len(args) > 1 {
			snapshotCreateInstanceID = args[1]
		}

		instanceID := api.InstanceFind(snapshotCreateInstanceID)
		if instanceID == "" {
			fmt.Println("Couldn't find a single instance based on that name or partial/whole ID, it must match exactly one instance")
			os.Exit(-1)
		}

		_, err := api.SnapshotCreate(snapshotCreateName, instanceID, snapshotCreateSafe)
		if err != nil {
			errorColor := color.New(color.FgRed, color.Bold).SprintFunc()
			fmt.Println(errorColor("An error occured:"), err.Error())
			return
		}
		fmt.Printf("Creating a snapshot of `%s` with name '%s'\n", instanceID, snapshotCreateName)
	},
}