lego/providers/dns/dns_providers.go

424 lines
14 KiB
Go
Raw Normal View History

2019-03-11 16:56:48 +00:00
package dns
import (
"fmt"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/challenge"
"github.com/go-acme/lego/v4/challenge/dns01"
"github.com/go-acme/lego/v4/providers/dns/acmedns"
"github.com/go-acme/lego/v4/providers/dns/alidns"
2021-06-30 20:49:02 +00:00
"github.com/go-acme/lego/v4/providers/dns/allinkl"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/arvancloud"
"github.com/go-acme/lego/v4/providers/dns/auroradns"
"github.com/go-acme/lego/v4/providers/dns/autodns"
"github.com/go-acme/lego/v4/providers/dns/azure"
"github.com/go-acme/lego/v4/providers/dns/azuredns"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/bindman"
"github.com/go-acme/lego/v4/providers/dns/bluecat"
"github.com/go-acme/lego/v4/providers/dns/brandit"
"github.com/go-acme/lego/v4/providers/dns/bunny"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/checkdomain"
2022-09-09 12:33:24 +00:00
"github.com/go-acme/lego/v4/providers/dns/civo"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/clouddns"
"github.com/go-acme/lego/v4/providers/dns/cloudflare"
"github.com/go-acme/lego/v4/providers/dns/cloudns"
2023-07-27 11:09:39 +00:00
"github.com/go-acme/lego/v4/providers/dns/cloudru"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/cloudxns"
"github.com/go-acme/lego/v4/providers/dns/conoha"
"github.com/go-acme/lego/v4/providers/dns/constellix"
"github.com/go-acme/lego/v4/providers/dns/cpanel"
"github.com/go-acme/lego/v4/providers/dns/derak"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/desec"
"github.com/go-acme/lego/v4/providers/dns/designate"
"github.com/go-acme/lego/v4/providers/dns/digitalocean"
"github.com/go-acme/lego/v4/providers/dns/directadmin"
"github.com/go-acme/lego/v4/providers/dns/dnshomede"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/dnsimple"
"github.com/go-acme/lego/v4/providers/dns/dnsmadeeasy"
"github.com/go-acme/lego/v4/providers/dns/dnspod"
"github.com/go-acme/lego/v4/providers/dns/dode"
2021-02-08 19:13:21 +00:00
"github.com/go-acme/lego/v4/providers/dns/domeneshop"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/dreamhost"
"github.com/go-acme/lego/v4/providers/dns/duckdns"
"github.com/go-acme/lego/v4/providers/dns/dyn"
"github.com/go-acme/lego/v4/providers/dns/dynu"
"github.com/go-acme/lego/v4/providers/dns/easydns"
"github.com/go-acme/lego/v4/providers/dns/edgedns"
"github.com/go-acme/lego/v4/providers/dns/efficientip"
2021-09-29 18:40:35 +00:00
"github.com/go-acme/lego/v4/providers/dns/epik"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/exec"
"github.com/go-acme/lego/v4/providers/dns/exoscale"
"github.com/go-acme/lego/v4/providers/dns/freemyip"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/gandi"
"github.com/go-acme/lego/v4/providers/dns/gandiv5"
"github.com/go-acme/lego/v4/providers/dns/gcloud"
"github.com/go-acme/lego/v4/providers/dns/gcore"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/glesys"
"github.com/go-acme/lego/v4/providers/dns/godaddy"
"github.com/go-acme/lego/v4/providers/dns/googledomains"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/hetzner"
"github.com/go-acme/lego/v4/providers/dns/hostingde"
2021-07-09 20:50:19 +00:00
"github.com/go-acme/lego/v4/providers/dns/hosttech"
"github.com/go-acme/lego/v4/providers/dns/httpnet"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/httpreq"
"github.com/go-acme/lego/v4/providers/dns/huaweicloud"
"github.com/go-acme/lego/v4/providers/dns/hurricane"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/hyperone"
"github.com/go-acme/lego/v4/providers/dns/ibmcloud"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/iij"
"github.com/go-acme/lego/v4/providers/dns/iijdpf"
2021-05-29 19:18:15 +00:00
"github.com/go-acme/lego/v4/providers/dns/infoblox"
"github.com/go-acme/lego/v4/providers/dns/infomaniak"
"github.com/go-acme/lego/v4/providers/dns/internetbs"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/inwx"
2021-01-14 19:42:12 +00:00
"github.com/go-acme/lego/v4/providers/dns/ionos"
"github.com/go-acme/lego/v4/providers/dns/ipv64"
"github.com/go-acme/lego/v4/providers/dns/iwantmyname"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/joker"
2022-11-26 02:06:08 +00:00
"github.com/go-acme/lego/v4/providers/dns/liara"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/lightsail"
2024-08-29 23:20:44 +00:00
"github.com/go-acme/lego/v4/providers/dns/limacity"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/linode"
"github.com/go-acme/lego/v4/providers/dns/liquidweb"
2020-12-26 16:22:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/loopia"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/luadns"
"github.com/go-acme/lego/v4/providers/dns/mailinabox"
"github.com/go-acme/lego/v4/providers/dns/metaname"
2024-08-29 19:07:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/mijnhost"
2024-08-30 17:46:02 +00:00
"github.com/go-acme/lego/v4/providers/dns/mittwald"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/mydnsjp"
"github.com/go-acme/lego/v4/providers/dns/mythicbeasts"
"github.com/go-acme/lego/v4/providers/dns/namecheap"
"github.com/go-acme/lego/v4/providers/dns/namedotcom"
"github.com/go-acme/lego/v4/providers/dns/namesilo"
"github.com/go-acme/lego/v4/providers/dns/nearlyfreespeech"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/netcup"
"github.com/go-acme/lego/v4/providers/dns/netlify"
"github.com/go-acme/lego/v4/providers/dns/nicmanager"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/nifcloud"
2021-02-19 20:23:48 +00:00
"github.com/go-acme/lego/v4/providers/dns/njalla"
2023-02-27 00:11:03 +00:00
"github.com/go-acme/lego/v4/providers/dns/nodion"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/ns1"
"github.com/go-acme/lego/v4/providers/dns/oraclecloud"
"github.com/go-acme/lego/v4/providers/dns/otc"
"github.com/go-acme/lego/v4/providers/dns/ovh"
"github.com/go-acme/lego/v4/providers/dns/pdns"
2023-02-26 23:53:57 +00:00
"github.com/go-acme/lego/v4/providers/dns/plesk"
2021-05-02 11:41:02 +00:00
"github.com/go-acme/lego/v4/providers/dns/porkbun"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/rackspace"
"github.com/go-acme/lego/v4/providers/dns/rcodezero"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/regru"
"github.com/go-acme/lego/v4/providers/dns/rfc2136"
"github.com/go-acme/lego/v4/providers/dns/rimuhosting"
"github.com/go-acme/lego/v4/providers/dns/route53"
"github.com/go-acme/lego/v4/providers/dns/safedns"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/sakuracloud"
"github.com/go-acme/lego/v4/providers/dns/scaleway"
"github.com/go-acme/lego/v4/providers/dns/selectel"
"github.com/go-acme/lego/v4/providers/dns/selectelv2"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/servercow"
2024-03-08 16:49:57 +00:00
"github.com/go-acme/lego/v4/providers/dns/shellrent"
"github.com/go-acme/lego/v4/providers/dns/simply"
2021-04-25 09:37:35 +00:00
"github.com/go-acme/lego/v4/providers/dns/sonic"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/stackpath"
"github.com/go-acme/lego/v4/providers/dns/tencentcloud"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/transip"
"github.com/go-acme/lego/v4/providers/dns/ultradns"
"github.com/go-acme/lego/v4/providers/dns/variomedia"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/vegadns"
"github.com/go-acme/lego/v4/providers/dns/vercel"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/versio"
2021-04-10 14:18:48 +00:00
"github.com/go-acme/lego/v4/providers/dns/vinyldns"
"github.com/go-acme/lego/v4/providers/dns/vkcloud"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/vscale"
"github.com/go-acme/lego/v4/providers/dns/vultr"
"github.com/go-acme/lego/v4/providers/dns/webnames"
"github.com/go-acme/lego/v4/providers/dns/websupport"
"github.com/go-acme/lego/v4/providers/dns/wedos"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/yandex"
"github.com/go-acme/lego/v4/providers/dns/yandex360"
"github.com/go-acme/lego/v4/providers/dns/yandexcloud"
2020-09-02 01:20:01 +00:00
"github.com/go-acme/lego/v4/providers/dns/zoneee"
"github.com/go-acme/lego/v4/providers/dns/zonomi"
)
2020-05-08 17:35:25 +00:00
// NewDNSChallengeProviderByName Factory for DNS providers.
func NewDNSChallengeProviderByName(name string) (challenge.Provider, error) {
switch name {
2023-05-05 07:49:38 +00:00
case "acme-dns": // TODO(ldez): remove "-" in v5
return acmedns.NewDNSProvider()
2018-09-08 13:17:23 +00:00
case "alidns":
return alidns.NewDNSProvider()
2021-06-30 20:49:02 +00:00
case "allinkl":
return allinkl.NewDNSProvider()
case "arvancloud":
return arvancloud.NewDNSProvider()
case "azure":
return azure.NewDNSProvider()
case "azuredns":
return azuredns.NewDNSProvider()
case "auroradns":
return auroradns.NewDNSProvider()
2019-11-01 10:20:34 +00:00
case "autodns":
return autodns.NewDNSProvider()
case "bindman":
return bindman.NewDNSProvider()
2018-04-03 02:50:15 +00:00
case "bluecat":
return bluecat.NewDNSProvider()
case "brandit":
return brandit.NewDNSProvider()
case "bunny":
return bunny.NewDNSProvider()
case "checkdomain":
return checkdomain.NewDNSProvider()
2022-09-09 12:33:24 +00:00
case "civo":
return civo.NewDNSProvider()
2020-04-24 01:13:25 +00:00
case "clouddns":
return clouddns.NewDNSProvider()
case "cloudflare":
return cloudflare.NewDNSProvider()
case "cloudns":
return cloudns.NewDNSProvider()
2023-07-27 11:09:39 +00:00
case "cloudru":
return cloudru.NewDNSProvider()
case "cloudxns":
return cloudxns.NewDNSProvider()
2018-11-02 01:30:09 +00:00
case "conoha":
return conoha.NewDNSProvider()
case "constellix":
return constellix.NewDNSProvider()
case "cpanel":
return cpanel.NewDNSProvider()
case "derak":
return derak.NewDNSProvider()
2020-05-06 23:27:35 +00:00
case "desec":
return desec.NewDNSProvider()
case "designate":
return designate.NewDNSProvider()
case "digitalocean":
return digitalocean.NewDNSProvider()
case "directadmin":
return directadmin.NewDNSProvider()
case "dnshomede":
return dnshomede.NewDNSProvider()
case "dnsimple":
return dnsimple.NewDNSProvider()
case "dnsmadeeasy":
return dnsmadeeasy.NewDNSProvider()
case "dnspod":
return dnspod.NewDNSProvider()
case "dode":
return dode.NewDNSProvider()
2021-02-08 19:13:21 +00:00
case "domeneshop", "domainnameshop":
return domeneshop.NewDNSProvider()
case "dreamhost":
return dreamhost.NewDNSProvider()
case "duckdns":
return duckdns.NewDNSProvider()
case "dyn":
return dyn.NewDNSProvider()
2020-03-10 11:31:33 +00:00
case "dynu":
return dynu.NewDNSProvider()
2019-04-29 00:03:04 +00:00
case "easydns":
return easydns.NewDNSProvider()
2020-09-02 00:56:43 +00:00
case "edgedns", "fastdns": // "fastdns" is for compatibility with v3, must be dropped in v5
return edgedns.NewDNSProvider()
case "efficientip":
return efficientip.NewDNSProvider()
2021-09-29 18:40:35 +00:00
case "epik":
return epik.NewDNSProvider()
case "exec":
return exec.NewDNSProvider()
case "exoscale":
return exoscale.NewDNSProvider()
case "freemyip":
return freemyip.NewDNSProvider()
case "gandi":
return gandi.NewDNSProvider()
case "gandiv5":
return gandiv5.NewDNSProvider()
case "gcloud":
return gcloud.NewDNSProvider()
case "gcore":
return gcore.NewDNSProvider()
case "glesys":
return glesys.NewDNSProvider()
case "godaddy":
return godaddy.NewDNSProvider()
case "googledomains":
return googledomains.NewDNSProvider()
2020-05-08 12:26:30 +00:00
case "hetzner":
return hetzner.NewDNSProvider()
2018-09-15 21:25:14 +00:00
case "hostingde":
return hostingde.NewDNSProvider()
2021-07-09 20:50:19 +00:00
case "hosttech":
return hosttech.NewDNSProvider()
case "httpnet":
return httpnet.NewDNSProvider()
2018-11-09 00:53:21 +00:00
case "httpreq":
return httpreq.NewDNSProvider()
case "huaweicloud":
return huaweicloud.NewDNSProvider()
case "hurricane":
return hurricane.NewDNSProvider()
2020-08-24 21:50:52 +00:00
case "hyperone":
return hyperone.NewDNSProvider()
case "ibmcloud":
return ibmcloud.NewDNSProvider()
2018-09-08 10:52:36 +00:00
case "iij":
return iij.NewDNSProvider()
case "iijdpf":
return iijdpf.NewDNSProvider()
2021-05-29 19:18:15 +00:00
case "infoblox":
return infoblox.NewDNSProvider()
case "infomaniak":
return infomaniak.NewDNSProvider()
case "internetbs":
return internetbs.NewDNSProvider()
2018-11-06 10:49:50 +00:00
case "inwx":
return inwx.NewDNSProvider()
2021-01-14 19:42:12 +00:00
case "ionos":
return ionos.NewDNSProvider()
case "ipv64":
return ipv64.NewDNSProvider()
case "iwantmyname":
return iwantmyname.NewDNSProvider()
2019-04-28 12:33:50 +00:00
case "joker":
return joker.NewDNSProvider()
2022-11-26 02:06:08 +00:00
case "liara":
return liara.NewDNSProvider()
case "lightsail":
return lightsail.NewDNSProvider()
2024-08-29 23:20:44 +00:00
case "limacity":
return limacity.NewDNSProvider()
2020-09-02 00:51:04 +00:00
case "linode", "linodev4": // "linodev4" is for compatibility with v3, must be dropped in v5
return linode.NewDNSProvider()
2019-08-19 19:41:10 +00:00
case "liquidweb":
return liquidweb.NewDNSProvider()
2020-12-26 16:22:01 +00:00
case "loopia":
return loopia.NewDNSProvider()
case "luadns":
return luadns.NewDNSProvider()
case "mailinabox":
return mailinabox.NewDNSProvider()
case "manual":
return dns01.NewDNSProviderManual()
case "metaname":
return metaname.NewDNSProvider()
2024-08-29 19:07:01 +00:00
case "mijnhost":
return mijnhost.NewDNSProvider()
2024-08-30 17:46:02 +00:00
case "mittwald":
return mittwald.NewDNSProvider()
2018-11-04 14:37:29 +00:00
case "mydnsjp":
return mydnsjp.NewDNSProvider()
case "mythicbeasts":
return mythicbeasts.NewDNSProvider()
case "namecheap":
return namecheap.NewDNSProvider()
case "namedotcom":
return namedotcom.NewDNSProvider()
2019-07-05 01:38:43 +00:00
case "namesilo":
return namesilo.NewDNSProvider()
case "nearlyfreespeech":
return nearlyfreespeech.NewDNSProvider()
2018-09-08 12:08:07 +00:00
case "netcup":
return netcup.NewDNSProvider()
2020-05-08 10:26:44 +00:00
case "netlify":
return netlify.NewDNSProvider()
case "nicmanager":
return nicmanager.NewDNSProvider()
case "nifcloud":
return nifcloud.NewDNSProvider()
2021-02-19 20:23:48 +00:00
case "njalla":
return njalla.NewDNSProvider()
2023-02-27 00:11:03 +00:00
case "nodion":
return nodion.NewDNSProvider()
case "ns1":
return ns1.NewDNSProvider()
case "oraclecloud":
return oraclecloud.NewDNSProvider()
case "otc":
return otc.NewDNSProvider()
case "ovh":
return ovh.NewDNSProvider()
case "pdns":
return pdns.NewDNSProvider()
2023-02-26 23:53:57 +00:00
case "plesk":
return plesk.NewDNSProvider()
2021-05-02 11:41:02 +00:00
case "porkbun":
return porkbun.NewDNSProvider()
case "rackspace":
return rackspace.NewDNSProvider()
case "rcodezero":
return rcodezero.NewDNSProvider()
2020-03-10 10:08:32 +00:00
case "regru":
return regru.NewDNSProvider()
case "rfc2136":
return rfc2136.NewDNSProvider()
case "rimuhosting":
return rimuhosting.NewDNSProvider()
case "route53":
return route53.NewDNSProvider()
case "safedns":
return safedns.NewDNSProvider()
case "sakuracloud":
return sakuracloud.NewDNSProvider()
2020-01-23 14:51:47 +00:00
case "scaleway":
return scaleway.NewDNSProvider()
2018-11-04 01:36:04 +00:00
case "selectel":
return selectel.NewDNSProvider()
case "selectelv2":
return selectelv2.NewDNSProvider()
case "servercow":
return servercow.NewDNSProvider()
2024-03-08 16:49:57 +00:00
case "shellrent":
return shellrent.NewDNSProvider()
case "simply":
return simply.NewDNSProvider()
2021-04-25 09:37:35 +00:00
case "sonic":
return sonic.NewDNSProvider()
2020-01-23 14:51:47 +00:00
case "stackpath":
return stackpath.NewDNSProvider()
case "tencentcloud":
return tencentcloud.NewDNSProvider()
2018-11-06 10:56:28 +00:00
case "transip":
return transip.NewDNSProvider()
case "ultradns":
return ultradns.NewDNSProvider()
case "variomedia":
return variomedia.NewDNSProvider()
2018-06-30 23:45:24 +00:00
case "vegadns":
return vegadns.NewDNSProvider()
case "vercel":
return vercel.NewDNSProvider()
2019-06-27 17:30:10 +00:00
case "versio":
return versio.NewDNSProvider()
2021-04-10 14:18:48 +00:00
case "vinyldns":
return vinyldns.NewDNSProvider()
case "vkcloud":
return vkcloud.NewDNSProvider()
2018-11-08 09:31:42 +00:00
case "vscale":
return vscale.NewDNSProvider()
case "vultr":
return vultr.NewDNSProvider()
case "webnames":
return webnames.NewDNSProvider()
case "websupport":
return websupport.NewDNSProvider()
case "wedos":
return wedos.NewDNSProvider()
2020-04-27 17:58:18 +00:00
case "yandex":
return yandex.NewDNSProvider()
case "yandex360":
return yandex360.NewDNSProvider()
case "yandexcloud":
return yandexcloud.NewDNSProvider()
case "zoneee":
return zoneee.NewDNSProvider()
case "zonomi":
return zonomi.NewDNSProvider()
default:
2019-06-27 17:30:10 +00:00
return nil, fmt.Errorf("unrecognized DNS provider: %s", name)
}
}