From 8aa144bb8504e435e9118859683d21aed59f82e5 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 25 Oct 2022 18:46:20 +0200 Subject: [PATCH] Domainnameshop --- providers/DomainnameshopAPI.png | Bin 0 -> 7434 bytes providers/domainnameshop.go | 66 ++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 providers/DomainnameshopAPI.png create mode 100644 providers/domainnameshop.go diff --git a/providers/DomainnameshopAPI.png b/providers/DomainnameshopAPI.png new file mode 100644 index 0000000000000000000000000000000000000000..bb6b12ca71f2811f667daac7f281a0f8aff3b90e GIT binary patch literal 7434 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 literal 0 HcmV?d00001 diff --git a/providers/domainnameshop.go b/providers/domainnameshop.go new file mode 100644 index 0000000..9222075 --- /dev/null +++ b/providers/domainnameshop.go @@ -0,0 +1,66 @@ +// 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/domainnameshop" + + "git.happydns.org/happydomain/model" +) + +type DomainnameshopAPI struct { + Token string `json:"token,omitempty" happydomain:"label=Token,placeholder=your-domainnameshop-token,required,description=Domainnameshop API Token."` + Secret string `json:"secret,omitempty" happydomain:"label=Secret,placeholder=your-domainnameshop-secret,required,description=Domainnameshop API Secret."` +} + +func (s *DomainnameshopAPI) NewDNSServiceProvider() (providers.DNSServiceProvider, error) { + config := map[string]string{ + "token": s.Token, + "secret": s.Secret, + } + + return providers.CreateDNSProvider(s.DNSControlName(), config, nil) +} + +func (s *DomainnameshopAPI) DNSControlName() string { + return "DOMAINNAMESHOP" +} + +func init() { + RegisterProvider(func() happydns.Provider { + return &DomainnameshopAPI{} + }, ProviderInfos{ + Name: "Domeneshop AS", + Description: "Norwegian registrar and hosting company", + }) +}