//go:generate ${GOBIN}/mockgen -destination secret_source_mock.go -package=secret ${GO_MODULE}/infra/secret SecretSource
package secret

import (
	"context"
	"fmt"

	"github.com/tidbcloud/aisupport/packages/sdk-go/infra/config"
)

type SecretSource interface {
	GetSecretValue(ctx context.Context, name string) (string, error)
}

func NewSecretSource(conf config.Secret) (SecretSource, error) {
	if conf.AWSASM != nil {
		return NewAWSASMSecretSource(*conf.AWSASM)
	}

	return nil, fmt.Errorf("no supported secret source")
}
