public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Nicolas Frey <n.frey@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH proxmox-acme 2/2] dns: generate schema
Date: Mon,  3 Nov 2025 09:03:10 +0100	[thread overview]
Message-ID: <20251103080310.60168-3-n.frey@proxmox.com> (raw)
In-Reply-To: <20251103080310.60168-1-n.frey@proxmox.com>

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

diff --git a/src/dns-challenge-schema.json b/src/dns-challenge-schema.json
index 8669c86..dbe7481 100644
--- a/src/dns-challenge-schema.json
+++ b/src/dns-challenge-schema.json
@@ -1,405 +1,2092 @@
 {
-   "1984hosting": {},
+   "1984hosting": {
+      "fields": {
+         "One984HOSTING_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "One984HOSTING_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "1984.hosting"
+   },
    "acmedns": {
       "fields": {
          "ACMEDNS_BASE_URL": {
-            "description": "The API update endpoint",
+            "default": "https://auth.acme-dns.io",
+            "description": "API endpoint. Default: \"https://auth.acme-dns.io\".",
             "type": "string"
          },
          "ACMEDNS_PASSWORD": {
-            "description": "The acme-dns password",
+            "description": "Password. Optional.",
+            "optional": "1",
             "type": "string"
          },
          "ACMEDNS_SUBDOMAIN": {
-            "description": "The subdomain you got from acme-dns registration",
+            "description": "Subdomain. Optional.",
+            "optional": "1",
             "type": "string"
          },
          "ACMEDNS_USERNAME": {
-            "description": "The acme-dns user",
+            "description": "Username. Optional.",
+            "optional": "1",
+            "type": "string"
+         }
+      },
+      "name": "acme-dns Server API"
+   },
+   "acmeproxy": {
+      "fields": {
+         "ACMEPROXY_ENDPOINT": {
+            "description": "API Endpoint",
+            "type": "string"
+         },
+         "ACMEPROXY_PASSWORD": {
+            "description": "Password",
+            "type": "string"
+         },
+         "ACMEPROXY_USERNAME": {
+            "description": "Username",
             "type": "string"
          }
       },
-      "name": "acme-dns"
+      "name": "AcmeProxy Server API"
    },
-   "acmeproxy": {},
    "active24": {
       "fields": {
          "ACTIVE24_Token": {
-            "description": "The API key",
+            "description": "API Token",
             "type": "string"
          }
       },
-      "name": "Active24"
+      "name": "Active24.com"
    },
    "ad": {
       "fields": {
          "AD_API_KEY": {
-            "description": "The API key",
+            "description": "API Key",
             "type": "string"
          }
       },
-      "name": "Alwaysdata"
+      "name": "AlwaysData.com"
    },
    "ali": {
       "fields": {
-         "Ali_API": {
-            "default": "https://alidns.aliyuncs.com/",
-            "description": "The API endpoint",
-            "optional": 1,
-            "type": "string"
-         },
          "Ali_Key": {
-            "description": "The API Key",
+            "description": "API Key",
             "type": "string"
          },
          "Ali_Secret": {
-            "description": "The API Secret",
+            "description": "API Secret",
+            "type": "string"
+         }
+      },
+      "name": "AlibabaCloud.com"
+   },
+   "alviy": {
+      "fields": {
+         "Alviy_token": {
+            "description": "API token. Get it from the https://cloud.alviy.com/token",
+            "type": "string"
+         }
+      },
+      "name": "Alviy.com"
+   },
+   "anx": {
+      "fields": {
+         "ANX_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Anexia.com CloudDNS"
+   },
+   "artfiles": {
+      "fields": {
+         "AF_API_PASSWORD": {
+            "description": "API Password",
+            "type": "string"
+         },
+         "AF_API_USERNAME": {
+            "description": "API Username",
+            "type": "string"
+         }
+      },
+      "name": "ArtFiles.de"
+   },
+   "arvan": {
+      "fields": {
+         "Arvan_Token": {
+            "description": "API Token",
             "type": "string"
          }
       },
-      "name": "Alibaba Cloud DNS"
+      "name": "ArvanCloud.ir"
    },
-   "alviy": {},
-   "anx": {},
-   "artfiles": {},
-   "arvan": {},
    "aurora": {
       "fields": {
          "AURORA_Key": {
-            "description": "The API Key",
+            "description": "API Key",
             "type": "string"
          },
          "AURORA_Secret": {
-            "description": "The API Secret",
+            "description": "API Secret",
+            "type": "string"
+         }
+      },
+      "name": "versio.nl AuroraDNS"
+   },
+   "autodns": {
+      "fields": {
+         "AUTODNS_CONTEXT": {
+            "description": "Context",
+            "type": "string"
+         },
+         "AUTODNS_PASSWORD": {
+            "description": "Password",
+            "type": "string"
+         },
+         "AUTODNS_USER": {
+            "description": "Username",
             "type": "string"
          }
       },
-      "name": "AuroraDNS"
+      "name": "InternetX autoDNS"
    },
-   "autodns": {},
    "aws": {
       "fields": {
          "AWS_ACCESS_KEY_ID": {
-            "description": "The AWS access-key ID",
-            "name": "ACCESS_KEY_ID",
+            "description": "API Key ID",
             "type": "string"
          },
          "AWS_SECRET_ACCESS_KEY": {
-            "description": "The AWS access-key secret",
-            "name": "SECRET_ACCESS_KEY",
+            "description": "API Secret",
+            "type": "string"
+         }
+      },
+      "name": "Amazon AWS Route53 domain API"
+   },
+   "azion": {
+      "fields": {
+         "AZION_Email": {
+            "description": "Email",
+            "type": "string"
+         },
+         "AZION_Password": {
+            "description": "Password",
+            "type": "string"
+         }
+      },
+      "name": "Azion.om"
+   },
+   "azure": {
+      "fields": {
+         "AZUREDNS_APPID": {
+            "description": "App ID. App ID of the service principal",
+            "type": "string"
+         },
+         "AZUREDNS_BEARERTOKEN": {
+            "description": "Bearer Token. Used instead of service principal credentials or managed identity. Optional.",
+            "optional": "1",
+            "type": "string"
+         },
+         "AZUREDNS_CLIENTSECRET": {
+            "description": "Client Secret. Secret from creating the service principal",
+            "type": "string"
+         },
+         "AZUREDNS_MANAGEDIDENTITY": {
+            "description": "Use Managed Identity. Use Managed Identity assigned to a resource instead of a service principal. \"true\"/\"false\"",
+            "type": "string"
+         },
+         "AZUREDNS_SUBSCRIPTIONID": {
+            "description": "Subscription ID",
+            "type": "string"
+         },
+         "AZUREDNS_TENANTID": {
+            "description": "Tenant ID",
+            "type": "string"
+         }
+      },
+      "name": "Azure"
+   },
+   "beget": {
+      "fields": {
+         "BEGET_Password": {
+            "description": "API password",
+            "type": "string"
+         },
+         "BEGET_User": {
+            "description": "API user",
+            "type": "string"
+         }
+      },
+      "name": "Beget.com"
+   },
+   "bookmyname": {
+      "fields": {
+         "BOOKMYNAME_PASSWORD": {
+            "description": "Password",
+            "type": "string"
+         },
+         "BOOKMYNAME_USERNAME": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "BookMyName.com"
+   },
+   "bunny": {
+      "fields": {
+         "BUNNY_API_KEY": {
+            "description": "API Key",
             "type": "string"
          }
       },
-      "name": "Amazon Route53 (AWS)"
+      "name": "Bunny.net"
    },
-   "azion": {},
-   "azure": {},
-   "beget": {},
-   "bookmyname": {},
-   "bunny": {},
    "cf": {
-      "description": "Either provide global account key and email, or CF API token and Account ID.",
       "fields": {
          "CF_Account_ID": {
-            "description": "The new Cloudflare API Account ID",
+            "description": "Account ID",
             "type": "string"
          },
          "CF_Email": {
-            "description": "The Cloudflare Account EMail-Address",
+            "description": "Your account email",
             "type": "string"
          },
          "CF_Key": {
-            "description": "The Cloudflare Global API Key",
+            "description": "API Key",
             "type": "string"
          },
          "CF_Token": {
-            "description": "The new Cloudflare API Token",
+            "description": "API Token",
             "type": "string"
          },
          "CF_Zone_ID": {
-            "description": "For Zone restricted API Token",
+            "description": "Zone ID. Optional.",
+            "optional": "1",
             "type": "string"
          }
       },
-      "name": "Cloudflare Managed DNS"
+      "name": "CloudFlare"
    },
-   "clouddns": {},
-   "cloudns": {},
-   "cn": {},
-   "conoha": {},
-   "constellix": {},
-   "cpanel": {},
-   "curanet": {},
-   "cyon": {},
-   "da": {},
-   "ddnss": {},
-   "desec": {},
-   "df": {},
-   "dgon": {
+   "clouddns": {
       "fields": {
-         "DO_API_KEY": {
-            "description": "The DigitalOcean API Key",
-            "type": "string"
-         }
-      },
-      "name": "DigitalOcean DNS"
-   },
-   "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": {
+         "CLOUDDNS_CLIENT_ID": {
+            "description": "Client ID",
+            "type": "string"
+         },
+         "CLOUDDNS_EMAIL": {
+            "description": "Email",
+            "type": "string"
+         },
+         "CLOUDDNS_PASSWORD": {
+            "description": "Password",
+            "type": "string"
+         }
+      },
+      "name": "vshosting.cz CloudDNS"
+   },
+   "cloudns": {
       "fields": {
-         "GD_Key": {
-            "description": "The GoDaddy API Key",
+         "CLOUDNS_AUTH_ID": {
+            "description": "Regular auth ID",
             "type": "string"
          },
-         "GD_Secret": {
-            "description": "The GoDaddy API Secret",
+         "CLOUDNS_AUTH_PASSWORD": {
+            "description": "Auth Password",
+            "type": "string"
+         },
+         "CLOUDNS_SUB_AUTH_ID": {
+            "description": "Sub auth ID",
             "type": "string"
          }
       },
-      "name": "GoDaddy"
+      "name": "ClouDNS.net"
    },
-   "geoscaling": {},
-   "googledomains": {},
-   "he": {},
-   "he_ddns": {},
-   "hetzner": {},
-   "hexonet": {},
-   "hostingde": {},
-   "huaweicloud": {},
-   "infoblox": {},
-   "infomaniak": {},
-   "internetbs": {},
-   "inwx": {
+   "cn": {
       "fields": {
-         "INWX_Password": {
-            "description": "The INWX password",
+         "CN_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "CN_User": {
+            "description": "User",
+            "type": "string"
+         }
+      },
+      "name": "Core-Networks.de"
+   },
+   "conoha": {
+      "fields": {
+         "CONOHA_IdentityServiceApi": {
+            "description": "Identity Service API. E.g. \"https://identity.xxxx.conoha.io/v2.0\"",
             "type": "string"
          },
-         "INWX_Shared_Secret": {
-            "description": "The INWX shared secret",
+         "CONOHA_Password": {
+            "description": "Password",
             "type": "string"
          },
-         "INWX_User": {
-            "description": "The INWX username",
+         "CONOHA_TenantId": {
+            "description": "TenantId",
+            "type": "string"
+         },
+         "CONOHA_Username": {
+            "description": "Username",
             "type": "string"
          }
       },
-      "name": "INWX"
+      "name": "ConoHa.jp"
    },
-   "ionos": {},
-   "ionos_cloud": {},
-   "ipv64": {},
-   "ispconfig": {},
-   "jd": {},
-   "joker": {},
-   "kappernet": {
+   "constellix": {
       "fields": {
-         "KAPPERNETDNS_Key": {
-            "description": "Your kapper.net API key",
+         "CONSTELLIX_Key": {
+            "description": "API Key",
             "type": "string"
          },
-         "KAPPERNETDNS_Secret": {
-            "description": "Your kapper.net API secret",
+         "CONSTELLIX_Secret": {
+            "description": "API Secret",
             "type": "string"
          }
       },
-      "name": "kapper.net"
+      "name": "Constellix.com"
    },
-   "kas": {},
-   "kinghost": {},
-   "knot": {
+   "cpanel": {
       "fields": {
-         "KNOT_KEY": {
-            "description": "TSIG key (format alg:name:key)",
+         "cPanel_Apitoken": {
+            "description": "API Token",
             "type": "string"
          },
-         "KNOT_SERVER": {
-            "description": "Hostname of the RFC 2136 compatible nameserver",
-            "type": "string"
-         }
-      },
-      "name": "Knot / knsupdate (RFC 2136)"
-   },
-   "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": {
+         "cPanel_Hostname": {
+            "description": "Server URL. E.g. \"https://hostname:port\"",
+            "type": "string"
+         },
+         "cPanel_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "cPanel Server API"
+   },
+   "curanet": {
       "fields": {
-         "NSUPDATE_KEY": {
-            "description": "Path to the nsupdate key file (TSIG key)",
+         "CURANET_AUTHCLIENTID": {
+            "description": "Auth ClientID. Requires scope dns",
             "type": "string"
          },
-         "NSUPDATE_SERVER": {
-            "description": "Hostname of the RFC 2136 compatible nameserver",
+         "CURANET_AUTHSECRET": {
+            "description": "Auth Secret",
+            "type": "string"
+         }
+      },
+      "name": "Curanet.dk"
+   },
+   "cyon": {
+      "fields": {
+         "CY_OTP_Secret": {
+            "description": "OTP token. Only required if using 2FA",
             "type": "string"
          },
-         "NSUPDATE_ZONE": {
-            "description": "DNS zone name (optional)",
-            "optional": 1,
+         "CY_Password": {
+            "description": "API Token",
+            "type": "string"
+         },
+         "CY_Username": {
+            "description": "Username",
             "type": "string"
          }
       },
-      "name": "nsupdate (RFC 2136)"
+      "name": "cyon.ch"
    },
-   "nw": {},
-   "oci": {},
-   "omglol": {},
-   "one": {},
-   "online": {},
-   "openprovider": {},
-   "openstack": {},
-   "opnsense": {},
-   "ovh": {
+   "da": {
       "fields": {
-         "OVH_AK": {
-            "description": "The application key.",
+         "DA_Api": {
+            "description": "API Server URL. E.g. \"https://remoteUser:remotePassword@da.domain.tld:8443\"",
             "type": "string"
          },
-         "OVH_AS": {
-            "description": "The application secret.",
+         "DA_Api_Insecure": {
+            "description": "Insecure TLS. 0: check for cert validity, 1: always accept",
+            "type": "string"
+         }
+      },
+      "name": "DirectAdmin Server API"
+   },
+   "ddnss": {
+      "fields": {
+         "DDNSS_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "DDNSS.de"
+   },
+   "desec": {
+      "fields": {
+         "DDNSS_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "deSEC.io"
+   },
+   "df": {
+      "fields": {
+         "DF_password": {
+            "description": "Password",
             "type": "string"
          },
-         "OVH_CK": {
-            "description": "The consumer key.",
-            "optional": 1,
+         "DF_user": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "DynDnsFree.de"
+   },
+   "dgon": {
+      "fields": {
+         "DO_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "DigitalOcean.com"
+   },
+   "dnsexit": {
+      "fields": {
+         "DNSEXIT_API_KEY": {
+            "description": "API Key",
             "type": "string"
          },
-         "OVH_END_POINT": {
-            "default": "ovh-eu",
-            "description": "The OVH endpoint",
-            "optional": 1,
+         "DNSEXIT_AUTH_PASS": {
+            "description": "Password",
+            "type": "string"
+         },
+         "DNSEXIT_AUTH_USER": {
+            "description": "Username",
             "type": "string"
          }
       },
-      "name": "OVH"
+      "name": "DNSExit.com"
    },
-   "pdns": {
+   "dnshome": {
       "fields": {
-         "PDNS_ServerId": {
+         "DNSHOME_Subdomain": {
+            "description": "Subdomain",
             "type": "string"
          },
-         "PDNS_Token": {
+         "DNSHOME_SubdomainPassword": {
+            "description": "Subdomain Password",
+            "type": "string"
+         }
+      },
+      "name": "dnsHome.de"
+   },
+   "dnsimple": {
+      "fields": {
+         "DNSimple_OAUTH_TOKEN": {
+            "description": "OAuth Token",
+            "type": "string"
+         }
+      },
+      "name": "DNSimple.com"
+   },
+   "dnsservices": {
+      "fields": {
+         "DnsServices_Password": {
+            "description": "Password",
             "type": "string"
          },
-         "PDNS_Ttl": {
-            "type": "integer"
+         "DnsServices_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "DNS.Services"
+   },
+   "doapi": {
+      "fields": {
+         "DO_LETOKEN": {
+            "description": "LetsEncrypt Token",
+            "type": "string"
+         }
+      },
+      "name": "Domain-Offensive do.de"
+   },
+   "domeneshop": {
+      "fields": {
+         "DOMENESHOP_Secret": {
+            "description": "Secret",
+            "type": "string"
          },
-         "PDNS_Url": {
-            "description": "The PowerDNS API endpoint.",
+         "DOMENESHOP_Token": {
+            "description": "Token",
             "type": "string"
          }
       },
-      "name": "PowerDNS server"
+      "name": "DomeneShop.no"
    },
-   "pleskxml": {},
-   "pointhq": {},
-   "porkbun": {
+   "dp": {
       "fields": {
-         "PORKBUN_API_KEY": {
-            "description": "The API Key",
+         "DP_Id": {
+            "description": "Id",
             "type": "string"
          },
-         "PORKBUN_SECRET_API_KEY": {
-            "description": "The API Secret",
-            "type": "string"
-         }
-      },
-      "name": "Porkbun"
-   },
-   "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_Key": {
+            "description": "Key",
+            "type": "string"
+         }
+      },
+      "name": "DNSPod.cn"
+   },
+   "dpi": {
       "fields": {
-         "WORLD4YOU_PASSWORD": {
-            "description": "The World4You password",
+         "DPI_Id": {
+            "description": "Id",
             "type": "string"
          },
-         "WORLD4YOU_USERNAME": {
-            "description": "The World4You customer id or package id",
+         "DPI_Key": {
+            "description": "Key",
+            "type": "string"
+         }
+      },
+      "name": "DNSPod.com"
+   },
+   "dreamhost": {
+      "fields": {
+         "DH_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "DreamHost.com"
+   },
+   "duckdns": {
+      "fields": {
+         "DuckDNS_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "DuckDNS.org"
+   },
+   "durabledns": {
+      "fields": {
+         "DD_API_Key": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "DD_API_User": {
+            "description": "API User",
+            "type": "string"
+         }
+      },
+      "name": "DurableDNS.com"
+   },
+   "dyn": {
+      "fields": {
+         "DYN_Customer": {
+            "description": "Customer",
+            "type": "string"
+         },
+         "DYN_Password": {
+            "description": "Secret",
+            "type": "string"
+         },
+         "DYN_Username": {
+            "description": "API Username",
+            "type": "string"
+         }
+      },
+      "name": "Dyn.com"
+   },
+   "dynu": {
+      "fields": {
+         "Dynu_ClientId": {
+            "description": "Client ID",
+            "type": "string"
+         },
+         "Dynu_Secret": {
+            "description": "Secret",
+            "type": "string"
+         }
+      },
+      "name": "Dynu.com"
+   },
+   "dynv6": {
+      "fields": {
+         "DYNV6_TOKEN": {
+            "description": "REST API token. Get from https://DynV6.com/keys",
+            "type": "string"
+         },
+         "KEY": {
+            "description": "Path to SSH private key file. E.g. \"/root/.ssh/dynv6\"",
             "type": "string"
          }
       },
-      "name": "World4You"
+      "name": "DynV6.com"
    },
-   "yandex360": {},
-   "yc": {},
-   "zilore": {},
-   "zone": {},
-   "zoneedit": {},
-   "zonomi": {}
+   "easydns": {
+      "fields": {
+         "EASYDNS_Key": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "EASYDNS_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "easyDNS.net"
+   },
+   "edgecenter": {
+      "fields": {
+         "EDGECENTER_API_KEY": {
+            "description": "auth APIKey",
+            "type": "string"
+         }
+      },
+      "name": "edgecenter DNS API"
+   },
+   "edgedns": {
+      "fields": {
+         "AKAMAI_ACCESS_TOKEN": {
+            "description": "Access token",
+            "type": "string"
+         },
+         "AKAMAI_CLIENT_SECRET": {
+            "description": "Client secret",
+            "type": "string"
+         },
+         "AKAMAI_CLIENT_TOKEN": {
+            "description": "Client token",
+            "type": "string"
+         },
+         "AKAMAI_HOST": {
+            "description": "Host",
+            "type": "string"
+         }
+      },
+      "name": "Akamai.com Edge DNS"
+   },
+   "euserv": {
+      "fields": {
+         "EUSERV_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "EUSERV_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "EUserv.com"
+   },
+   "exoscale": {
+      "fields": {
+         "EXOSCALE_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "EXOSCALE_SECRET_KEY": {
+            "description": "API Secret key",
+            "type": "string"
+         }
+      },
+      "name": "Exoscale.com"
+   },
+   "fornex": {
+      "fields": {
+         "FORNEX_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "Fornex.com"
+   },
+   "freedns": {
+      "fields": {
+         "FREEDNS_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "FREEDNS_User": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "FreeDNS"
+   },
+   "freemyip": {
+      "fields": {
+         "FREEMYIP_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "FreeMyIP.com"
+   },
+   "gandi_livedns": {
+      "fields": {
+         "GANDI_LIVEDNS_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "Gandi.net LiveDNS"
+   },
+   "gcloud": {
+      "fields": {
+         "CLOUDSDK_ACTIVE_CONFIG_NAME": {
+            "description": "Active config name. E.g. \"default\"",
+            "type": "string"
+         }
+      },
+      "name": "Google Cloud DNS"
+   },
+   "gcore": {
+      "fields": {
+         "GCORE_Key": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "Gcore.com"
+   },
+   "gd": {
+      "fields": {
+         "GD_Key": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "GD_Secret": {
+            "description": "API Secret",
+            "type": "string"
+         }
+      },
+      "name": "GoDaddy.com"
+   },
+   "geoscaling": {
+      "fields": {
+         "GEOSCALING_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "GEOSCALING_Username": {
+            "description": "Username. This is usually NOT an email address",
+            "type": "string"
+         }
+      },
+      "name": "GeoScaling.com"
+   },
+   "googledomains": {
+      "fields": {
+         "GOOGLEDOMAINS_ACCESS_TOKEN": {
+            "description": "API Access Token",
+            "type": "string"
+         },
+         "GOOGLEDOMAINS_ZONE": {
+            "description": "Zone",
+            "type": "string"
+         }
+      },
+      "name": "Google Domains"
+   },
+   "he": {
+      "fields": {
+         "HE_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "HE_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "Hurricane Electric HE.net"
+   },
+   "he_ddns": {
+      "fields": {
+         "HE_DDNS_KEY": {
+            "description": "The DDNS key",
+            "type": "string"
+         }
+      },
+      "name": "Hurricane Electric HE.net DDNS"
+   },
+   "hetzner": {
+      "fields": {
+         "HETZNER_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Hetzner.com"
+   },
+   "hexonet": {
+      "fields": {
+         "Hexonet_Login": {
+            "description": "Login. E.g. \"username!roleId\"",
+            "type": "string"
+         },
+         "Hexonet_Password": {
+            "description": "Role Password",
+            "type": "string"
+         }
+      },
+      "name": "Hexonet.com"
+   },
+   "hostingde": {
+      "fields": {
+         "HOSTINGDE_APIKEY": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "HOSTINGDE_ENDPOINT": {
+            "description": "Endpoint. E.g. \"https://secure.hosting.de\"",
+            "type": "string"
+         }
+      },
+      "name": "Hosting.de"
+   },
+   "huaweicloud": {
+      "fields": {
+         "HUAWEICLOUD_DomainName": {
+            "description": "DomainName",
+            "type": "string"
+         },
+         "HUAWEICLOUD_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "HUAWEICLOUD_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "HuaweiCloud.com"
+   },
+   "infoblox": {
+      "fields": {
+         "Infoblox_Creds": {
+            "description": "Credentials. E.g. \"username:password\"",
+            "type": "string"
+         },
+         "Infoblox_Server": {
+            "description": "Server hostname. IP or FQDN of infoblox appliance",
+            "type": "string"
+         }
+      },
+      "name": "Infoblox.com"
+   },
+   "infomaniak": {
+      "fields": {
+         "INFOMANIAK_API_TOKEN": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Infomaniak.com"
+   },
+   "internetbs": {
+      "fields": {
+         "INTERNETBS_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "INTERNETBS_API_PASSWORD": {
+            "description": "API Password",
+            "type": "string"
+         }
+      },
+      "name": "InternetBS.net"
+   },
+   "inwx": {
+      "fields": {
+         "INWX_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "INWX_User": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "INWX.de"
+   },
+   "ionos": {
+      "fields": {
+         "IONOS_PREFIX": {
+            "description": "Prefix",
+            "type": "string"
+         },
+         "IONOS_SECRET": {
+            "description": "Secret",
+            "type": "string"
+         }
+      },
+      "name": "IONOS.de"
+   },
+   "ionos_cloud": {
+      "fields": {
+         "IONOS_TOKEN": {
+            "description": "API Token.",
+            "type": "string"
+         }
+      },
+      "name": "IONOS Cloud DNS"
+   },
+   "ipv64": {
+      "fields": {
+         "IPv64_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "IPv64.net"
+   },
+   "ispconfig": {
+      "fields": {
+         "ISPC_Api": {
+            "description": "API URL. E.g. \"https://ispc.domain.tld:8080/remote/json.php\"",
+            "type": "string"
+         },
+         "ISPC_Api_Insecure": {
+            "description": "Insecure TLS. 0: check for cert validity, 1: always accept",
+            "type": "string"
+         },
+         "ISPC_Password": {
+            "description": "Remote Password",
+            "type": "string"
+         },
+         "ISPC_User": {
+            "description": "Remote User",
+            "type": "string"
+         }
+      },
+      "name": "ISPConfig Server API"
+   },
+   "jd": {
+      "fields": {
+         "JD_ACCESS_KEY_ID": {
+            "description": "Access key ID",
+            "type": "string"
+         },
+         "JD_ACCESS_KEY_SECRET": {
+            "description": "Access key secret",
+            "type": "string"
+         },
+         "JD_REGION": {
+            "description": "Region. E.g. \"cn-north-1\"",
+            "type": "string"
+         }
+      },
+      "name": "jdcloud.com"
+   },
+   "joker": {
+      "fields": {
+         "JOKER_PASSWORD": {
+            "description": "Password",
+            "type": "string"
+         },
+         "JOKER_USERNAME": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "Joker.com"
+   },
+   "kappernet": {
+      "fields": {
+         "KAPPERNETDNS_Key": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "KAPPERNETDNS_Secret": {
+            "description": "API Secret",
+            "type": "string"
+         }
+      },
+      "name": "kapper.net"
+   },
+   "kas": {
+      "fields": {
+         "KAS_Authdata": {
+            "description": "API auth data",
+            "type": "string"
+         },
+         "KAS_Authtype": {
+            "default": "plain",
+            "description": "API auth type. Default: \"plain\"",
+            "type": "string"
+         },
+         "KAS_Login": {
+            "description": "API login name",
+            "type": "string"
+         }
+      },
+      "name": "All-inkl Kas Server"
+   },
+   "kinghost": {
+      "fields": {
+         "KINGHOST_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "KINGHOST_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "King.host"
+   },
+   "knot": {
+      "fields": {
+         "KNOT_KEY": {
+            "description": "File path to TSIG key",
+            "type": "string"
+         },
+         "KNOT_SERVER": {
+            "default": "localhost",
+            "description": "Server hostname. Default: \"localhost\".",
+            "type": "string"
+         }
+      },
+      "name": "Knot Server knsupdate"
+   },
+   "la": {
+      "fields": {
+         "LA_Id": {
+            "description": "API ID",
+            "type": "string"
+         },
+         "LA_Key": {
+            "description": "API key",
+            "type": "string"
+         }
+      },
+      "name": "dns.la"
+   },
+   "leaseweb": {
+      "fields": {
+         "LSW_Key": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "Leaseweb.com"
+   },
+   "lexicon": {
+      "fields": {
+         "PROVIDER": {
+            "description": "Provider",
+            "type": "string"
+         }
+      },
+      "name": "Lexicon DNS client"
+   },
+   "limacity": {
+      "fields": {
+         "LIMACITY_APIKEY": {
+            "description": "API Key. Note: The API Key must have following roles: dns.admin, domains.reader",
+            "type": "string"
+         }
+      },
+      "name": "lima-city.de"
+   },
+   "linode": {
+      "fields": {
+         "LINODE_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "Linode.com (Old)"
+   },
+   "linode_v4": {
+      "fields": {
+         "LINODE_V4_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "Linode.com"
+   },
+   "loopia": {
+      "fields": {
+         "LOOPIA_Api": {
+            "default": "se",
+            "description": "API URL. E.g. \"https://api.loopia.<TLD>/RPCSERV\" where the <TLD> is one of: com, no, rs, se. Default: \"se\".",
+            "type": "string"
+         },
+         "LOOPIA_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "LOOPIA_User": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "Loopia.se"
+   },
+   "lua": {
+      "fields": {
+         "LUA_Email": {
+            "description": "Email",
+            "type": "string"
+         },
+         "LUA_Key": {
+            "description": "API key",
+            "type": "string"
+         }
+      },
+      "name": "LuaDNS.com"
+   },
+   "maradns": {
+      "fields": {
+         "MARA_DUENDE_PID_PATH": {
+            "description": "Duende PID Path. E.g. \"/run/maradns/etc_maradns_mararc.pid\"",
+            "type": "string"
+         },
+         "MARA_ZONE_FILE": {
+            "description": "Zone file path. E.g. \"/etc/maradns/db.domain.com\"",
+            "type": "string"
+         }
+      },
+      "name": "MaraDNS Server"
+   },
+   "me": {
+      "fields": {
+         "ME_Key": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "ME_Secret": {
+            "description": "API Secret",
+            "type": "string"
+         }
+      },
+      "name": "DnsMadeEasy.com"
+   },
+   "miab": {
+      "fields": {
+         "MIAB_Password": {
+            "description": "Admin password",
+            "type": "string"
+         },
+         "MIAB_Server": {
+            "description": "Server hostname. FQDN of your_MIAB Server",
+            "type": "string"
+         },
+         "MIAB_Username": {
+            "description": "Admin username",
+            "type": "string"
+         }
+      },
+      "name": "Mail-in-a-Box"
+   },
+   "mijnhost": {
+      "fields": {
+         "MIJNHOST_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "mijn.host"
+   },
+   "misaka": {
+      "fields": {
+         "Misaka_Key": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "Misaka.io"
+   },
+   "myapi": {
+      "fields": {
+         "MYAPI_Token": {
+            "description": "API Token. Get API Token from https://example.com/api/",
+            "type": "string"
+         },
+         "MYAPI_Variable2": {
+            "description": "Option 3. Optional.",
+            "optional": "1",
+            "type": "string"
+         }
+      },
+      "name": "Custom API Example"
+   },
+   "mydevil": {
+      "fields": {},
+      "name": "MyDevil.net"
+   },
+   "mydnsjp": {
+      "fields": {
+         "MYDNSJP_MasterID": {
+            "description": "Master ID",
+            "type": "string"
+         },
+         "MYDNSJP_Password": {
+            "description": "Password",
+            "type": "string"
+         }
+      },
+      "name": "MyDNS.JP"
+   },
+   "mythic_beasts": {
+      "fields": {
+         "MB_AK": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "MB_AS": {
+            "description": "API Secret",
+            "type": "string"
+         }
+      },
+      "name": "Mythic-Beasts.com"
+   },
+   "namecheap": {
+      "fields": {
+         "NAMECHEAP_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "NAMECHEAP_SOURCEIP": {
+            "description": "Source IP",
+            "type": "string"
+         },
+         "NAMECHEAP_USERNAME": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "NameCheap.com"
+   },
+   "namecom": {
+      "fields": {
+         "Namecom_Token": {
+            "description": "API Token",
+            "type": "string"
+         },
+         "Namecom_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "Name.com"
+   },
+   "namesilo": {
+      "fields": {
+         "Namesilo_Key": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "NameSilo.com"
+   },
+   "nanelo": {
+      "fields": {
+         "NANELO_TOKEN": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Nanelo.com"
+   },
+   "nederhost": {
+      "fields": {
+         "NederHost_Key": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "NederHost.nl"
+   },
+   "neodigit": {
+      "fields": {
+         "NEODIGIT_API_TOKEN": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Neodigit.net"
+   },
+   "netcup": {
+      "fields": {
+         "NC_Apikey": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "NC_Apipw": {
+            "description": "API Password",
+            "type": "string"
+         },
+         "NC_CID": {
+            "description": "Customer Number",
+            "type": "string"
+         }
+      },
+      "name": "netcup.eu"
+   },
+   "netlify": {
+      "fields": {
+         "NETLIFY_ACCESS_TOKEN": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Netlify.com"
+   },
+   "nic": {
+      "fields": {
+         "NIC_ClientID": {
+            "description": "Client ID",
+            "type": "string"
+         },
+         "NIC_ClientSecret": {
+            "description": "Client Secret",
+            "type": "string"
+         },
+         "NIC_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "NIC_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "nic.ru"
+   },
+   "njalla": {
+      "fields": {
+         "NJALLA_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Njalla"
+   },
+   "nm": {
+      "fields": {
+         "NM_sha256": {
+            "description": "API Password as SHA256 hash",
+            "type": "string"
+         },
+         "NM_user": {
+            "description": "API Username",
+            "type": "string"
+         }
+      },
+      "name": "NameMaster.de"
+   },
+   "nsd": {
+      "fields": {
+         "Nsd_Command": {
+            "description": "Command. E.g. \"sudo nsd-control reload\"",
+            "type": "string"
+         },
+         "Nsd_ZoneFile": {
+            "description": "Zone File path. E.g. \"/etc/nsd/zones/example.com.zone\"",
+            "type": "string"
+         }
+      },
+      "name": "NLnetLabs NSD Server"
+   },
+   "nsone": {
+      "fields": {
+         "NS1_Key": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "ns1.com"
+   },
+   "nsupdate": {
+      "fields": {
+         "NSUPDATE_KEY": {
+            "description": "File path to TSIG key.",
+            "type": "string"
+         },
+         "NSUPDATE_SERVER": {
+            "default": "localhost",
+            "description": "Server hostname. Default: \"localhost\".",
+            "type": "string"
+         },
+         "NSUPDATE_SERVER_PORT": {
+            "default": "53",
+            "description": "Server port. Default: \"53\".",
+            "type": "string"
+         },
+         "NSUPDATE_ZONE": {
+            "description": "Domain zone to update. Optional.",
+            "optional": "1",
+            "type": "string"
+         }
+      },
+      "name": "nsupdate RFC 2136 DynDNS client"
+   },
+   "nw": {
+      "fields": {
+         "NW_API_ENDPOINT": {
+            "default": "https://portal.nexcess.net",
+            "description": "API Endpoint. Default: \"https://portal.nexcess.net\".",
+            "type": "string"
+         },
+         "NW_API_TOKEN": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Nexcess.net (NocWorx)"
+   },
+   "oci": {
+      "fields": {
+         "OCI_CLI_KEY": {
+            "description": "The private API signing key in PEM format. Optional.",
+            "optional": "1",
+            "type": "string"
+         },
+         "OCI_CLI_KEY_FILE": {
+            "description": "Path to private API signing key file in PEM format. Optional.",
+            "optional": "1",
+            "type": "string"
+         },
+         "OCI_CLI_REGION": {
+            "description": "Should point to the tenancy home region. Optional.",
+            "optional": "1",
+            "type": "string"
+         },
+         "OCI_CLI_TENANCY": {
+            "description": "OCID of tenancy that contains the target DNS zone. Optional.",
+            "optional": "1",
+            "type": "string"
+         },
+         "OCI_CLI_USER": {
+            "description": "OCID of user with permission to add/remove records from zones. Optional.",
+            "optional": "1",
+            "type": "string"
+         }
+      },
+      "name": "Oracle Cloud Infrastructure (OCI)"
+   },
+   "omglol": {
+      "fields": {
+         "OMG_Address": {
+            "description": "Address. This is your omg.lol address, without the preceding @ - you can see your list on your dashboard at https://home.omg.lol/dashboard",
+            "type": "string"
+         },
+         "OMG_ApiKey": {
+            "description": "API Key. This is accessible from the bottom of the account page at https://home.omg.lol/account",
+            "type": "string"
+         }
+      },
+      "name": "omg.lol"
+   },
+   "one": {
+      "fields": {
+         "ONECOM_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "ONECOM_User": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "one.com"
+   },
+   "online": {
+      "fields": {
+         "ONLINE_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "online.net"
+   },
+   "openprovider": {
+      "fields": {
+         "OPENPROVIDER_PASSWORDHASH": {
+            "description": "Password hash",
+            "type": "string"
+         },
+         "OPENPROVIDER_USER": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "OpenProvider.eu"
+   },
+   "openstack": {
+      "fields": {
+         "OS_AUTH_URL": {
+            "description": "Auth URL. E.g. \"https://keystone.example.com:5000/\"",
+            "type": "string"
+         },
+         "OS_PASSWORD": {
+            "description": "Password",
+            "type": "string"
+         },
+         "OS_PROJECT_DOMAIN_NAME": {
+            "description": "Project domain name. E.g. \"Default\"",
+            "type": "string"
+         },
+         "OS_PROJECT_NAME": {
+            "description": "Project name",
+            "type": "string"
+         },
+         "OS_USERNAME": {
+            "description": "Username",
+            "type": "string"
+         },
+         "OS_USER_DOMAIN_NAME": {
+            "description": "User domain name. E.g. \"Default\"",
+            "type": "string"
+         }
+      },
+      "name": "OpenStack Designate API"
+   },
+   "opnsense": {
+      "fields": {
+         "OPNs_Api_Insecure": {
+            "description": "Insecure TLS. 0: check for cert validity, 1: always accept",
+            "type": "string"
+         },
+         "OPNs_Host": {
+            "description": "Server Hostname. E.g. \"opnsense.example.com\"",
+            "type": "string"
+         },
+         "OPNs_Key": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "OPNs_Port": {
+            "default": "443",
+            "description": "Port. Default: \"443\".",
+            "type": "string"
+         },
+         "OPNs_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "OPNsense Server"
+   },
+   "ovh": {
+      "fields": {
+         "OVH_AK": {
+            "description": "Application Key",
+            "type": "string"
+         },
+         "OVH_AS": {
+            "description": "Application Secret",
+            "type": "string"
+         },
+         "OVH_CK": {
+            "description": "Consumer Key",
+            "type": "string"
+         },
+         "OVH_END_POINT": {
+            "default": "ovh-eu",
+            "description": "Endpoint. \"ovh-eu\", \"ovh-us\", \"ovh-ca\", \"kimsufi-eu\", \"kimsufi-ca\", \"soyoustart-eu\", \"soyoustart-ca\" or raw URL. Default: \"ovh-eu\".",
+            "type": "string"
+         }
+      },
+      "name": "OVH.com"
+   },
+   "pdns": {
+      "fields": {
+         "PDNS_ServerId": {
+            "description": "Server ID. E.g. \"localhost\"",
+            "type": "string"
+         },
+         "PDNS_Token": {
+            "description": "API Token",
+            "type": "string"
+         },
+         "PDNS_Ttl": {
+            "default": "60",
+            "description": "Domain TTL. Default: \"60\".",
+            "type": "string"
+         },
+         "PDNS_Url": {
+            "description": "API URL. E.g. \"http://ns.example.com:8081\"",
+            "type": "string"
+         }
+      },
+      "name": "PowerDNS Server API"
+   },
+   "pleskxml": {
+      "fields": {
+         "pleskxml_pass": {
+            "description": "Password",
+            "type": "string"
+         },
+         "pleskxml_uri": {
+            "description": "Plesk server API URL. E.g. \"https://your-plesk-server.net:8443/enterprise/control/agent.php\"",
+            "type": "string"
+         },
+         "pleskxml_user": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "Plesk Server API"
+   },
+   "pointhq": {
+      "fields": {
+         "PointHQ_Email": {
+            "description": "Email",
+            "type": "string"
+         },
+         "PointHQ_Key": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "pointhq.com PointDNS"
+   },
+   "porkbun": {
+      "fields": {
+         "PORKBUN_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "PORKBUN_SECRET_API_KEY": {
+            "description": "API Secret",
+            "type": "string"
+         }
+      },
+      "name": "Porkbun.com"
+   },
+   "rackcorp": {
+      "fields": {
+         "RACKCORP_APISECRET": {
+            "description": "API Secret",
+            "type": "string"
+         },
+         "RACKCORP_APIUUID": {
+            "description": "API UUID. See Portal: ADMINISTRATION -> API",
+            "type": "string"
+         }
+      },
+      "name": "RackCorp.com"
+   },
+   "rackspace": {
+      "fields": {
+         "RACKSPACE_Apikey": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "RACKSPACE_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "RackSpace.com"
+   },
+   "rage4": {
+      "fields": {
+         "RAGE4_TOKEN": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "RAGE4_USERNAME": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "rage4.com"
+   },
+   "rcode0": {
+      "fields": {
+         "RCODE0_API_TOKEN": {
+            "description": "API Token",
+            "type": "string"
+         },
+         "RCODE0_TTL": {
+            "default": "60",
+            "description": "TTL. Default: \"60\".",
+            "type": "string"
+         },
+         "RCODE0_URL": {
+            "description": "API URL. E.g. \"https://my.rcodezero.at\"",
+            "type": "string"
+         }
+      },
+      "name": "Rcode0 rcodezero.at"
+   },
+   "regru": {
+      "fields": {
+         "REGRU_API_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "REGRU_API_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "reg.ru"
+   },
+   "scaleway": {
+      "fields": {
+         "SCALEWAY_API_TOKEN": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "ScaleWay.com"
+   },
+   "schlundtech": {
+      "fields": {
+         "SCHLUNDTECH_PASSWORD": {
+            "description": "Password",
+            "type": "string"
+         },
+         "SCHLUNDTECH_USER": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "SchlundTech.de"
+   },
+   "selectel": {
+      "fields": {},
+      "name": ""
+   },
+   "selfhost": {
+      "fields": {
+         "SELFHOSTDNS_MAP": {
+            "description": "Subdomain name",
+            "type": "string"
+         },
+         "SELFHOSTDNS_PASSWORD": {
+            "description": "Password",
+            "type": "string"
+         },
+         "SELFHOSTDNS_USERNAME": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "SelfHost.de"
+   },
+   "servercow": {
+      "fields": {
+         "SERVERCOW_API_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "SERVERCOW_API_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "ServerCow.de"
+   },
+   "simply": {
+      "fields": {
+         "SIMPLY_AccountName": {
+            "description": "Account name",
+            "type": "string"
+         },
+         "SIMPLY_ApiKey": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "Simply.com"
+   },
+   "technitium": {
+      "fields": {
+         "Technitium_Server": {
+            "description": "Server Address",
+            "type": "string"
+         },
+         "Technitium_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Technitium DNS Server"
+   },
+   "tele3": {
+      "fields": {
+         "TELE3_Key": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "TELE3_Secret": {
+            "description": "API Secret",
+            "type": "string"
+         }
+      },
+      "name": "tele3.cz"
+   },
+   "tencent": {
+      "fields": {
+         "Tencent_SecretId": {
+            "description": "Secret ID",
+            "type": "string"
+         },
+         "Tencent_SecretKey": {
+            "description": "Secret Key",
+            "type": "string"
+         }
+      },
+      "name": "Tencent.com"
+   },
+   "timeweb": {
+      "fields": {
+         "TW_Token": {
+            "description": "API JWT token. Get it from the control panel at https://timeweb.cloud/my/api-keys",
+            "type": "string"
+         }
+      },
+      "name": "Timeweb.Cloud"
+   },
+   "transip": {
+      "fields": {
+         "TRANSIP_Key_File": {
+            "description": "Private key file path",
+            "type": "string"
+         },
+         "TRANSIP_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "TransIP.nl"
+   },
+   "udr": {
+      "fields": {
+         "UDR_PASS": {
+            "description": "Password",
+            "type": "string"
+         },
+         "UDR_USER": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "united-domains Reselling"
+   },
+   "ultra": {
+      "fields": {
+         "ULTRA_PWD": {
+            "description": "Password",
+            "type": "string"
+         },
+         "ULTRA_USR": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "UltraDNS.com"
+   },
+   "unoeuro": {
+      "fields": {
+         "UNO_Key": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "UNO_User": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "unoeuro.com"
+   },
+   "variomedia": {
+      "fields": {
+         "VARIOMEDIA_API_TOKEN": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "variomedia.de"
+   },
+   "veesp": {
+      "fields": {
+         "VEESP_Password": {
+            "description": "Password",
+            "type": "string"
+         },
+         "VEESP_User": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "veesp.com"
+   },
+   "vercel": {
+      "fields": {
+         "VERCEL_TOKEN": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "Vercel.com"
+   },
+   "vscale": {
+      "fields": {
+         "VSCALE_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "vscale.io"
+   },
+   "vultr": {
+      "fields": {
+         "VULTR_API_KEY": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "vultr.com"
+   },
+   "websupport": {
+      "fields": {
+         "WS_ApiKey": {
+            "description": "API Key. Called \"Identifier\" in the WS Admin",
+            "type": "string"
+         },
+         "WS_ApiSecret": {
+            "description": "API Secret. Called \"Secret key\" in the WS Admin",
+            "type": "string"
+         }
+      },
+      "name": "Websupport.sk"
+   },
+   "west_cn": {
+      "fields": {
+         "WEST_Key": {
+            "description": "API Key. Set at https://www.west.cn/manager/API/APIconfig.asp",
+            "type": "string"
+         },
+         "WEST_Username": {
+            "description": "API username",
+            "type": "string"
+         }
+      },
+      "name": "West.cn"
+   },
+   "world4you": {
+      "fields": {
+         "WORLD4YOU_PASSWORD": {
+            "description": "Password",
+            "type": "string"
+         },
+         "WORLD4YOU_USERNAME": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "World4You.com"
+   },
+   "yandex360": {
+      "fields": {
+         "YANDEX360_ACCESS_TOKEN": {
+            "description": "OAuth 2.0 Access token. Optional.",
+            "optional": "1",
+            "type": "string"
+         },
+         "YANDEX360_CLIENT_ID": {
+            "description": "OAuth 2.0 ClientID",
+            "type": "string"
+         },
+         "YANDEX360_CLIENT_SECRET": {
+            "description": "OAuth 2.0 Client secret",
+            "type": "string"
+         },
+         "YANDEX360_ORG_ID": {
+            "description": "Organization ID. Optional.",
+            "optional": "1",
+            "type": "string"
+         }
+      },
+      "name": "Yandex 360 for Business DNS API."
+   },
+   "yc": {
+      "fields": {
+         "YC_Folder_ID": {
+            "description": "YC Folder ID",
+            "type": "string"
+         },
+         "YC_SA_ID": {
+            "description": "Service Account ID",
+            "type": "string"
+         },
+         "YC_SA_Key_File_PEM_b64": {
+            "description": "Base64 content of private key file. Use instead of Path to private key file. Optional.",
+            "optional": "1",
+            "type": "string"
+         },
+         "YC_SA_Key_File_Path": {
+            "description": "Private key file path. Optional.",
+            "optional": "1",
+            "type": "string"
+         },
+         "YC_SA_Key_ID": {
+            "description": "Service Account IAM Key ID",
+            "type": "string"
+         },
+         "YC_Zone_ID": {
+            "description": "DNS Zone ID",
+            "type": "string"
+         }
+      },
+      "name": "Yandex Cloud DNS"
+   },
+   "zilore": {
+      "fields": {
+         "Zilore_Key": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "Zilore.com"
+   },
+   "zone": {
+      "fields": {
+         "ZONE_Key": {
+            "description": "API Key",
+            "type": "string"
+         },
+         "ZONE_Username": {
+            "description": "Username",
+            "type": "string"
+         }
+      },
+      "name": "Zone.eu"
+   },
+   "zoneedit": {
+      "fields": {
+         "ZONEEDIT_ID": {
+            "description": "ID",
+            "type": "string"
+         },
+         "ZONEEDIT_Token": {
+            "description": "API Token",
+            "type": "string"
+         }
+      },
+      "name": "ZoneEdit.com"
+   },
+   "zonomi": {
+      "fields": {
+         "ZM_Key": {
+            "description": "API Key",
+            "type": "string"
+         }
+      },
+      "name": "zonomi.com"
+   }
 }
-- 
2.47.3


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


      parent reply	other threads:[~2025-11-03  8:03 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-03  8:03 [pve-devel] [PATCH proxmox-acme 0/2] Automate DNS challenge json schema with script Nicolas Frey
2025-11-03  8:03 ` [pve-devel] [PATCH proxmox-acme 1/2] dns: schema: add generate schema script Nicolas Frey
2025-11-03  8:03 ` Nicolas Frey [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251103080310.60168-3-n.frey@proxmox.com \
    --to=n.frey@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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