package config

import (
	storagev1 "k8s.io/api/storage/v1"

	cloudv1 "github.com/tidbcloud/infra-api/api/v1"
)

// CloudConfigProvider abstracts common configurations for cloud provider
// It's a superset for gitops.Provider in github.com/tidbcloud/infra-provider/pkg/gitops
type CloudConfigProvider interface {
	GetProviderType() string
	GetInstanceTypes() ([]cloudv1.InstanceType, error)
	GetStorageClasses() ([]*storagev1.StorageClass, error)
	FindInstanceType(name string) (cloudv1.InstanceType, error)
	FindRegionZones(region string) ([]string, error)
}
