package types

type CloudProviderType string

const (
	AWS      CloudProviderType = "aws"
	GCP      CloudProviderType = "gcp"
	Azure    CloudProviderType = "azure"
	AliCloud CloudProviderType = "alicloud"
)

var CloudProviderTypes []CloudProviderType = []CloudProviderType{AWS, GCP, Azure}

type CloudProvider interface {
	GetCloudProviderType() CloudProviderType
	GetAuthConfigPath(homeDir string) string
	GetAuthConfigSubPath() []string
	GetAuthConfigYaml(name string, accounts []Account) string
	WriteToLocal(homeDir string, accounts []Account) error
	CreateK8s(k8s *K8s) error
	DestroyK8s(k8s *K8s) error
	GetKubeConfig(k8s *K8s) (string, error)
}
