From d7fdbf0364dfb38da06eade6a44c52be1d0a5616 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 2 Sep 2022 15:31:48 +0200 Subject: [PATCH] ClouDNS --- providers/ClouDNSAPI.png | Bin 0 -> 7371 bytes providers/cloudns.go | 67 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 providers/ClouDNSAPI.png create mode 100644 providers/cloudns.go diff --git a/providers/ClouDNSAPI.png b/providers/ClouDNSAPI.png new file mode 100644 index 0000000000000000000000000000000000000000..8273fd8f0f2fe16048425c358259a24e1963e88f GIT binary patch literal 7371 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 literal 0 HcmV?d00001 diff --git a/providers/cloudns.go b/providers/cloudns.go new file mode 100644 index 0000000..292e81b --- /dev/null +++ b/providers/cloudns.go @@ -0,0 +1,67 @@ +// Copyright or © or Copr. happyDNS (2021) +// +// contact@happydomain.org +// +// This software is a computer program whose purpose is to provide a modern +// interface to interact with DNS systems. +// +// This software is governed by the CeCILL license under French law and abiding +// by the rules of distribution of free software. You can use, modify and/or +// redistribute the software under the terms of the CeCILL license as +// circulated by CEA, CNRS and INRIA at the following URL +// "http://www.cecill.info". +// +// As a counterpart to the access to the provider code and rights to copy, modify +// and redistribute granted by the license, users are provided only with a +// limited warranty and the software's author, the holder of the economic +// rights, and the successive licensors have only limited liability. +// +// In this respect, the user's attention is drawn to the risks associated with +// loading, using, modifying and/or developing or reproducing the software by +// the user in light of its specific status of free software, that may mean +// that it is complicated to manipulate, and that also therefore means that it +// is reserved for developers and experienced professionals having in-depth +// computer knowledge. Users are therefore encouraged to load and test the +// software's suitability as regards their requirements in conditions enabling +// the security of their systems and/or data to be ensured and, more generally, +// to use and operate it in the same conditions as regards security. +// +// The fact that you are presently reading this means that you have had +// knowledge of the CeCILL license and that you accept its terms. + +package providers // import "happydns.org/providers" + +import ( + "github.com/StackExchange/dnscontrol/v3/providers" + _ "github.com/StackExchange/dnscontrol/v3/providers/cloudns" + + "git.happydns.org/happydomain/model" +) + +type ClouDNSAPI struct { + AuthID string `json:"AuthID,omitempty" happydomain:"label=Auth ID,placeholder=xxxxxxxx,required,description=Your ClouDNS auth ID"` + SubAuthID string `json:"SubAuthID,omitempty" happydomain:"label=Sub Auth ID,placeholder=xxxxxxxx,description=Your ClouDNS subauth token"` + Password string `json:"Password,omitempty" happydomain:"label=Password,placeholder=xxxxxxxx,required,description=Your ClouDNS API password token"` +} + +func (s *ClouDNSAPI) NewDNSServiceProvider() (providers.DNSServiceProvider, error) { + config := map[string]string{ + "auth-id": s.AuthID, + "sub-auth-id": s.SubAuthID, + "auth-password": s.Password, + } + return providers.CreateDNSProvider(s.DNSControlName(), config, nil) +} + +func (s *ClouDNSAPI) DNSControlName() string { + return "CLOUDNS" +} + +func init() { + RegisterProvider(func() happydns.Provider { + return &ClouDNSAPI{} + }, ProviderInfos{ + Name: "ClouDNS", + Description: "ClouDNS LTD is provider of global Managed DNS services, including GeoDNS, Anycast DNS and DDoS protected DNS", + }) +}