public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH proxmox-acme 0/1] add all missing dns challenge schemas
@ 2025-09-22 13:38 n.frey
  2025-09-22 13:38 ` [pve-devel] [PATCH proxmox-acme 1/1] " n.frey
  0 siblings, 1 reply; 2+ messages in thread
From: n.frey @ 2025-09-22 13:38 UTC (permalink / raw)
  To: pve-devel

From: Nicolas Frey <n.frey@proxmox.com>

Added all missing DNS challenge schemas in accordance with acme.sh
dnsapi [0] wiki.

[0] https://github.com/acmesh-official/acme.sh/wiki/dnsapi

Nicolas Frey (1):
  add all missing dns challenge schemas

 src/dns-challenge-schema.json | 2077 +++++++++++++++++++++++++++++----
 1 file changed, 1864 insertions(+), 213 deletions(-)

-- 
2.47.3


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] [PATCH proxmox-acme 1/1] add all missing dns challenge schemas
  2025-09-22 13:38 [pve-devel] [PATCH proxmox-acme 0/1] add all missing dns challenge schemas n.frey
@ 2025-09-22 13:38 ` n.frey
  0 siblings, 0 replies; 2+ messages in thread
From: n.frey @ 2025-09-22 13:38 UTC (permalink / raw)
  To: pve-devel

From: Nicolas Frey <n.frey@proxmox.com>

Signed-off-by: Nicolas Frey <n.frey@proxmox.com>
---
 src/dns-challenge-schema.json | 2077 +++++++++++++++++++++++++++++----
 1 file changed, 1864 insertions(+), 213 deletions(-)

