You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: node.go
    path of file: ./repos/grafana/pkg/expr/ml
    
    the code of the file until where you have to start completion: package ml

import (
	"fmt"
	"strings"
	"time"

	"github.com/grafana/grafana-plugin-sdk-go/backend"
	jsoniter "github.com/json-iterator/go"

	"github.com/grafana/grafana/pkg/api/response"
)

var json = jsoniter.ConfigCompatibleWithStandardLibrary

type CommandType string

const (
	Outlier CommandType = "outlier"

	// format of the time used by outlier API
	timeFormat = "20
    
func UnmarshalCommand(query []byte, appURL string) (Command, error) {
	var expr CommandConfiguration
	err := json.Unmarshal(query, &expr)
	if err != nil {
		return nil, fmt.Errorf("failed to unmarshal Machine learning command: %w", err)
	}
	if len(expr.Type) == 0 {
		return nil, fmt.Errorf("required field 'type' is not specified or empty.  Should be one of [%s]", Outlier)
	}

	if len(expr.Config) == 0 {
		return nil, fmt.Errorf("required field 'config' is not specified")
	}

	var cmd Command
	switch mlType := strings.ToLower(expr.Type); mlType {
	case string(Outlier):
		cmd, err = unmarshalOutlierCommand(expr, appURL)
	default:
		return nil, fmt.Errorf("unsupported command type. Should be one of [%s]", Outlier)
	}
	if err != nil {
		return nil, fmt.Errorf("failed to unmarshal Machine learning %s command: %w", expr.Type, err)
	}
	return cmd, nil
}