package cloud

type ContainerCreateParameter interface {
	ContainerCreateParam()
}
type ContainerGetParameter interface {
	ContainerGetParam()
}
type ContainerDeleteParameter interface {
	ContainerDeleteParam()
}
type CreateParam struct {
	ClusterId          string   `json:"clusterId,omitempty"`
	ContainerGroupName string   `json:"containerGroupName"`
	Description        string   `json:"description,omitempty"`
	UserId             int64    `json:"userId"`
	Name               string   `json:"name"`
	Image              string   `json:"image"`
	Cpu                string   `json:"cpu,omitempty"`
	Memory             string   `json:"memory,omitempty"`
	Port               int32    `json:"port,omitempty"`
	NodePort           int32    `json:"nodePort,omitempty"`
	MountPath          string   `json:"mountPath,omitempty"`
	Args               []string `json:"args,omitempty"`
	Envs               []struct {
		Name  string `json:"name,omitempty"`
		Value string `json:"value,omitempty"`
	} `json:"envs,omitempty"`
	ContainerCreateParameter ContainerCreateParameter `json:"containerCreateParameter,omitempty"`
}

type K8sCreateParam struct {
}

type EciCreateParam struct {
}

func (k K8sCreateParam) ContainerCreateParam() {
}

func (e EciCreateParam) ContainerCreateParam() {
}

// 删除容器参数
type DeleteParam struct {
	ClusterId                string                   `json:"clusterId,omitempty"`
	Name                     string                   `json:"name,omitempty"`
	ContainerDeleteParameter ContainerDeleteParameter `json:"containerDeleteParameter,omitempty"`
}

func (k K8sDeleteParam) ContainerDeleteParameter() {
}
func (e EciDeleteParam) ContainerDeleteParameter() {
}

type K8sDeleteParam struct {
}

type EciDeleteParam struct {
	RegionId         string `json:"regionId,omitempty"`
	ContainerGroupId string `json:"containerGroupId,omitempty"`
}

// 获取容器信息
type GetParam struct {
	TaskId       string                `json:"taskId"`
	ClusterId    string                `json:"clusterId,omitempty"`
	Name         string                `json:"name,omitempty"`
	GetParameter ContainerGetParameter `json:"getParameter,omitempty"`
}

func (g K8sGetParam) ContainerGetParam() {
}
func (g EciGetParam) ContainerGetParam() {
}

type K8sGetParam struct {
}

type EciGetParam struct {
	RegionId           string `json:"regionId,omitempty"`
	ContainerGroupName string `json:"containerGroupName,omitempty"`
}
