package tidbcloud

import validation "github.com/Thearas/ozzo-validation/v4"

type TiDBCloudConfiguration struct {
	TiDBCloudURL      string `yaml:"tidbCloudURL"`
	ThanosURL         string `yaml:"-"`
	Auth0ClientID     string `yaml:"-"`
	Auth0ClientSecret string `yaml:"-"`
	Auth0Domain       string `yaml:"-"`
	CloudProvider     string `yaml:"-"`
	Region            string `yaml:"region"`

	BaseEKSAPIServerEndpoint string `yaml:"-"`
	BaseEKSAssumeRole        string `yaml:"-"`
	BaseEKSClusterName       string `yaml:"-"`
	ShootKubeConfigSecretNS  string `yaml:"-"`
}

func (t TiDBCloudConfiguration) Validate() error {
	if t.Auth0ClientID == "" {
		return nil
	}
	return validation.ValidateStruct(&t,
		validation.Field(&t.TiDBCloudURL, validation.Required),
		validation.Field(&t.ThanosURL, validation.Required),
		validation.Field(&t.Auth0ClientID, validation.Required),
		validation.Field(&t.Auth0ClientSecret, validation.Required),
		validation.Field(&t.Auth0Domain, validation.Required),
		validation.Field(&t.CloudProvider, validation.Required),
		validation.Field(&t.Region, validation.Required),
	)
}
