From f649977e86abed3d1217316548bce651ab6e4cad Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Thu, 24 Nov 2022 17:44:25 +0100 Subject: [PATCH] providers: Add PowerDNS API provider --- go.mod | 1 + go.sum | 2 ++ providers/PowerdnsAPI.png | Bin 0 -> 19341 bytes providers/powerdns.go | 68 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 providers/PowerdnsAPI.png create mode 100644 providers/powerdns.go diff --git a/go.mod b/go.mod index d0f693c..58b6e0a 100644 --- a/go.mod +++ b/go.mod @@ -75,6 +75,7 @@ require ( github.com/mattn/go-isatty v0.0.16 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mittwald/go-powerdns v0.6.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04 // indirect diff --git a/go.sum b/go.sum index cfa0cf3..a7cea26 100644 --- a/go.sum +++ b/go.sum @@ -204,6 +204,8 @@ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrk github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mittwald/go-powerdns v0.6.2 h1:jNZoW5vPzsQvUQ3BzXEWteHPWoJ1GwcHyF4mSh4YZ7Y= +github.com/mittwald/go-powerdns v0.6.2/go.mod h1:adWJ860laOgm14afg+7V0nCa5NQT37oEYe2HRhoS/CA= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= diff --git a/providers/PowerdnsAPI.png b/providers/PowerdnsAPI.png new file mode 100644 index 0000000000000000000000000000000000000000..a75da7c0e799cac7a1497ba8b2589292a46b0d4b GIT binary patch literal 19341 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