package dns import ( "fmt" "github.com/xenolf/lego/acme" "github.com/xenolf/lego/providers/dns/auroradns" "github.com/xenolf/lego/providers/dns/azure" "github.com/xenolf/lego/providers/dns/bluecat" "github.com/xenolf/lego/providers/dns/cloudflare" "github.com/xenolf/lego/providers/dns/cloudxns" "github.com/xenolf/lego/providers/dns/digitalocean" "github.com/xenolf/lego/providers/dns/dnsimple" "github.com/xenolf/lego/providers/dns/dnsmadeeasy" "github.com/xenolf/lego/providers/dns/dnspod" "github.com/xenolf/lego/providers/dns/duckdns" "github.com/xenolf/lego/providers/dns/dyn" "github.com/xenolf/lego/providers/dns/exec" "github.com/xenolf/lego/providers/dns/exoscale" "github.com/xenolf/lego/providers/dns/fastdns" "github.com/xenolf/lego/providers/dns/gandi" "github.com/xenolf/lego/providers/dns/gandiv5" "github.com/xenolf/lego/providers/dns/gcloud" "github.com/xenolf/lego/providers/dns/glesys" "github.com/xenolf/lego/providers/dns/godaddy" "github.com/xenolf/lego/providers/dns/lightsail" "github.com/xenolf/lego/providers/dns/linode" "github.com/xenolf/lego/providers/dns/namecheap" "github.com/xenolf/lego/providers/dns/namedotcom" "github.com/xenolf/lego/providers/dns/ns1" "github.com/xenolf/lego/providers/dns/otc" "github.com/xenolf/lego/providers/dns/ovh" "github.com/xenolf/lego/providers/dns/pdns" "github.com/xenolf/lego/providers/dns/rackspace" "github.com/xenolf/lego/providers/dns/rfc2136" "github.com/xenolf/lego/providers/dns/route53" "github.com/xenolf/lego/providers/dns/sakuracloud" "github.com/xenolf/lego/providers/dns/vultr" ) // NewDNSChallengeProviderByName Factory for DNS providers func NewDNSChallengeProviderByName(name string) (acme.ChallengeProvider, error) { switch name { case "azure": return azure.NewDNSProvider() case "auroradns": return auroradns.NewDNSProvider() case "bluecat": return bluecat.NewDNSProvider() case "cloudflare": return cloudflare.NewDNSProvider() case "cloudxns": return cloudxns.NewDNSProvider() case "digitalocean": return digitalocean.NewDNSProvider() case "dnsimple": return dnsimple.NewDNSProvider() case "dnsmadeeasy": return dnsmadeeasy.NewDNSProvider() case "dnspod": return dnspod.NewDNSProvider() case "duckdns": return duckdns.NewDNSProvider() case "dyn": return dyn.NewDNSProvider() case "fastdns": return fastdns.NewDNSProvider() case "exoscale": return exoscale.NewDNSProvider() case "gandi": return gandi.NewDNSProvider() case "gandiv5": return gandiv5.NewDNSProvider() case "glesys": return glesys.NewDNSProvider() case "gcloud": return gcloud.NewDNSProvider() case "godaddy": return godaddy.NewDNSProvider() case "lightsail": return lightsail.NewDNSProvider() case "linode": return linode.NewDNSProvider() case "manual": return acme.NewDNSProviderManual() case "namecheap": return namecheap.NewDNSProvider() case "namedotcom": return namedotcom.NewDNSProvider() case "rackspace": return rackspace.NewDNSProvider() case "route53": return route53.NewDNSProvider() case "rfc2136": return rfc2136.NewDNSProvider() case "sakuracloud": return sakuracloud.NewDNSProvider() case "vultr": return vultr.NewDNSProvider() case "ovh": return ovh.NewDNSProvider() case "pdns": return pdns.NewDNSProvider() case "ns1": return ns1.NewDNSProvider() case "otc": return otc.NewDNSProvider() case "exec": return exec.NewDNSProvider() default: return nil, fmt.Errorf("unrecognised DNS provider: %s", name) } }