diff --git a/src/dns-challenge-schema.json b/src/dns-challenge-schema.json
index 8669c86..4d69e68 100644
--- a/src/dns-challenge-schema.json
+++ b/src/dns-challenge-schema.json
@@ -1,5 +1,17 @@
 {
-   "1984hosting": {},
+   "1984hosting": {
+      "fields": {
+         "One984HOSTING_Username": {
+            "description": "The 1984hosting user",
+            "type": "string"
+         },
+         "One984HOSTING_Password": {
+            "description": "The 1984hosting password",
+            "type": "string"
+         }
+      },
+      "name": "1984hosting"
+   },
    "acmedns": {
       "fields": {
          "ACMEDNS_BASE_URL": {
@@ -21,7 +33,23 @@
       },
       "name": "acme-dns"
    },
-   "acmeproxy": {},
+   "acmeproxy": {
+      "fields": {
+         "ACMEPROXY_ENDPOINT": {
+            "description": "The API update endpoint",
+            "type": "string"
+         },
+         "ACMEPROXY_USERNAME": {
+            "description": "The acmeproxy user",
+            "type": "string"
+         },
+         "ACMEPROXY_PASSWORD": {
+            "description": "The acmeproxy password",
+            "type": "string"
+         }
+      },
+      "name": "acmeproxy"
+   },
    "active24": {
       "fields": {
          "ACTIVE24_Token": {
@@ -59,10 +87,46 @@
       },
       "name": "Alibaba Cloud DNS"
    },
-   "alviy": {},
-   "anx": {},
-   "artfiles": {},
-   "arvan": {},
+   "alviy": {
+      "fields": {
+         "Alviy_token": {
+            "description": "The API token",
+            "type": "string"
+         }
+      },
+      "name": "alviy"
+   },
+   "anx": {
+      "fields": {
+         "ANX_Token": {
+            "description": "The API token",
+            "type": "string"
+         }
+      },
+      "name": "Anexia Cloud DNS"
+   },
+   "artfiles": {
+      "fields": {
+         "AF_API_USERNAME": {
+            "description": "The API user",
+            "type": "string"
+         },
+         "AF_API_PASSWORD": {
+            "description": "The API password",
+            "type": "string"
+         }
+      },
+      "name": "artfiles"
+   },
+   "arvan": {
+      "fields": {
+         "Arvan_Token": {
+            "description": "The API token",
+            "type": "string"
+         }
+      },
+      "name": "ArvanCloud"
+   },
    "aurora": {
       "fields": {
          "AURORA_Key": {
@@ -76,7 +140,23 @@
       },
       "name": "AuroraDNS"
    },
-   "autodns": {},
+   "autodns": {
+      "fields": {
+         "AUTODNS_USER": {
+            "description": "The autoDNS user",
+            "type": "string"
+         },
+         "AUTODNS_PASSWORD": {
+            "description": "The autoDNS password",
+            "type": "string"
+         },
+         "AUTODNS_CONTEXT": {
+            "description": "The autoDNS context",
+            "type": "string"
+         }
+      },
+      "name": "autoDNS (InternetX)"
+   },
    "aws": {
       "fields": {
          "AWS_ACCESS_KEY_ID": {
@@ -92,11 +172,82 @@
       },
       "name": "Amazon Route53 (AWS)"
    },
-   "azion": {},
-   "azure": {},
-   "beget": {},
-   "bookmyname": {},
-   "bunny": {},
+   "azion": {
+      "fields": {
+         "AZION_Email": {
+            "description": "The azion email",
+            "type": "string"
+         },
+         "AZION_Password": {
+            "description": "The azion password",
+            "type": "string"
+         }
+      },
+      "name": "Azion DNS"
+   },
+   "azure": {
+      "fields": {
+         "AZUREDNS_SUBSCRIPTIONID": {
+            "description": "The Azure subscription ID",
+            "type": "string"
+         },
+         "AZUREDNS_TENANTID": {
+            "description": "The Azure tenant ID",
+            "type": "string"
+         },
+         "AZUREDNS_APPID": {
+            "description": "The Azure app ID (Method1)",
+            "optional": 1,
+            "type": "string"
+         },
+         "AZUREDNS_CLIENTSECRET": {
+            "description": "The Azure client secret (Method1)",
+            "optional": 1,
+            "type": "string"
+         },
+         "AZUREDNS_BEARERTOKEN": {
+            "description": "The Azure bearer token (Method2)",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "Azure"
+   },
+   "beget": {
+      "fields": {
+         "Beget_Username": {
+            "description": "The beget user",
+            "type": "string"
+         },
+         "Beget_Password": {
+            "description": "The beget password",
+            "type": "string"
+         }
+      },
+      "name": "beget"
+   },
+   "bookmyname": {
+      "fields": {
+         "BOOKMYNAME_USERNAME": {
+            "description": "The bookmyname user",
+            "type": "string"
+         },
+         "BOOKMYNAME_PASSWORD": {
+            "description": "The bookmyname password",
+            "type": "string"
+         }
+      },
+      "name": "bookmyname"
+   },
+   "bunny": {
+      "fields": {
+         "BUNNY_API_KEY": {
+            "description": "The API key",
+            "type": "string"
+         }
+      },
+      "name": "bunny"
+   },
    "cf": {
       "description": "Either provide global account key and email, or CF API token and Account ID.",
       "fields": {
@@ -123,283 +274,1783 @@
       },
       "name": "Cloudflare Managed DNS"
    },
-   "clouddns": {},
-   "cloudns": {},
-   "cn": {},
-   "conoha": {},
-   "constellix": {},
-   "cpanel": {},
-   "curanet": {},
-   "cyon": {},
-   "da": {},
-   "ddnss": {},
-   "desec": {},
-   "df": {},
-   "dgon": {
+   "clouddns": {
       "fields": {
-         "DO_API_KEY": {
-            "description": "The DigitalOcean API Key",
+         "CLOUDDNS_EMAIL": {
+            "description": "The clouddns email",
+            "type": "string"
+         },
+         "CLOUDDNS_PASSWORD": {
+            "description": "The clouddns password",
+            "type": "string"
+         },
+         "CLOUDDNS_CLIENT_ID": {
+            "description": "The clouddns client ID",
             "type": "string"
          }
       },
-      "name": "DigitalOcean DNS"
+      "name": "clouddns"
    },
-   "dnsexit": {},
-   "dnshome": {},
-   "dnsimple": {},
-   "dnsservices": {},
-   "doapi": {},
-   "domeneshop": {},
-   "dp": {},
-   "dpi": {},
-   "dreamhost": {},
-   "duckdns": {},
-   "durabledns": {},
-   "dyn": {},
-   "dynu": {},
-   "dynv6": {},
-   "easydns": {},
-   "edgecenter": {},
-   "edgedns": {},
-   "euserv": {},
-   "exoscale": {},
-   "fornex": {},
-   "freedns": {},
-   "freemyip": {},
-   "gandi_livedns": {},
-   "gcloud": {},
-   "gcore": {},
-   "gd": {
+   "cloudns": {
       "fields": {
-         "GD_Key": {
-            "description": "The GoDaddy API Key",
+         "CLOUDNS_SUB_AUTH_ID": {
+            "description": "The clouDNS sub auth ID (recommended)",
+            "optional": 1,
             "type": "string"
          },
-         "GD_Secret": {
-            "description": "The GoDaddy API Secret",
+         "CLOUDNS_AUTH_ID": {
+            "description": "The clouDNS auth ID",
+            "optional": 1,
+            "type": "string"
+         },
+         "CLOUDNS_AUTH_PASSWORD": {
+            "description": "The clouDNS password",
             "type": "string"
          }
       },
-      "name": "GoDaddy"
+      "name": "clouDNS"
    },
-   "geoscaling": {},
-   "googledomains": {},
-   "he": {},
-   "he_ddns": {},
-   "hetzner": {},
-   "hexonet": {},
-   "hostingde": {},
-   "huaweicloud": {},
-   "infoblox": {},
-   "infomaniak": {},
-   "internetbs": {},
-   "inwx": {
+   "cn": {
       "fields": {
-         "INWX_Password": {
-            "description": "The INWX password",
+         "CN_User": {
+            "description": "The Core-Networks user",
             "type": "string"
          },
-         "INWX_Shared_Secret": {
-            "description": "The INWX shared secret",
+         "CN_Password": {
+            "description": "The Core-Networks password",
+            "type": "string"
+         }
+      },
+      "name": "Core-Networks"
+   },
+   "conoha": {
+      "fields": {
+         "CN_User": {
+            "CONOHA_Username": "The ConoHa user",
             "type": "string"
          },
-         "INWX_User": {
-            "description": "The INWX username",
+         "CONOHA_Password": {
+            "description": "The ConoHa password",
+            "type": "string"
+         },
+         "CONOHA_TenantId": {
+            "description": "The ConoHa tenant ID",
+            "type": "string"
+         },
+         "CONOHA_IdentityServiceApi": {
+            "description": "The ConoHa API endpoint",
             "type": "string"
          }
       },
-      "name": "INWX"
+      "name": "ConoHa"
    },
-   "ionos": {},
-   "ionos_cloud": {},
-   "ipv64": {},
-   "ispconfig": {},
-   "jd": {},
-   "joker": {},
-   "kappernet": {
+   "constellix": {
       "fields": {
-         "KAPPERNETDNS_Key": {
-            "description": "Your kapper.net API key",
+         "CONSTELLIX_Key": {
+            "description": "The API key",
             "type": "string"
          },
-         "KAPPERNETDNS_Secret": {
-            "description": "Your kapper.net API secret",
+         "CONSTELLIX_Secret": {
+            "description": "The API secret",
             "type": "string"
          }
       },
-      "name": "kapper.net"
+      "name": "constellix"
    },
-   "kas": {},
-   "kinghost": {},
-   "knot": {
+   "cpanel": {
       "fields": {
-         "KNOT_KEY": {
-            "description": "TSIG key (format alg:name:key)",
+         "cPanel_Username": {
+            "description": "The cpanel user",
             "type": "string"
          },
-         "KNOT_SERVER": {
-            "description": "Hostname of the RFC 2136 compatible nameserver",
+         "cPanel_Apitoken": {
+            "description": "The API token",
+            "type": "string"
+         },
+         "cPanel_Hostname": {
+            "description": "The cpanel URL",
             "type": "string"
          }
       },
-      "name": "Knot / knsupdate (RFC 2136)"
+      "name": "cpanel"
    },
-   "la": {},
-   "leaseweb": {},
-   "lexicon": {},
-   "limacity": {},
-   "linode": {},
-   "linode_v4": {},
-   "loopia": {},
-   "lua": {},
-   "maradns": {},
-   "me": {},
-   "miab": {},
-   "mijnhost": {},
-   "misaka": {},
-   "myapi": {},
-   "mydevil": {},
-   "mydnsjp": {},
-   "mythic_beasts": {},
-   "namecheap": {},
-   "namecom": {},
-   "namesilo": {},
-   "nanelo": {},
-   "nederhost": {},
-   "neodigit": {},
-   "netcup": {},
-   "netlify": {},
-   "nic": {},
-   "njalla": {},
-   "nm": {},
-   "nsd": {},
-   "nsone": {},
-   "nsupdate": {
+   "curanet": {
       "fields": {
-         "NSUPDATE_KEY": {
-            "description": "Path to the nsupdate key file (TSIG key)",
+         "CURANET_AUTHCLIENTID": {
+            "description": "The curanet client ID",
             "type": "string"
          },
-         "NSUPDATE_SERVER": {
-            "description": "Hostname of the RFC 2136 compatible nameserver",
+         "CURANET_AUTHSECRET": {
+            "description": "The curanet secret",
+            "type": "string"
+         }
+      },
+      "name": "curanet"
+   },
+   "cyon": {
+      "fields": {
+         "CY_Username": {
+            "description": "The cyon user",
             "type": "string"
          },
-         "NSUPDATE_ZONE": {
-            "description": "DNS zone name (optional)",
+         "CY_Password": {
+            "description": "The cyon password",
+            "type": "string"
+         },
+         "CY_OTP_Secret": {
+            "description": "The one time password secret (required if using 2FA)",
             "optional": 1,
             "type": "string"
          }
       },
-      "name": "nsupdate (RFC 2136)"
+      "name": "cyon"
    },
-   "nw": {},
-   "oci": {},
-   "omglol": {},
-   "one": {},
-   "online": {},
-   "openprovider": {},
-   "openstack": {},
-   "opnsense": {},
-   "ovh": {
+   "da": {
       "fields": {
-         "OVH_AK": {
-            "description": "The application key.",
+         "DA_Api": {
+            "description": "The DirectAdmin API endpoint",
             "type": "string"
          },
-         "OVH_AS": {
-            "description": "The application secret.",
+         "DA_Api_Insecure": {
+            "description": "Whether ssl cert is checked for validity (1 | 0)",
+            "type": "integer"
+         }
+      },
+      "name": "DirectAdmin"
+   },
+   "ddnss": {
+      "fields": {
+         "DDNSS_Token": {
+            "description": "The DDNSS API token",
             "type": "string"
-         },
-         "OVH_CK": {
-            "description": "The consumer key.",
-            "optional": 1,
+         }
+      },
+      "name": "DDNSS"
+   },
+   "desec": {
+      "fields": {
+         "DEDYN_TOKEN": {
+            "description": "The deSEC API token",
+            "type": "string"
+         }
+      },
+      "name": "deSEC"
+   },
+   "df": {
+      "fields": {
+         "DF_user": {
+            "description": "The dyndnsfree user",
             "type": "string"
          },
-         "OVH_END_POINT": {
-            "default": "ovh-eu",
-            "description": "The OVH endpoint",
-            "optional": 1,
+         "DF_password": {
+            "description": "The dyndnsfree password",
             "type": "string"
          }
       },
-      "name": "OVH"
+      "name": "dyndnsfree"
    },
-   "pdns": {
+   "dgon": {
       "fields": {
-         "PDNS_ServerId": {
+         "DO_API_KEY": {
+            "description": "The DigitalOcean API Key",
+            "type": "string"
+         }
+      },
+      "name": "DigitalOcean DNS"
+   },
+   "dnsexit": {
+      "fields": {
+         "DNSEXIT_API_KEY": {
+            "description": "The dnsexit API Key",
             "type": "string"
          },
-         "PDNS_Token": {
+         "DNSEXIT_AUTH_USER": {
+            "description": "The dnsexit user",
             "type": "string"
          },
-         "PDNS_Ttl": {
-            "type": "integer"
+         "DNSEXIT_AUTH_PASS": {
+            "description": "The dnsexit password",
+            "type": "string"
+         }
+      },
+      "name": "dnsexit"
+   },
+   "dnshome": {
+      "fields": {
+         "DNSHOME_Subdomain": {
+            "description": "The dnshome subdomain",
+            "type": "string"
          },
-         "PDNS_Url": {
-            "description": "The PowerDNS API endpoint.",
+         "DNSHOME_SubdomainPassword": {
+            "description": "The dnshome subdomain password",
             "type": "string"
          }
       },
-      "name": "PowerDNS server"
+      "name": "dnshome"
    },
-   "pleskxml": {},
-   "pointhq": {},
-   "porkbun": {
+   "dnsimple": {
       "fields": {
-         "PORKBUN_API_KEY": {
-            "description": "The API Key",
+         "DNSimple_OAUTH_TOKEN": {
+            "description": "The DNSimple API OAUTH token",
+            "type": "string"
+         }
+      },
+      "name": "DNSimple"
+   },
+   "dnsservices": {},
+   "doapi": {
+      "fields": {
+         "DO_LETOKEN": {
+            "description": "The do.de API token",
+            "type": "string"
+         }
+      },
+      "name": "do.de"
+   },
+   "domeneshop": {
+      "fields": {
+         "DOMENESHOP_Token": {
+            "description": "The domeneshop API token",
             "type": "string"
          },
-         "PORKBUN_SECRET_API_KEY": {
-            "description": "The API Secret",
+         "DOMENESHOP_Secret": {
+            "description": "The domeneshop API secret",
             "type": "string"
          }
       },
-      "name": "Porkbun"
+      "name": "domeneshop"
    },
-   "rackcorp": {},
-   "rackspace": {},
-   "rage4": {},
-   "rcode0": {},
-   "regru": {},
-   "scaleway": {},
-   "schlundtech": {},
-   "selectel": {},
-   "selfhost": {},
-   "servercow": {},
-   "simply": {},
-   "technitium": {},
-   "tele3": {},
-   "tencent": {},
-   "timeweb": {},
-   "transip": {},
-   "udr": {},
-   "ultra": {},
-   "unoeuro": {},
-   "variomedia": {},
-   "veesp": {},
-   "vercel": {},
-   "vscale": {},
-   "vultr": {},
-   "websupport": {},
-   "west_cn": {},
-   "world4you": {
+   "dp": {
       "fields": {
-         "WORLD4YOU_PASSWORD": {
-            "description": "The World4You password",
+         "DP_Id": {
+            "description": "The DNSPod.cn ID",
             "type": "string"
          },
-         "WORLD4YOU_USERNAME": {
-            "description": "The World4You customer id or package id",
+         "DP_Key": {
+            "description": "The DNSPod.cn API key",
             "type": "string"
          }
       },
-      "name": "World4You"
+      "name": "DNSPod.cn"
+   },
+   "dpi": {
+      "fields": {
+         "DPI_Id": {
+            "description": "The DNSPod.com ID",
+            "type": "string"
+         },
+         "DPI_Key": {
+            "description": "The DNSPod.com API key",
+            "type": "string"
+         }
+      },
+      "name": "DNSPod.com"
+   },
+   "dreamhost": {
+      "fields": {
+         "DH_API_KEY": {
+            "description": "The DreamHost API key",
+            "type": "string"
+         }
+      },
+      "name": "DreamHost"
    },
-   "yandex360": {},
-   "yc": {},
-   "zilore": {},
-   "zone": {},
-   "zoneedit": {},
-   "zonomi": {}
-}
+   "duckdns": {
+      "fields": {
+         "DuckDNS_Token": {
+            "description": "The DuckDNS API token",
+            "type": "string"
+         }
+      },
+      "name": "DuckDNS"
+   },
+   "durabledns": {
+      "fields": {
+         "DD_API_User": {
+            "description": "The durabledns user",
+            "type": "string"
+         },
+         "DD_API_Key": {
+            "description": "The durabledns API key",
+            "type": "string"
+         }
+      },
+      "name": "durabledns"
+   },
+   "dyn": {
+      "fields": {
+         "DYN_Customer": {
+            "description": "The dynect.net customer",
+            "type": "string"
+         },
+         "DYN_Username": {
+            "description": "The dynect.net user",
+            "type": "string"
+         },
+         "DYN_Password": {
+            "description": "The dynect.net password",
+            "type": "string"
+         }
+      },
+      "name": "dynect.net"
+   },
+   "dynu": {
+      "fields": {
+         "Dynu_ClientId": {
+            "description": "The Dynu client ID",
+            "type": "string"
+         },
+         "Dynu_Secret": {
+            "description": "The Dynu API secret",
+            "type": "string"
+         }
+      },
+      "name": "Dynu"
+   },
+   "dynv6": {
+      "fields": {
+         "DYNV6_TOKEN": {
+            "description": "The dynv6 API token",
+            "type": "string"
+         }
+      },
+      "name": "dynv6"
+   },
+   "easydns": {
+      "fields": {
+         "EASYDNS_Token": {
+            "description": "The easydns API token",
+            "type": "string"
+         },
+         "EASYDNS_Key": {
+            "description": "The easydns API key",
+            "type": "string"
+         }
+      },
+      "name": "easydns"
+   },
+   "edgecenter": {
+      "fields": {
+         "EDGECENTER_API_KEY": {
+            "description": "The edgecenter API key",
+            "type": "string"
+         }
+      },
+      "name": "edgecenter"
+   },
+   "edgedns": {
+      "fields": {
+         "AKAMAI_CLIENT_TOKEN": {
+            "description": "akamai edgegrid client token",
+            "type": "string"
+         },
+         "AKAMAI_ACCESS_TOKEN": {
+            "description": "akamai edgegrid access token",
+            "type": "string"
+         },
+         "AKAMAI_CLIENT_SECRET": {
+            "description": "akamai edgegrid client secret",
+            "type": "string"
+         },
+         "AKAMAI_HOST": {
+            "description": "akamai edgegrid api host",
+            "type": "string"
+         }
+      },
+      "name": "Akamai EdgeDNS"
+   },
+   "euserv": {
+      "fields": {
+         "EUSERV_Username": {
+            "description": "The EUserv user",
+            "type": "string"
+         },
+         "EUSERV_Password": {
+            "description": "The EUserv password",
+            "type": "string"
+         }
+      },
+      "name": "EUserv"
+   },
+   "exoscale": {
+      "fields": {
+         "EXOSCALE_API_KEY": {
+            "description": "The Exoscale API key",
+            "type": "string"
+         },
+         "EXOSCALE_SECRET_KEY": {
+            "description": "The Exoscale secret key",
+            "type": "string"
+         }
+      },
+      "name": "Exoscale"
+   },
+   "fornex": {
+      "fields": {
+         "FORNEX_API_KEY": {
+            "description": "The fornex API key",
+            "type": "string"
+         }
+      },
+      "name": "fornex"
+   },
+   "freedns": {
+      "fields": {
+         "FREEDNS_User": {
+            "description": "The FreeDNS user",
+            "type": "string"
+         },
+         "FREEDNS_Password": {
+            "description": "The FreeDNS password",
+            "type": "string"
+         }
+      },
+      "name": "FreeDNS"
+   },
+   "freemyip": {
+      "fields": {
+         "FREEMYIP_Token": {
+            "description": "The freemyip API token",
+            "type": "string"
+         }
+      },
+      "name": "freemyip"
+   },
+   "gandi_livedns": {
+      "fields": {
+         "GANDI_LIVEDNS_TOKEN": {
+            "description": "The Gandi API token",
+            "optional": 1,
+            "type": "string"
+         },
+         "GANDI_LIVEDNS_KEY": {
+            "description": "The Gandi API key (deprecated)",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "Gandi LiveDNS"
+   },
+   "gcloud": {
+      "fields": {
+         "CLOUDSDK_ACTIVE_CONFIG_NAME": {
+            "description": "The Google Cloud config name",
+            "default": "default",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "Google Cloud"
+   },
+   "gcore": {
+      "fields": {
+         "GCORE_Key": {
+            "description": "The gcore API key",
+            "type": "string"
+         }
+      },
+      "name": "gcore"
+   },
+   "gd": {
+      "fields": {
+         "GD_Key": {
+            "description": "The GoDaddy API Key",
+            "type": "string"
+         },
+         "GD_Secret": {
+            "description": "The GoDaddy API Secret",
+            "type": "string"
+         }
+      },
+      "name": "GoDaddy"
+   },
+   "geoscaling": {
+      "fields": {
+         "GEOSCALING_Username": {
+            "description": "The geoscaling user",
+            "type": "string"
+         },
+         "GEOSCALING_Password": {
+            "description": "The geoscaling password",
+            "type": "string"
+         }
+      },
+      "name": "geoscaling"
+   },
+   "googledomains": {
+      "fields": {
+         "GOOGLEDOMAINS_ACCESS_TOKEN": {
+            "description": "The Google Domains access token",
+            "type": "string"
+         },
+         "GOOGLEDOMAINS_ZONE": {
+            "description": "Google Domains zone (inferred if left empty, optional)",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "Google Domains"
+   },
+   "he": {
+      "fields": {
+         "HE_Username": {
+            "description": "The HE username",
+            "type": "string"
+         },
+         "HE_Password": {
+            "description": "The HE password",
+            "type": "string"
+         }
+      },
+      "name": "Hurricane Electric"
+   },
+   "he_ddns": {
+      "fields": {
+         "HE_DDNS_KEY": {
+            "description": "The API key",
+            "type": "string"
+         }
+      },
+      "name": "Hurricane Electric DynDNS"
+   },
+   "hetzner": {
+      "fields": {
+         "HETZNER_Token": {
+            "description": "The hetzner API token",
+            "type": "string"
+         }
+      },
+      "name": "hetzner"
+   },
+   "hexonet": {
+      "fields": {
+         "Hexonet_Login": {
+            "description": "The hexonet user and role id",
+            "type": "string"
+         },
+         "Hexonet_Password": {
+            "description": "The hexonet role password",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "hexonet"
+   },
+   "hostingde": {
+      "fields": {
+         "HOSTINGDE_APIKEY": {
+            "description": "The hosting.de API key",
+            "type": "string"
+         },
+         "HOSTINGDE_ENDPOINT": {
+            "description": "The hosting.de API endpoint",
+            "default": "https://secure.hosting.de",
+            "type": "string"
+         }
+      },
+      "name": "hosting.de"
+   },
+   "huaweicloud": {
+      "fields": {
+         "HUAWEICLOUD_Username": {
+            "description": "The huaweicloud user",
+            "type": "string"
+         },
+         "HUAWEICLOUD_Password": {
+            "description": "The huaweicloud password",
+            "type": "string"
+         },
+         "HUAWEICLOUD_DomainName": {
+            "description": "The huaweicloud domain name",
+            "type": "string"
+         }
+      },
+      "name": "huaweicloud"
+   },
+   "infoblox": {
+      "fields": {
+         "Infoblox_Creds": {
+            "description": "The Infoblox credentials (username:password)",
+            "type": "string"
+         },
+         "Infoblox_Server": {
+            "description": "The IP or FQDN of Infoblox appliance",
+            "type": "string"
+         }
+      },
+      "name": "Infoblox"
+   },
+   "infomaniak": {
+      "fields": {
+         "INFOMANIAK_API_TOKEN": {
+            "description": "The infomaniak API token",
+            "type": "string"
+         }
+      },
+      "name": "infomaniak"
+   },
+   "internetbs": {
+      "fields": {
+         "INTERNETBS_API_KEY": {
+            "description": "The internetbs API key",
+            "type": "string"
+         },
+         "INTERNETBS_API_PASSWORD": {
+            "description": "The internetbs API password",
+            "type": "string"
+         }
+      },
+      "name": "internetbs"
+   },
+   "inwx": {
+      "fields": {
+         "INWX_Password": {
+            "description": "The INWX password",
+            "type": "string"
+         },
+         "INWX_Shared_Secret": {
+            "description": "The INWX shared secret",
+            "type": "string"
+         },
+         "INWX_User": {
+            "description": "The INWX username",
+            "type": "string"
+         }
+      },
+      "name": "INWX"
+   },
+   "ionos": {
+      "fields": {
+         "IONOS_PREFIX": {
+            "description": "The IONOS prefix",
+            "type": "string"
+         },
+         "IONOS_SECRET": {
+            "description": "The IONOS API secret",
+            "type": "string"
+         }
+      },
+      "name": "IONOS"
+   },
+   "ionos_cloud": {
+      "fields": {
+         "IONOS_TOKEN": {
+            "description": "The IONOS API token",
+            "type": "string"
+         }
+      },
+      "name": "IONOS Cloud"
+   },
+   "ipv64": {
+      "fields": {
+         "IPv64_Token": {
+            "description": "The IPv64 API token",
+            "type": "string"
+         }
+      },
+      "name": "IPv64"
+   },
+   "ispconfig": {
+      "fields": {
+         "ISPC_User": {
+            "description": "The ISPConfig user",
+            "type": "string"
+         },
+         "ISPC_Password": {
+            "description": "The ISPConfig password",
+            "type": "string"
+         },
+         "ISPC_Api": {
+            "description": "The ISPConfig API URL",
+            "type": "string"
+         },
+         "ISPC_Api_Insecure": {
+            "description": "Set to 1 if you have no valid ssl certs (1 | 0)",
+            "type": "integer"
+         }
+      },
+      "name": "ISPConfig"
+   },
+   "jd": {
+      "fields": {
+         "JD_ACCESS_KEY_ID": {
+            "description": "The jdcloud access key",
+            "type": "string"
+         },
+         "JD_ACCESS_KEY_SECRET": {
+            "description": "The jdcloud access key secret",
+            "type": "string"
+         }
+      },
+      "name": "jdcloud"
+   },
+   "joker": {
+      "fields": {
+         "JOKER_USERNAME": {
+            "description": "The joker user",
+            "type": "string"
+         },
+         "JOKER_PASSWORD": {
+            "description": "The joker password",
+            "type": "string"
+         }
+      },
+      "name": "joker"
+   },
+   "kappernet": {
+      "fields": {
+         "KAPPERNETDNS_Key": {
+            "description": "Your kapper.net API key",
+            "type": "string"
+         },
+         "KAPPERNETDNS_Secret": {
+            "description": "Your kapper.net API secret",
+            "type": "string"
+         }
+      },
+      "name": "kapper.net"
+   },
+   "kas": {
+      "fields": {
+         "KAS_Login": {
+            "description": "The KAS account ID",
+            "type": "string"
+         },
+         "KAS_Authdata": {
+            "description": "The KAS authentication data",
+            "type": "string"
+         },
+         "KAS_Authtype": {
+            "description": "The KAS authentication type",
+            "type": "string"
+         }
+      },
+      "name": "KAS"
+   },
+   "kinghost": {
+      "fields": {
+         "KINGHOST_Username": {
+            "description": "The KingHost user",
+            "type": "string"
+         },
+         "KINGHOST_Password": {
+            "description": "Your KingHost password",
+            "type": "string"
+         }
+      },
+      "name": "KingHost"
+   },
+   "knot": {
+      "fields": {
+         "KNOT_KEY": {
+            "description": "TSIG key (format alg:name:key)",
+            "type": "string"
+         },
+         "KNOT_SERVER": {
+            "description": "Hostname of the RFC 2136 compatible nameserver",
+            "type": "string"
+         }
+      },
+      "name": "Knot / knsupdate (RFC 2136)"
+   },
+   "la": {
+      "fields": {
+         "LA_Id": {
+            "description": "The dns.la appid",
+            "type": "string"
+         },
+         "LA_Sk": {
+            "description": "The dns.la API secret",
+            "type": "string"
+         }
+      },
+      "name": "dns.la"
+   },
+   "leaseweb": {
+      "fields": {
+         "LSW_Key": {
+            "description": "The Leaseweb API key",
+            "type": "string"
+         }
+      },
+      "name": "Leaseweb"
+   },
+   "lexicon": {},
+   "limacity": {
+      "fields": {
+         "LIMACITY_APIKEY": {
+            "description": "The Limacity API key",
+            "type": "string"
+         }
+      },
+      "name": "Limacity"
+   },
+   "linode": {},
+   "linode_v4": {
+      "fields": {
+         "LINODE_V4_API_KEY": {
+            "description": "The Linode API key",
+            "type": "string"
+         }
+      },
+      "name": "Linode"
+   },
+   "loopia": {
+      "fields": {
+         "LOOPIA_Api": {
+            "description": "The Loopia API endpoint",
+            "default": "https://api.loopia.se/RPCSERV",
+            "type": "string"
+         },
+         "LOOPIA_User": {
+            "description": "The Loopia user",
+            "type": "string"
+         },
+         "LOOPIA_Password": {
+            "description": "The Loopia password",
+            "type": "string"
+         }
+      },
+      "name": "Loopia"
+   },
+   "lua": {
+      "fields": {
+         "LUA_Key": {
+            "description": "The LuaDNS API key",
+            "type": "string"
+         },
+         "LUA_Email": {
+            "description": "The LuaDNS user",
+            "type": "string"
+         }
+      },
+      "name": "LuaDNS"
+   },
+   "maradns": {
+      "fields": {
+         "MARA_ZONE_FILE": {
+            "description": "The path to MaraDNS zone file",
+            "type": "string"
+         },
+         "MARA_DUENDE_PID_PATH": {
+            "description": "The path to MaraDNS PID file",
+            "type": "string"
+         }
+      },
+      "name": "MaraDNS"
+   },
+   "me": {
+      "fields": {
+         "ME_Key": {
+            "description": "The DNSMadeEasy API key",
+            "type": "string"
+         },
+         "ME_Secret": {
+            "description": "The DNSMadeEasy API secret",
+            "type": "string"
+         }
+      },
+      "name": "DNSMadeEasy"
+   },
+   "miab": {
+      "fields": {
+         "MIAB_Username": {
+            "description": "The MIAB user",
+            "type": "string"
+         },
+         "MIAB_Password": {
+            "description": "The MIAB password",
+            "type": "string"
+         },
+         "MIAB_Server": {
+            "description": "The FQDN of the MIAB server",
+            "type": "string"
+         }
+      },
+      "name": "Mail-In-a-Box"
+   },
+   "mijnhost": {
+      "fields": {
+         "MIJN_HOST_API_KEY": {
+            "description": "The mijnhost API key",
+            "type": "string"
+         }
+      },
+      "name": "mijnhost"
+   },
+   "misaka": {
+      "fields": {
+         "Misaka_Key": {
+            "description": "The misaka API key",
+            "type": "string"
+         }
+      },
+      "name": "misaka"
+   },
+   "myapi": {},
+   "mydevil": {},
+   "mydnsjp": {
+      "fields": {
+         "MYDNSJP_MasterID": {
+            "description": "The MyDNS.jp master ID",
+            "type": "string"
+         },
+         "MYDNSJP_Password": {
+            "description": "The MyDNS.jp password",
+            "type": "string"
+         }
+      },
+      "name": "MyDNS.jp"
+   },
+   "mythic_beasts": {
+      "fields": {
+         "MB_AK": {
+            "description": "The mythic-beasts API key",
+            "type": "string"
+         },
+         "MB_AS": {
+            "description": "The mythic-beasts API secret",
+            "type": "string"
+         }
+      },
+      "name": "mythic-beasts"
+   },
+   "namecheap": {
+      "fields": {
+         "NAMECHEAP_USERNAME": {
+            "description": "The Namecheap user",
+            "type": "string"
+         },
+         "NAMECHEAP_API_KEY": {
+            "description": "The Namecheap API key",
+            "type": "string"
+         },
+         "NAMECHEAP_SOURCEIP": {
+            "description": "The Namecheap source IP/Domain",
+            "type": "string"
+         }
+      },
+      "name": "Namecheap"
+   },
+   "namecom": {
+      "fields": {
+         "Namecom_Username": {
+            "description": "The Name.com user",
+            "type": "string"
+         },
+         "Namecom_Token": {
+            "description": "The Name.com API token",
+            "type": "string"
+         }
+      },
+      "name": "Name.com"
+   },
+   "namesilo": {
+      "fields": {
+         "Namesilo_Key": {
+            "description": "The Namesilo key",
+            "type": "string"
+         }
+      },
+      "name": "Namesilo"
+   },
+   "nanelo": {
+      "fields": {
+         "NANELO_TOKEN": {
+            "description": "The Nanelo API token",
+            "type": "string"
+         }
+      },
+      "name": "Nanelo"
+   },
+   "nederhost": {
+      "fields": {
+         "NederHost_Key": {
+            "description": "The NederHost API key",
+            "type": "string"
+         }
+      },
+      "name": "NederHost"
+   },
+   "neodigit": {
+      "fields": {
+         "NEODIGIT_API_TOKEN": {
+            "description": "The Neodigit API token",
+            "type": "string"
+         }
+      },
+      "name": "Neodigit"
+   },
+   "netcup": {
+      "fields": {
+         "NC_Apikey": {
+            "description": "The netcup API key",
+            "type": "string"
+         },
+         "NC_Apipw": {
+            "description": "The netcup API password",
+            "type": "string"
+         },
+         "NC_CID": {
+            "description": "The netcup customer number",
+            "type": "string"
+         }
+      },
+      "name": "netcup"
+   },
+   "netlify": {
+      "fields": {
+         "NETLIFY_ACCESS_TOKEN": {
+            "description": "The netlify access token",
+            "type": "string"
+         }
+      },
+      "name": "netlify"
+   },
+   "nic": {
+      "fields": {
+         "NIC_Username": {
+            "description": "The nic user",
+            "type": "string"
+         },
+         "NIC_Password": {
+            "description": "The nic password",
+            "type": "string"
+         },
+         "NIC_ClientID": {
+            "description": "The nic client ID",
+            "type": "string"
+         },
+         "NIC_ClientSecret": {
+            "description": "The nic client secret",
+            "type": "string"
+         }
+      },
+      "name": "nic"
+   },
+   "njalla": {
+      "fields": {
+         "NJALLA_Token": {
+            "description": "The Njalla API token",
+            "type": "string"
+         }
+      },
+      "name": "Njalla"
+   },
+   "nm": {
+      "fields": {
+         "NM_user": {
+            "description": "The Namemaster user",
+            "type": "string"
+         },
+         "NM_sha256": {
+            "description": "The Namemaster secret hash",
+            "type": "string"
+         }
+      },
+      "name": "Namemaster"
+   },
+   "nsd": {
+      "fields": {
+         "Nsd_ZoneFile": {
+            "description": "The path to NSD zonefile",
+            "type": "string"
+         },
+         "Nsd_Command": {
+            "description": "The command to reload nsd-control",
+            "type": "string"
+         }
+      },
+      "name": "NLnetLabs NSD"
+   },
+   "nsone": {
+      "fields": {
+         "NS1_Key": {
+            "description": "The NS1 API key",
+            "type": "string"
+         }
+      },
+      "name": "NS1"
+   },
+   "nsupdate": {
+      "fields": {
+         "NSUPDATE_KEY": {
+            "description": "Path to the nsupdate key file (TSIG key)",
+            "type": "string"
+         },
+         "NSUPDATE_SERVER": {
+            "description": "Hostname of the RFC 2136 compatible nameserver",
+            "type": "string"
+         },
+         "NSUPDATE_ZONE": {
+            "description": "DNS zone name (optional)",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "nsupdate (RFC 2136)"
+   },
+   "nw": {
+      "fields": {
+         "NW_API_TOKEN": {
+            "description": "The API token",
+            "type": "string"
+         },
+         "NW_API_ENDPOINT": {
+            "description": "The API endpoint",
+            "type": "string"
+         }
+      },
+      "name": "Thermo.io/Futurehosting.com/Nexcess.net"
+   },
+   "oci": {},
+   "omglol": {
+      "fields": {
+         "OMG_ApiKey": {
+            "description": "The omg.lol API key",
+            "type": "string"
+         },
+         "OMG_Address": {
+            "description": "The omg.lol address",
+            "type": "string"
+         }
+      },
+      "name": "omg.lol"
+   },
+   "one": {
+      "fields": {
+         "ONECOM_User": {
+            "description": "The one user",
+            "type": "string"
+         },
+         "ONECOM_Password": {
+            "description": "The one password",
+            "type": "string"
+         },
+         "ONECOM_KeepCnameProxy": {
+            "description": "Whether to keep the CNAME Proxy (1 | 0)",
+            "optional": 1,
+            "type": "integer"
+         }
+      },
+      "name": "one"
+   },
+   "online": {
+      "fields": {
+         "ONLINE_API_KEY": {
+            "description": "The Online API key",
+            "type": "string"
+         }
+      },
+      "name": "Online"
+   },
+   "openprovider": {
+      "fields": {
+         "OPENPROVIDER_REST_USERNAME": {
+            "description": "The OpenProvider user",
+            "type": "string"
+         },
+         "OPENPROVIDER_REST_PASSWORD": {
+            "description": "The OpenProvider password",
+            "type": "string"
+         }
+      },
+      "name": "OpenProvider"
+   },
+   "openstack": {
+      "fields": {
+         "OS_AUTH_URL": {
+            "description": "The OpenStack auth URL",
+            "type": "string"
+         },
+         "OS_USERNAME": {
+            "description": "The OpenStack user",
+            "type": "string"
+         },
+         "OS_PASSWORD": {
+            "description": "The OpenStack password",
+            "type": "string"
+         },
+         "OS_PROJECT_NAME": {
+            "description": "The OpenStack project name",
+            "type": "string"
+         },
+         "OS_PROJECT_DOMAIN_NAME": {
+            "description": "The OpenStack project domain name",
+            "default": "Default",
+            "type": "string"
+         },
+         "OS_USER_DOMAIN_NAME": {
+            "description": "The OpenStack user domain name",
+            "default": "Default",
+            "type": "string"
+         }
+      },
+      "name": "OpenStack"
+   },
+   "opnsense": {
+      "fields": {
+         "OPNs_Host": {
+            "description": "The OPNs host",
+            "type": "string"
+         },
+         "OPNs_Port": {
+            "description": "The OPNs port",
+            "default": 443,
+            "type": "integer"
+         },
+         "OPNs_Key": {
+            "description": "The OPNs API key",
+            "type": "string"
+         },
+         "OPNs_Token": {
+            "description": "The OPNs API token",
+            "type": "string"
+         },
+         "OPNs_Api_Insecure": {
+            "description": "(1 | 0)",
+            "default": 0,
+            "type": "integer"
+         }
+      },
+      "name": "OPNsense"
+   },
+   "ovh": {
+      "fields": {
+         "OVH_AK": {
+            "description": "The application key.",
+            "type": "string"
+         },
+         "OVH_AS": {
+            "description": "The application secret.",
+            "type": "string"
+         },
+         "OVH_CK": {
+            "description": "The consumer key.",
+            "optional": 1,
+            "type": "string"
+         },
+         "OVH_END_POINT": {
+            "default": "ovh-eu",
+            "description": "The OVH endpoint",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "OVH"
+   },
+   "pdns": {
+      "fields": {
+         "PDNS_ServerId": {
+            "type": "string"
+         },
+         "PDNS_Token": {
+            "type": "string"
+         },
+         "PDNS_Ttl": {
+            "type": "integer"
+         },
+         "PDNS_Url": {
+            "description": "The PowerDNS API endpoint.",
+            "type": "string"
+         }
+      },
+      "name": "PowerDNS server"
+   },
+   "pleskxml": {
+      "fields": {
+         "pleskxml_uri": {
+            "description": "The URI to the Plesk XML API",
+            "type": "string"
+         },
+         "pleskxml_user": {
+            "description": "The Plesk XML user",
+            "type": "string"
+         },
+         "pleskxml_pass": {
+            "description": "The Plesk XML password",
+            "type": "string"
+         }
+      },
+      "name": "Plesk XML"
+   },
+   "pointhq": {
+      "fields": {
+         "PointHQ_Key": {
+            "description": "The PointHQ API key",
+            "type": "string"
+         },
+         "PointHQ_Email": {
+            "description": "The PointHQ email",
+            "type": "string"
+         }
+      },
+      "name": "PointHQ"
+   },
+   "porkbun": {
+      "fields": {
+         "PORKBUN_API_KEY": {
+            "description": "The API Key",
+            "type": "string"
+         },
+         "PORKBUN_SECRET_API_KEY": {
+            "description": "The API Secret",
+            "type": "string"
+         }
+      },
+      "name": "Porkbun"
+   },
+   "rackcorp": {
+      "fields": {
+         "RACKCORP_APIUUID": {
+            "description": "The RackCorp API UUID",
+            "type": "string"
+         },
+         "RACKCORP_APISECRET": {
+            "description": "The RackCorp API secret",
+            "type": "string"
+         }
+      },
+      "name": "RackCorp"
+   },
+   "rackspace": {
+      "fields": {
+         "RACKSPACE_Username": {
+            "description": "The Rackspace user",
+            "type": "string"
+         },
+         "RACKSPACE_Apikey": {
+            "description": "The Rackspace API key",
+            "type": "string"
+         }
+      },
+      "name": "Rackspace"
+   },
+   "rage4": {
+      "fields": {
+         "RAGE4_USERNAME": {
+            "description": "The rage4 user",
+            "type": "string"
+         },
+         "RAGE4_TOKEN": {
+            "description": "The rage4 API token",
+            "type": "string"
+         }
+      },
+      "name": "rage4"
+   },
+   "rcode0": {
+      "fields": {
+         "RCODE0_API_TOKEN": {
+            "description": "The RcodeZero API token",
+            "type": "string"
+         },
+         "RCODE0_URL": {
+            "description": "The RcodeZero URL",
+            "optional": 1,
+            "type": "string"
+         },
+         "RCODE0_TTL": {
+            "description": "Time to live",
+            "optional": 1,
+            "type": "integer"
+         }
+      },
+      "name": "RcodeZero"
+   },
+   "regru": {
+      "fields": {
+         "REGRU_API_Username": {
+            "description": "The reg.ru user",
+            "type": "string"
+         },
+         "REGRU_API_Password": {
+            "description": "The reg.ru password",
+            "type": "string"
+         }
+      },
+      "name": "reg.ru"
+   },
+   "scaleway": {
+      "fields": {
+         "SCALEWAY_API_TOKEN": {
+            "description": "The Scaleway API token",
+            "type": "string"
+         }
+      },
+      "name": "Scaleway"
+   },
+   "schlundtech": {
+      "fields": {
+         "SCHLUNDTECH_USER": {
+            "description": "The Schlundtech user",
+            "type": "string"
+         },
+         "SCHLUNDTECH_PASSWORD": {
+            "description": "The Schlundtech password",
+            "type": "string"
+         }
+      },
+      "name": "Schlundtech"
+   },
+   "selectel": {
+      "fields": {
+         "SL_Key": {
+            "description": "The selectel API key (v1 LEGACY)",
+            "optional": 1,
+            "type": "string"
+         },
+         "SL_Ver": {
+            "default": "v2",
+            "description": "The selectel API version (v1 | v2)",
+            "optional": 1,
+            "type": "string"
+         },
+         "SL_Expire": {
+            "description": "Token lifetime in minutes (0-1440) (v2)",
+            "default": 14000,
+            "optional": 1,
+            "type": "integer"
+         },
+         "SL_Login_ID": {
+            "description": "The selectel account number (v2)",
+            "optional": 1,
+            "type": "string"
+         },
+         "SL_Project_Name": {
+            "description": "The selectel project name (v2)",
+            "optional": 1,
+            "type": "string"
+         },
+         "SL_Login_Name": {
+            "description": "The selectel user (v2)",
+            "optional": 1,
+            "type": "string"
+         },
+         "SL_Pswd": {
+            "description": "The selectel password (v2)",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "selectel"
+   },
+   "selfhost": {
+      "fields": {
+         "SELFHOSTDNS_USERNAME": {
+            "description": "The Selfhost user",
+            "type": "string"
+         },
+         "SELFHOSTDNS_PASSWORD": {
+            "description": "The Selfhost password",
+            "type": "string"
+         },
+         "SELFHOSTDNS_MAP": {
+            "description": "The Selfhost DNS map",
+            "type": "string"
+         }
+      },
+      "name": "Selfhost"
+   },
+   "servercow": {
+      "fields": {
+         "SERVERCOW_API_Username": {
+            "description": "The Servercow user",
+            "type": "string"
+         },
+         "SERVERCOW_API_Password": {
+            "description": "The Servercow password",
+            "type": "string"
+         }
+      },
+      "name": "Servercow"
+   },
+   "simply": {
+      "fields": {
+         "SIMPLY_AccountName": {
+            "description": "The simply account",
+            "type": "string"
+         },
+         "SIMPLY_ApiKey": {
+            "description": "The simply API key",
+            "type": "string"
+         }
+      },
+      "name": "simply"
+   },
+   "technitium": {
+      "fields": {
+         "Technitium_Server": {
+            "description": "The name server URL",
+            "type": "string"
+         },
+         "Technitium_Token": {
+            "description": "The Technitium API token",
+            "type": "string"
+         }
+      },
+      "name": "Technitium"
+   },
+   "tele3": {
+      "fields": {
+         "TELE3_Key": {
+            "description": "The TELE3 API key",
+            "type": "string"
+         },
+         "TELE3_Secret": {
+            "description": "The TELE3 API secret",
+            "type": "string"
+         }
+      },
+      "name": "TELE3"
+   },
+   "tencent": {
+      "fields": {
+         "Tencent_SecretId": {
+            "description": "The Tencent secret ID",
+            "type": "string"
+         },
+         "Tencent_SecretKey": {
+            "description": "The Tencent secret key",
+            "type": "string"
+         }
+      },
+      "name": "TencentCloud"
+   },
+   "timeweb": {
+      "fields": {
+         "TW_Token": {
+            "description": "The Timeweb API JWT token",
+            "type": "string"
+         }
+      },
+      "name": "Timeweb"
+   },
+   "transip": {
+      "fields": {
+         "TRANSIP_Username": {
+            "description": "The TransIP user",
+            "type": "string"
+         },
+         "TRANSIP_Key_File": {
+            "description": "The TransIP keyfile",
+            "type": "string"
+         },
+         "TRANSIP_Token_Global_Key": {
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "TransIP"
+   },
+   "udr": {
+      "fields": {
+         "UDR_USER": {
+            "description": "The UDR user",
+            "type": "string"
+         },
+         "UDR_PASS": {
+            "description": "The UDR password",
+            "type": "string"
+         }
+      },
+      "name": "united-domains reselling"
+   },
+   "ultra": {
+      "fields": {
+         "ULTRA_USR": {
+            "description": "The UltraDNS user",
+            "type": "string"
+         },
+         "ULTRA_PWD": {
+            "description": "The UltraDNS password",
+            "type": "string"
+         }
+      },
+      "name": "UltraDNS"
+   },
+   "unoeuro": {},
+   "variomedia": {
+      "fields": {
+         "VARIOMEDIA_API_TOKEN": {
+            "description": "The variomedia API token",
+            "type": "string"
+         }
+      },
+      "name": "variomedia"
+   },
+   "veesp": {
+      "fields": {
+         "VEESP_User": {
+            "description": "The Veesp user",
+            "type": "string"
+         },
+         "VEESP_Password": {
+            "description": "The Veesp password",
+            "type": "string"
+         }
+      },
+      "name": "Veesp"
+   },
+   "vercel": {
+      "fields": {
+         "VERCEL_TOKEN": {
+            "description": "The Vercel API token",
+            "type": "string"
+         }
+      },
+      "name": "Vercel"
+   },
+   "vscale": {
+      "fields": {
+         "VSCALE_API_KEY": {
+            "description": "The VSCALE API key",
+            "type": "string"
+         }
+      },
+      "name": "VSCALE"
+   },
+   "vultr": {
+      "fields": {
+         "VULTR_API_KEY": {
+            "description": "The Vultr API key",
+            "type": "string"
+         }
+      },
+      "name": "Vultr"
+   },
+   "websupport": {
+      "fields": {
+         "WS_ApiKey": {
+            "description": "The Websupport API key",
+            "type": "string"
+         },
+         "WS_ApiSecret": {
+            "description": "The Websupport API secret",
+            "type": "string"
+         }
+      },
+      "name": "Websupport"
+   },
+   "west_cn": {
+      "fields": {
+         "WEST_Username": {
+            "description": "The West.cn user",
+            "type": "string"
+         },
+         "WEST_Key": {
+            "description": "The West.cn Encryption API key",
+            "type": "string"
+         }
+      },
+      "name": "West.cn"
+   },
+   "world4you": {
+      "fields": {
+         "WORLD4YOU_PASSWORD": {
+            "description": "The World4You password",
+            "type": "string"
+         },
+         "WORLD4YOU_USERNAME": {
+            "description": "The World4You customer ID or package ID",
+            "type": "string"
+         }
+      },
+      "name": "World4You"
+   },
+   "yandex360": {
+      "fields": {
+         "YANDEX360_CLIENT_ID": {
+            "description": "The Yandex 360 client ID (OAuth)",
+            "optional": 1,
+            "type": "string"
+         },
+         "YANDEX360_CLIENT_SECRET": {
+            "description": "The Yandex 360 client secret (OAuth)",
+            "optional": 1,
+            "type": "string"
+         },
+         "YANDEX360_ORG_ID": {
+            "description": "The Yandex 360 organization ID",
+            "optional": 1,
+            "type": "string"
+         },
+         "YANDEX360_ACCESS_TOKEN": {
+            "description": "The Yandex 360 access token (non-OAuth)",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "Yandex 360"
+   },
+   "yc": {
+      "fields": {
+         "YC_Folder_ID": {
+            "description": "The YC folder ID",
+            "type": "string"
+         },
+         "YC_SA_ID": {
+            "description": "The YC service account ID",
+            "type": "string"
+         },
+         "YC_SA_Key_ID": {
+            "description": "The YC service account IAM key ID",
+            "type": "string"
+         },
+         "YC_SA_Key_File_PEM_b64": {
+            "description": "The YC base64 encoded PEM",
+            "type": "string"
+         },
+         "YC_Zone_ID": {
+            "description": "The YC zone ID",
+            "optional": 1,
+            "type": "string"
+         }
+      },
+      "name": "Yandex Cloud"
+   },
+   "zilore": {
+      "fields": {
+         "Zilore_Key": {
+            "description": "The Zilore API key",
+            "type": "string"
+         }
+      },
+      "name": "Zilore"
+   },
+   "zone": {
+      "fields": {
+         "ZONE_Username": {
+            "description": "The Zone.ee user",
+            "type": "string"
+         },
+         "ZONE_Key": {
+            "description": "The Zone.ee API key",
+            "type": "string"
+         }
+      },
+      "name": "Zone.ee"
+   },
+   "zoneedit": {
+      "fields": {
+         "ZONEEDIT_ID": {
+            "description": "The ZoneEdit ID",
+            "type": "string"
+         },
+         "ZONEEDIT_Token": {
+            "description": "The ZoneEdit API token",
+            "type": "string"
+         }
+      },
+      "name": "ZoneEdit"
+   },
+   "zonomi": {
+      "fields": {
+         "ZM_Key": {
+            "description": "The zonomi API key",
+            "type": "string"
+         }
+      },
+      "name": "zonomi"
+   }
+}
\ No newline at end of file
-- 
2.47.3


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-09-22 13:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-09-22 13:38 [pve-devel] [PATCH proxmox-acme 0/1] add all missing dns challenge schemas n.frey
2025-09-22 13:38 ` [pve-devel] [PATCH proxmox-acme 1/1] " n.frey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal