From: Thomas Lamprecht Date: Thu, 7 May 2020 18:39:56 +0000 (+0200) Subject: dns challenge: provide schema for more providers X-Git-Url: https://git.proxmox.com/?p=proxmox-acme.git;a=commitdiff_plain;h=aa7b91cbf0349799d41c6befc1ccec9f76fca003 dns challenge: provide schema for more providers Signed-off-by: Thomas Lamprecht --- diff --git a/src/PVE/ACME/DNSChallenge.pm b/src/PVE/ACME/DNSChallenge.pm index 3bf8300..b720cd7 100644 --- a/src/PVE/ACME/DNSChallenge.pm +++ b/src/PVE/ACME/DNSChallenge.pm @@ -18,17 +18,102 @@ sub type { return 'dns'; } -# describe the data schema of the supported plugins +# describe the data schema of the supported plugins, e.g.: +# 'dnsprovider' => { +# name => 'Full name of Plugin', +# fields => { +# 'FOO_API_KEY' => { +# description => "The API key", +# default => "none", +# optional => 1, +# type => 'string', +# }, +# # ... +# }, +# }, my $plugins = { 'acmedns' => {}, 'acmeproxy' => {}, - 'active24' => {}, - 'ad' => {}, - 'ali' => {}, + 'active24' => { + name => 'Active24', + fields => { + 'ACTIVE24_Token' => { + description => "The API key", + type => 'string', + }, + }, + }, + 'ad' => { + name => 'Alwaysdata', + fields => { + 'AD_API_KEY' => { + description => "The API key", + type => 'string', + }, + }, + }, + 'ali' => { + name => 'Alibaba Cloud DNS', + fields => { + 'Ali_API' => { + description => 'The API endpoint', + default => "https://alidns.aliyuncs.com/", + type => 'string', + optional => 1, + }, + 'Ali_Key' => { + description => 'The API Key', + type => 'string', + }, + 'Ali_Secret' => { + description => 'The API Secret', + type => 'string', + }, + }, + }, 'autodns' => {}, - 'aws' => {}, + 'aws' => { + name => 'Amazon Route53 (AWS)', + fields => { + 'AWS_ACCESS_KEY_ID' => { + name => 'ACCESS_KEY_ID', + description => 'The AWS access-key ID', + type => 'string', + }, + 'AWS_SECRET_ACCESS_KEY' => { + name => 'SECRET_ACCESS_KEY', + description => 'The AWS access-key secret', + type => 'string', + }, + }, + }, 'azure' => {}, - 'cf' => {}, + 'cf' => { + name => 'Cloudflare Managed DNS', + description => 'Either provide global account key and email, or CF API token and Account ID.', + fields => { + 'CF_Key' => { + description => 'The Cloudflare Global API Key', + type => 'string', + }, + 'CF_Email' => { + description => 'The Cloudflare Account EMail-Address', + type => 'string', + }, + 'CF_Token' => { + description => 'The new Cloudflare API Token', + type => 'string', + }, + 'CF_Account_ID' => { + description => 'The new Cloudflare API Account ID', + type => 'string', + }, + 'CF_Zone_ID' => { + description => 'For Zone restricted API Token', + type => 'string', + }, + }, + }, 'clouddns' => {}, 'cloudns' => {}, 'cn' => {}, @@ -58,7 +143,19 @@ my $plugins = { 'freedns' => {}, 'gandi_livedns' => {}, 'gcloud' => {}, - 'gd' => {}, + 'gd' => { + name => 'GoDaddy', + fields => { + 'GD_Key' => { + description => 'The GoDaddy API Key', + type => 'string', + }, + 'GD_Secret' => { + description => 'The GoDaddy API Secret', + type => 'string', + }, + }, + }, 'gdnsdk' => {}, 'he' => {}, 'hexonet' => {},