package provider_conf import ( "encoding/json" "github.com/go-acme/lego/v4/challenge" "github.com/go-acme/lego/v4/providers/dns/cloudflare" ) type Cloudflare struct { AuthApiToken string `json:"dnsApiToken"` ZoneApiToken string `json:"zoneApiToken"` } func (c Cloudflare) ToProvider(confStr string) (challenge.Provider, error) { var conf Cloudflare err := json.Unmarshal([]byte(confStr), &conf) if err != nil { panic(err) } dnsConf := cloudflare.NewDefaultConfig() dnsConf.AuthToken = conf.AuthApiToken dnsConf.ZoneToken = conf.ZoneApiToken provider, err := cloudflare.NewDNSProviderConfig(dnsConf) return provider, err }