1
0

acmedns.go 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275
  1. package acmedns
  2. /*
  3. THIS MODULE IS GENERATED AUTOMATICALLY
  4. DO NOT EDIT THIS FILE
  5. */
  6. import (
  7. "encoding/json"
  8. "fmt"
  9. "time"
  10. "github.com/go-acme/lego/v4/challenge"
  11. "github.com/go-acme/lego/v4/providers/dns/alidns"
  12. "github.com/go-acme/lego/v4/providers/dns/allinkl"
  13. "github.com/go-acme/lego/v4/providers/dns/arvancloud"
  14. "github.com/go-acme/lego/v4/providers/dns/auroradns"
  15. "github.com/go-acme/lego/v4/providers/dns/autodns"
  16. "github.com/go-acme/lego/v4/providers/dns/azure"
  17. "github.com/go-acme/lego/v4/providers/dns/azuredns"
  18. "github.com/go-acme/lego/v4/providers/dns/bindman"
  19. "github.com/go-acme/lego/v4/providers/dns/bluecat"
  20. "github.com/go-acme/lego/v4/providers/dns/brandit"
  21. "github.com/go-acme/lego/v4/providers/dns/bunny"
  22. "github.com/go-acme/lego/v4/providers/dns/checkdomain"
  23. "github.com/go-acme/lego/v4/providers/dns/civo"
  24. "github.com/go-acme/lego/v4/providers/dns/clouddns"
  25. "github.com/go-acme/lego/v4/providers/dns/cloudflare"
  26. "github.com/go-acme/lego/v4/providers/dns/cloudns"
  27. "github.com/go-acme/lego/v4/providers/dns/cloudru"
  28. "github.com/go-acme/lego/v4/providers/dns/cloudxns"
  29. "github.com/go-acme/lego/v4/providers/dns/conoha"
  30. "github.com/go-acme/lego/v4/providers/dns/constellix"
  31. "github.com/go-acme/lego/v4/providers/dns/cpanel"
  32. "github.com/go-acme/lego/v4/providers/dns/derak"
  33. "github.com/go-acme/lego/v4/providers/dns/desec"
  34. "github.com/go-acme/lego/v4/providers/dns/digitalocean"
  35. "github.com/go-acme/lego/v4/providers/dns/directadmin"
  36. "github.com/go-acme/lego/v4/providers/dns/dnshomede"
  37. "github.com/go-acme/lego/v4/providers/dns/dnsimple"
  38. "github.com/go-acme/lego/v4/providers/dns/dnsmadeeasy"
  39. "github.com/go-acme/lego/v4/providers/dns/dnspod"
  40. "github.com/go-acme/lego/v4/providers/dns/dode"
  41. "github.com/go-acme/lego/v4/providers/dns/domeneshop"
  42. "github.com/go-acme/lego/v4/providers/dns/dreamhost"
  43. "github.com/go-acme/lego/v4/providers/dns/duckdns"
  44. "github.com/go-acme/lego/v4/providers/dns/dyn"
  45. "github.com/go-acme/lego/v4/providers/dns/dynu"
  46. "github.com/go-acme/lego/v4/providers/dns/easydns"
  47. "github.com/go-acme/lego/v4/providers/dns/efficientip"
  48. "github.com/go-acme/lego/v4/providers/dns/epik"
  49. "github.com/go-acme/lego/v4/providers/dns/freemyip"
  50. "github.com/go-acme/lego/v4/providers/dns/gandi"
  51. "github.com/go-acme/lego/v4/providers/dns/gandiv5"
  52. "github.com/go-acme/lego/v4/providers/dns/gcore"
  53. "github.com/go-acme/lego/v4/providers/dns/glesys"
  54. "github.com/go-acme/lego/v4/providers/dns/godaddy"
  55. "github.com/go-acme/lego/v4/providers/dns/googledomains"
  56. "github.com/go-acme/lego/v4/providers/dns/hetzner"
  57. "github.com/go-acme/lego/v4/providers/dns/hostingde"
  58. "github.com/go-acme/lego/v4/providers/dns/hosttech"
  59. "github.com/go-acme/lego/v4/providers/dns/httpnet"
  60. "github.com/go-acme/lego/v4/providers/dns/huaweicloud"
  61. "github.com/go-acme/lego/v4/providers/dns/hyperone"
  62. "github.com/go-acme/lego/v4/providers/dns/ibmcloud"
  63. "github.com/go-acme/lego/v4/providers/dns/iij"
  64. "github.com/go-acme/lego/v4/providers/dns/iijdpf"
  65. "github.com/go-acme/lego/v4/providers/dns/infoblox"
  66. "github.com/go-acme/lego/v4/providers/dns/infomaniak"
  67. "github.com/go-acme/lego/v4/providers/dns/internetbs"
  68. "github.com/go-acme/lego/v4/providers/dns/inwx"
  69. "github.com/go-acme/lego/v4/providers/dns/ionos"
  70. "github.com/go-acme/lego/v4/providers/dns/ipv64"
  71. "github.com/go-acme/lego/v4/providers/dns/iwantmyname"
  72. "github.com/go-acme/lego/v4/providers/dns/joker"
  73. "github.com/go-acme/lego/v4/providers/dns/liara"
  74. "github.com/go-acme/lego/v4/providers/dns/lightsail"
  75. "github.com/go-acme/lego/v4/providers/dns/limacity"
  76. "github.com/go-acme/lego/v4/providers/dns/linode"
  77. "github.com/go-acme/lego/v4/providers/dns/liquidweb"
  78. "github.com/go-acme/lego/v4/providers/dns/loopia"
  79. "github.com/go-acme/lego/v4/providers/dns/luadns"
  80. "github.com/go-acme/lego/v4/providers/dns/mailinabox"
  81. "github.com/go-acme/lego/v4/providers/dns/metaname"
  82. "github.com/go-acme/lego/v4/providers/dns/mijnhost"
  83. "github.com/go-acme/lego/v4/providers/dns/mittwald"
  84. "github.com/go-acme/lego/v4/providers/dns/mydnsjp"
  85. "github.com/go-acme/lego/v4/providers/dns/namecheap"
  86. "github.com/go-acme/lego/v4/providers/dns/namedotcom"
  87. "github.com/go-acme/lego/v4/providers/dns/namesilo"
  88. "github.com/go-acme/lego/v4/providers/dns/nearlyfreespeech"
  89. "github.com/go-acme/lego/v4/providers/dns/netcup"
  90. "github.com/go-acme/lego/v4/providers/dns/netlify"
  91. "github.com/go-acme/lego/v4/providers/dns/nicmanager"
  92. "github.com/go-acme/lego/v4/providers/dns/nifcloud"
  93. "github.com/go-acme/lego/v4/providers/dns/njalla"
  94. "github.com/go-acme/lego/v4/providers/dns/nodion"
  95. "github.com/go-acme/lego/v4/providers/dns/ns1"
  96. "github.com/go-acme/lego/v4/providers/dns/otc"
  97. "github.com/go-acme/lego/v4/providers/dns/ovh"
  98. "github.com/go-acme/lego/v4/providers/dns/pdns"
  99. "github.com/go-acme/lego/v4/providers/dns/plesk"
  100. "github.com/go-acme/lego/v4/providers/dns/porkbun"
  101. "github.com/go-acme/lego/v4/providers/dns/rackspace"
  102. "github.com/go-acme/lego/v4/providers/dns/rcodezero"
  103. "github.com/go-acme/lego/v4/providers/dns/regru"
  104. "github.com/go-acme/lego/v4/providers/dns/rfc2136"
  105. "github.com/go-acme/lego/v4/providers/dns/rimuhosting"
  106. "github.com/go-acme/lego/v4/providers/dns/route53"
  107. "github.com/go-acme/lego/v4/providers/dns/safedns"
  108. "github.com/go-acme/lego/v4/providers/dns/sakuracloud"
  109. "github.com/go-acme/lego/v4/providers/dns/scaleway"
  110. "github.com/go-acme/lego/v4/providers/dns/selectel"
  111. "github.com/go-acme/lego/v4/providers/dns/selfhostde"
  112. "github.com/go-acme/lego/v4/providers/dns/servercow"
  113. "github.com/go-acme/lego/v4/providers/dns/shellrent"
  114. "github.com/go-acme/lego/v4/providers/dns/simply"
  115. "github.com/go-acme/lego/v4/providers/dns/sonic"
  116. "github.com/go-acme/lego/v4/providers/dns/stackpath"
  117. "github.com/go-acme/lego/v4/providers/dns/tencentcloud"
  118. "github.com/go-acme/lego/v4/providers/dns/transip"
  119. "github.com/go-acme/lego/v4/providers/dns/ultradns"
  120. "github.com/go-acme/lego/v4/providers/dns/variomedia"
  121. "github.com/go-acme/lego/v4/providers/dns/vegadns"
  122. "github.com/go-acme/lego/v4/providers/dns/vercel"
  123. "github.com/go-acme/lego/v4/providers/dns/versio"
  124. "github.com/go-acme/lego/v4/providers/dns/vinyldns"
  125. "github.com/go-acme/lego/v4/providers/dns/vkcloud"
  126. "github.com/go-acme/lego/v4/providers/dns/vscale"
  127. "github.com/go-acme/lego/v4/providers/dns/vultr"
  128. "github.com/go-acme/lego/v4/providers/dns/webnames"
  129. "github.com/go-acme/lego/v4/providers/dns/websupport"
  130. "github.com/go-acme/lego/v4/providers/dns/wedos"
  131. "github.com/go-acme/lego/v4/providers/dns/yandex"
  132. "github.com/go-acme/lego/v4/providers/dns/yandex360"
  133. "github.com/go-acme/lego/v4/providers/dns/yandexcloud"
  134. "github.com/go-acme/lego/v4/providers/dns/zoneee"
  135. "github.com/go-acme/lego/v4/providers/dns/zonomi"
  136. )
  137. //name is the DNS provider name, e.g. cloudflare or gandi
  138. //JSON (js) must be in key-value string that match ConfigableFields Title in providers.json, e.g. {"Username":"far","Password":"boo"}
  139. func GetDNSProviderByJsonConfig(name string, js string, propagationTimeout int64, pollingInterval int64)(challenge.Provider, error){
  140. pgDuration := time.Duration(propagationTimeout) * time.Second
  141. plInterval := time.Duration(pollingInterval) * time.Second
  142. switch name {
  143. case "alidns":
  144. cfg := alidns.NewDefaultConfig()
  145. err := json.Unmarshal([]byte(js), &cfg)
  146. if err != nil {
  147. return nil, err
  148. }
  149. cfg.PropagationTimeout = pgDuration
  150. cfg.PollingInterval = plInterval
  151. return alidns.NewDNSProviderConfig(cfg)
  152. case "allinkl":
  153. cfg := allinkl.NewDefaultConfig()
  154. err := json.Unmarshal([]byte(js), &cfg)
  155. if err != nil {
  156. return nil, err
  157. }
  158. cfg.PropagationTimeout = pgDuration
  159. cfg.PollingInterval = plInterval
  160. return allinkl.NewDNSProviderConfig(cfg)
  161. case "arvancloud":
  162. cfg := arvancloud.NewDefaultConfig()
  163. err := json.Unmarshal([]byte(js), &cfg)
  164. if err != nil {
  165. return nil, err
  166. }
  167. cfg.PropagationTimeout = pgDuration
  168. cfg.PollingInterval = plInterval
  169. return arvancloud.NewDNSProviderConfig(cfg)
  170. case "auroradns":
  171. cfg := auroradns.NewDefaultConfig()
  172. err := json.Unmarshal([]byte(js), &cfg)
  173. if err != nil {
  174. return nil, err
  175. }
  176. cfg.PropagationTimeout = pgDuration
  177. cfg.PollingInterval = plInterval
  178. return auroradns.NewDNSProviderConfig(cfg)
  179. case "autodns":
  180. cfg := autodns.NewDefaultConfig()
  181. err := json.Unmarshal([]byte(js), &cfg)
  182. if err != nil {
  183. return nil, err
  184. }
  185. cfg.PropagationTimeout = pgDuration
  186. cfg.PollingInterval = plInterval
  187. return autodns.NewDNSProviderConfig(cfg)
  188. case "azure":
  189. cfg := azure.NewDefaultConfig()
  190. err := json.Unmarshal([]byte(js), &cfg)
  191. if err != nil {
  192. return nil, err
  193. }
  194. cfg.PropagationTimeout = pgDuration
  195. cfg.PollingInterval = plInterval
  196. return azure.NewDNSProviderConfig(cfg)
  197. case "azuredns":
  198. cfg := azuredns.NewDefaultConfig()
  199. err := json.Unmarshal([]byte(js), &cfg)
  200. if err != nil {
  201. return nil, err
  202. }
  203. cfg.PropagationTimeout = pgDuration
  204. cfg.PollingInterval = plInterval
  205. return azuredns.NewDNSProviderConfig(cfg)
  206. case "bindman":
  207. cfg := bindman.NewDefaultConfig()
  208. err := json.Unmarshal([]byte(js), &cfg)
  209. if err != nil {
  210. return nil, err
  211. }
  212. cfg.PropagationTimeout = pgDuration
  213. cfg.PollingInterval = plInterval
  214. return bindman.NewDNSProviderConfig(cfg)
  215. case "bluecat":
  216. cfg := bluecat.NewDefaultConfig()
  217. err := json.Unmarshal([]byte(js), &cfg)
  218. if err != nil {
  219. return nil, err
  220. }
  221. cfg.PropagationTimeout = pgDuration
  222. cfg.PollingInterval = plInterval
  223. return bluecat.NewDNSProviderConfig(cfg)
  224. case "brandit":
  225. cfg := brandit.NewDefaultConfig()
  226. err := json.Unmarshal([]byte(js), &cfg)
  227. if err != nil {
  228. return nil, err
  229. }
  230. cfg.PropagationTimeout = pgDuration
  231. cfg.PollingInterval = plInterval
  232. return brandit.NewDNSProviderConfig(cfg)
  233. case "bunny":
  234. cfg := bunny.NewDefaultConfig()
  235. err := json.Unmarshal([]byte(js), &cfg)
  236. if err != nil {
  237. return nil, err
  238. }
  239. cfg.PropagationTimeout = pgDuration
  240. cfg.PollingInterval = plInterval
  241. return bunny.NewDNSProviderConfig(cfg)
  242. case "checkdomain":
  243. cfg := checkdomain.NewDefaultConfig()
  244. err := json.Unmarshal([]byte(js), &cfg)
  245. if err != nil {
  246. return nil, err
  247. }
  248. cfg.PropagationTimeout = pgDuration
  249. cfg.PollingInterval = plInterval
  250. return checkdomain.NewDNSProviderConfig(cfg)
  251. case "civo":
  252. cfg := civo.NewDefaultConfig()
  253. err := json.Unmarshal([]byte(js), &cfg)
  254. if err != nil {
  255. return nil, err
  256. }
  257. cfg.PropagationTimeout = pgDuration
  258. cfg.PollingInterval = plInterval
  259. return civo.NewDNSProviderConfig(cfg)
  260. case "clouddns":
  261. cfg := clouddns.NewDefaultConfig()
  262. err := json.Unmarshal([]byte(js), &cfg)
  263. if err != nil {
  264. return nil, err
  265. }
  266. cfg.PropagationTimeout = pgDuration
  267. cfg.PollingInterval = plInterval
  268. return clouddns.NewDNSProviderConfig(cfg)
  269. case "cloudflare":
  270. cfg := cloudflare.NewDefaultConfig()
  271. err := json.Unmarshal([]byte(js), &cfg)
  272. if err != nil {
  273. return nil, err
  274. }
  275. cfg.PropagationTimeout = pgDuration
  276. cfg.PollingInterval = plInterval
  277. return cloudflare.NewDNSProviderConfig(cfg)
  278. case "cloudns":
  279. cfg := cloudns.NewDefaultConfig()
  280. err := json.Unmarshal([]byte(js), &cfg)
  281. if err != nil {
  282. return nil, err
  283. }
  284. cfg.PropagationTimeout = pgDuration
  285. cfg.PollingInterval = plInterval
  286. return cloudns.NewDNSProviderConfig(cfg)
  287. case "cloudru":
  288. cfg := cloudru.NewDefaultConfig()
  289. err := json.Unmarshal([]byte(js), &cfg)
  290. if err != nil {
  291. return nil, err
  292. }
  293. cfg.PropagationTimeout = pgDuration
  294. cfg.PollingInterval = plInterval
  295. return cloudru.NewDNSProviderConfig(cfg)
  296. case "cloudxns":
  297. cfg := cloudxns.NewDefaultConfig()
  298. err := json.Unmarshal([]byte(js), &cfg)
  299. if err != nil {
  300. return nil, err
  301. }
  302. cfg.PropagationTimeout = pgDuration
  303. cfg.PollingInterval = plInterval
  304. return cloudxns.NewDNSProviderConfig(cfg)
  305. case "conoha":
  306. cfg := conoha.NewDefaultConfig()
  307. err := json.Unmarshal([]byte(js), &cfg)
  308. if err != nil {
  309. return nil, err
  310. }
  311. cfg.PropagationTimeout = pgDuration
  312. cfg.PollingInterval = plInterval
  313. return conoha.NewDNSProviderConfig(cfg)
  314. case "constellix":
  315. cfg := constellix.NewDefaultConfig()
  316. err := json.Unmarshal([]byte(js), &cfg)
  317. if err != nil {
  318. return nil, err
  319. }
  320. cfg.PropagationTimeout = pgDuration
  321. cfg.PollingInterval = plInterval
  322. return constellix.NewDNSProviderConfig(cfg)
  323. case "cpanel":
  324. cfg := cpanel.NewDefaultConfig()
  325. err := json.Unmarshal([]byte(js), &cfg)
  326. if err != nil {
  327. return nil, err
  328. }
  329. cfg.PropagationTimeout = pgDuration
  330. cfg.PollingInterval = plInterval
  331. return cpanel.NewDNSProviderConfig(cfg)
  332. case "derak":
  333. cfg := derak.NewDefaultConfig()
  334. err := json.Unmarshal([]byte(js), &cfg)
  335. if err != nil {
  336. return nil, err
  337. }
  338. cfg.PropagationTimeout = pgDuration
  339. cfg.PollingInterval = plInterval
  340. return derak.NewDNSProviderConfig(cfg)
  341. case "desec":
  342. cfg := desec.NewDefaultConfig()
  343. err := json.Unmarshal([]byte(js), &cfg)
  344. if err != nil {
  345. return nil, err
  346. }
  347. cfg.PropagationTimeout = pgDuration
  348. cfg.PollingInterval = plInterval
  349. return desec.NewDNSProviderConfig(cfg)
  350. case "digitalocean":
  351. cfg := digitalocean.NewDefaultConfig()
  352. err := json.Unmarshal([]byte(js), &cfg)
  353. if err != nil {
  354. return nil, err
  355. }
  356. cfg.PropagationTimeout = pgDuration
  357. cfg.PollingInterval = plInterval
  358. return digitalocean.NewDNSProviderConfig(cfg)
  359. case "directadmin":
  360. cfg := directadmin.NewDefaultConfig()
  361. err := json.Unmarshal([]byte(js), &cfg)
  362. if err != nil {
  363. return nil, err
  364. }
  365. cfg.PropagationTimeout = pgDuration
  366. cfg.PollingInterval = plInterval
  367. return directadmin.NewDNSProviderConfig(cfg)
  368. case "dnshomede":
  369. cfg := dnshomede.NewDefaultConfig()
  370. err := json.Unmarshal([]byte(js), &cfg)
  371. if err != nil {
  372. return nil, err
  373. }
  374. cfg.PropagationTimeout = pgDuration
  375. cfg.PollingInterval = plInterval
  376. return dnshomede.NewDNSProviderConfig(cfg)
  377. case "dnsimple":
  378. cfg := dnsimple.NewDefaultConfig()
  379. err := json.Unmarshal([]byte(js), &cfg)
  380. if err != nil {
  381. return nil, err
  382. }
  383. cfg.PropagationTimeout = pgDuration
  384. cfg.PollingInterval = plInterval
  385. return dnsimple.NewDNSProviderConfig(cfg)
  386. case "dnsmadeeasy":
  387. cfg := dnsmadeeasy.NewDefaultConfig()
  388. err := json.Unmarshal([]byte(js), &cfg)
  389. if err != nil {
  390. return nil, err
  391. }
  392. cfg.PropagationTimeout = pgDuration
  393. cfg.PollingInterval = plInterval
  394. return dnsmadeeasy.NewDNSProviderConfig(cfg)
  395. case "dnspod":
  396. cfg := dnspod.NewDefaultConfig()
  397. err := json.Unmarshal([]byte(js), &cfg)
  398. if err != nil {
  399. return nil, err
  400. }
  401. cfg.PropagationTimeout = pgDuration
  402. cfg.PollingInterval = plInterval
  403. return dnspod.NewDNSProviderConfig(cfg)
  404. case "dode":
  405. cfg := dode.NewDefaultConfig()
  406. err := json.Unmarshal([]byte(js), &cfg)
  407. if err != nil {
  408. return nil, err
  409. }
  410. cfg.PropagationTimeout = pgDuration
  411. cfg.PollingInterval = plInterval
  412. return dode.NewDNSProviderConfig(cfg)
  413. case "domeneshop":
  414. cfg := domeneshop.NewDefaultConfig()
  415. err := json.Unmarshal([]byte(js), &cfg)
  416. if err != nil {
  417. return nil, err
  418. }
  419. cfg.PropagationTimeout = pgDuration
  420. cfg.PollingInterval = plInterval
  421. return domeneshop.NewDNSProviderConfig(cfg)
  422. case "dreamhost":
  423. cfg := dreamhost.NewDefaultConfig()
  424. err := json.Unmarshal([]byte(js), &cfg)
  425. if err != nil {
  426. return nil, err
  427. }
  428. cfg.PropagationTimeout = pgDuration
  429. cfg.PollingInterval = plInterval
  430. return dreamhost.NewDNSProviderConfig(cfg)
  431. case "duckdns":
  432. cfg := duckdns.NewDefaultConfig()
  433. err := json.Unmarshal([]byte(js), &cfg)
  434. if err != nil {
  435. return nil, err
  436. }
  437. cfg.PropagationTimeout = pgDuration
  438. cfg.PollingInterval = plInterval
  439. return duckdns.NewDNSProviderConfig(cfg)
  440. case "dyn":
  441. cfg := dyn.NewDefaultConfig()
  442. err := json.Unmarshal([]byte(js), &cfg)
  443. if err != nil {
  444. return nil, err
  445. }
  446. cfg.PropagationTimeout = pgDuration
  447. cfg.PollingInterval = plInterval
  448. return dyn.NewDNSProviderConfig(cfg)
  449. case "dynu":
  450. cfg := dynu.NewDefaultConfig()
  451. err := json.Unmarshal([]byte(js), &cfg)
  452. if err != nil {
  453. return nil, err
  454. }
  455. cfg.PropagationTimeout = pgDuration
  456. cfg.PollingInterval = plInterval
  457. return dynu.NewDNSProviderConfig(cfg)
  458. case "easydns":
  459. cfg := easydns.NewDefaultConfig()
  460. err := json.Unmarshal([]byte(js), &cfg)
  461. if err != nil {
  462. return nil, err
  463. }
  464. cfg.PropagationTimeout = pgDuration
  465. cfg.PollingInterval = plInterval
  466. return easydns.NewDNSProviderConfig(cfg)
  467. case "efficientip":
  468. cfg := efficientip.NewDefaultConfig()
  469. err := json.Unmarshal([]byte(js), &cfg)
  470. if err != nil {
  471. return nil, err
  472. }
  473. cfg.PropagationTimeout = pgDuration
  474. cfg.PollingInterval = plInterval
  475. return efficientip.NewDNSProviderConfig(cfg)
  476. case "epik":
  477. cfg := epik.NewDefaultConfig()
  478. err := json.Unmarshal([]byte(js), &cfg)
  479. if err != nil {
  480. return nil, err
  481. }
  482. cfg.PropagationTimeout = pgDuration
  483. cfg.PollingInterval = plInterval
  484. return epik.NewDNSProviderConfig(cfg)
  485. case "freemyip":
  486. cfg := freemyip.NewDefaultConfig()
  487. err := json.Unmarshal([]byte(js), &cfg)
  488. if err != nil {
  489. return nil, err
  490. }
  491. cfg.PropagationTimeout = pgDuration
  492. cfg.PollingInterval = plInterval
  493. return freemyip.NewDNSProviderConfig(cfg)
  494. case "gandi":
  495. cfg := gandi.NewDefaultConfig()
  496. err := json.Unmarshal([]byte(js), &cfg)
  497. if err != nil {
  498. return nil, err
  499. }
  500. cfg.PropagationTimeout = pgDuration
  501. cfg.PollingInterval = plInterval
  502. return gandi.NewDNSProviderConfig(cfg)
  503. case "gandiv5":
  504. cfg := gandiv5.NewDefaultConfig()
  505. err := json.Unmarshal([]byte(js), &cfg)
  506. if err != nil {
  507. return nil, err
  508. }
  509. cfg.PropagationTimeout = pgDuration
  510. cfg.PollingInterval = plInterval
  511. return gandiv5.NewDNSProviderConfig(cfg)
  512. case "gcore":
  513. cfg := gcore.NewDefaultConfig()
  514. err := json.Unmarshal([]byte(js), &cfg)
  515. if err != nil {
  516. return nil, err
  517. }
  518. cfg.PropagationTimeout = pgDuration
  519. cfg.PollingInterval = plInterval
  520. return gcore.NewDNSProviderConfig(cfg)
  521. case "glesys":
  522. cfg := glesys.NewDefaultConfig()
  523. err := json.Unmarshal([]byte(js), &cfg)
  524. if err != nil {
  525. return nil, err
  526. }
  527. cfg.PropagationTimeout = pgDuration
  528. cfg.PollingInterval = plInterval
  529. return glesys.NewDNSProviderConfig(cfg)
  530. case "godaddy":
  531. cfg := godaddy.NewDefaultConfig()
  532. err := json.Unmarshal([]byte(js), &cfg)
  533. if err != nil {
  534. return nil, err
  535. }
  536. cfg.PropagationTimeout = pgDuration
  537. cfg.PollingInterval = plInterval
  538. return godaddy.NewDNSProviderConfig(cfg)
  539. case "googledomains":
  540. cfg := googledomains.NewDefaultConfig()
  541. err := json.Unmarshal([]byte(js), &cfg)
  542. if err != nil {
  543. return nil, err
  544. }
  545. cfg.PropagationTimeout = pgDuration
  546. cfg.PollingInterval = plInterval
  547. return googledomains.NewDNSProviderConfig(cfg)
  548. case "hetzner":
  549. cfg := hetzner.NewDefaultConfig()
  550. err := json.Unmarshal([]byte(js), &cfg)
  551. if err != nil {
  552. return nil, err
  553. }
  554. cfg.PropagationTimeout = pgDuration
  555. cfg.PollingInterval = plInterval
  556. return hetzner.NewDNSProviderConfig(cfg)
  557. case "hostingde":
  558. cfg := hostingde.NewDefaultConfig()
  559. err := json.Unmarshal([]byte(js), &cfg)
  560. if err != nil {
  561. return nil, err
  562. }
  563. cfg.PropagationTimeout = pgDuration
  564. cfg.PollingInterval = plInterval
  565. return hostingde.NewDNSProviderConfig(cfg)
  566. case "hosttech":
  567. cfg := hosttech.NewDefaultConfig()
  568. err := json.Unmarshal([]byte(js), &cfg)
  569. if err != nil {
  570. return nil, err
  571. }
  572. cfg.PropagationTimeout = pgDuration
  573. cfg.PollingInterval = plInterval
  574. return hosttech.NewDNSProviderConfig(cfg)
  575. case "httpnet":
  576. cfg := httpnet.NewDefaultConfig()
  577. err := json.Unmarshal([]byte(js), &cfg)
  578. if err != nil {
  579. return nil, err
  580. }
  581. cfg.PropagationTimeout = pgDuration
  582. cfg.PollingInterval = plInterval
  583. return httpnet.NewDNSProviderConfig(cfg)
  584. case "huaweicloud":
  585. cfg := huaweicloud.NewDefaultConfig()
  586. err := json.Unmarshal([]byte(js), &cfg)
  587. if err != nil {
  588. return nil, err
  589. }
  590. cfg.PropagationTimeout = pgDuration
  591. cfg.PollingInterval = plInterval
  592. return huaweicloud.NewDNSProviderConfig(cfg)
  593. case "hyperone":
  594. cfg := hyperone.NewDefaultConfig()
  595. err := json.Unmarshal([]byte(js), &cfg)
  596. if err != nil {
  597. return nil, err
  598. }
  599. cfg.PropagationTimeout = pgDuration
  600. cfg.PollingInterval = plInterval
  601. return hyperone.NewDNSProviderConfig(cfg)
  602. case "ibmcloud":
  603. cfg := ibmcloud.NewDefaultConfig()
  604. err := json.Unmarshal([]byte(js), &cfg)
  605. if err != nil {
  606. return nil, err
  607. }
  608. cfg.PropagationTimeout = pgDuration
  609. cfg.PollingInterval = plInterval
  610. return ibmcloud.NewDNSProviderConfig(cfg)
  611. case "iij":
  612. cfg := iij.NewDefaultConfig()
  613. err := json.Unmarshal([]byte(js), &cfg)
  614. if err != nil {
  615. return nil, err
  616. }
  617. cfg.PropagationTimeout = pgDuration
  618. cfg.PollingInterval = plInterval
  619. return iij.NewDNSProviderConfig(cfg)
  620. case "iijdpf":
  621. cfg := iijdpf.NewDefaultConfig()
  622. err := json.Unmarshal([]byte(js), &cfg)
  623. if err != nil {
  624. return nil, err
  625. }
  626. cfg.PropagationTimeout = pgDuration
  627. cfg.PollingInterval = plInterval
  628. return iijdpf.NewDNSProviderConfig(cfg)
  629. case "infoblox":
  630. cfg := infoblox.NewDefaultConfig()
  631. err := json.Unmarshal([]byte(js), &cfg)
  632. if err != nil {
  633. return nil, err
  634. }
  635. cfg.PropagationTimeout = pgDuration
  636. cfg.PollingInterval = plInterval
  637. return infoblox.NewDNSProviderConfig(cfg)
  638. case "infomaniak":
  639. cfg := infomaniak.NewDefaultConfig()
  640. err := json.Unmarshal([]byte(js), &cfg)
  641. if err != nil {
  642. return nil, err
  643. }
  644. cfg.PropagationTimeout = pgDuration
  645. cfg.PollingInterval = plInterval
  646. return infomaniak.NewDNSProviderConfig(cfg)
  647. case "internetbs":
  648. cfg := internetbs.NewDefaultConfig()
  649. err := json.Unmarshal([]byte(js), &cfg)
  650. if err != nil {
  651. return nil, err
  652. }
  653. cfg.PropagationTimeout = pgDuration
  654. cfg.PollingInterval = plInterval
  655. return internetbs.NewDNSProviderConfig(cfg)
  656. case "inwx":
  657. cfg := inwx.NewDefaultConfig()
  658. err := json.Unmarshal([]byte(js), &cfg)
  659. if err != nil {
  660. return nil, err
  661. }
  662. cfg.PropagationTimeout = pgDuration
  663. cfg.PollingInterval = plInterval
  664. return inwx.NewDNSProviderConfig(cfg)
  665. case "ionos":
  666. cfg := ionos.NewDefaultConfig()
  667. err := json.Unmarshal([]byte(js), &cfg)
  668. if err != nil {
  669. return nil, err
  670. }
  671. cfg.PropagationTimeout = pgDuration
  672. cfg.PollingInterval = plInterval
  673. return ionos.NewDNSProviderConfig(cfg)
  674. case "ipv64":
  675. cfg := ipv64.NewDefaultConfig()
  676. err := json.Unmarshal([]byte(js), &cfg)
  677. if err != nil {
  678. return nil, err
  679. }
  680. cfg.PropagationTimeout = pgDuration
  681. cfg.PollingInterval = plInterval
  682. return ipv64.NewDNSProviderConfig(cfg)
  683. case "iwantmyname":
  684. cfg := iwantmyname.NewDefaultConfig()
  685. err := json.Unmarshal([]byte(js), &cfg)
  686. if err != nil {
  687. return nil, err
  688. }
  689. cfg.PropagationTimeout = pgDuration
  690. cfg.PollingInterval = plInterval
  691. return iwantmyname.NewDNSProviderConfig(cfg)
  692. case "joker":
  693. cfg := joker.NewDefaultConfig()
  694. err := json.Unmarshal([]byte(js), &cfg)
  695. if err != nil {
  696. return nil, err
  697. }
  698. cfg.PropagationTimeout = pgDuration
  699. cfg.PollingInterval = plInterval
  700. return joker.NewDNSProviderConfig(cfg)
  701. case "liara":
  702. cfg := liara.NewDefaultConfig()
  703. err := json.Unmarshal([]byte(js), &cfg)
  704. if err != nil {
  705. return nil, err
  706. }
  707. cfg.PropagationTimeout = pgDuration
  708. cfg.PollingInterval = plInterval
  709. return liara.NewDNSProviderConfig(cfg)
  710. case "lightsail":
  711. cfg := lightsail.NewDefaultConfig()
  712. err := json.Unmarshal([]byte(js), &cfg)
  713. if err != nil {
  714. return nil, err
  715. }
  716. cfg.PropagationTimeout = pgDuration
  717. cfg.PollingInterval = plInterval
  718. return lightsail.NewDNSProviderConfig(cfg)
  719. case "limacity":
  720. cfg := limacity.NewDefaultConfig()
  721. err := json.Unmarshal([]byte(js), &cfg)
  722. if err != nil {
  723. return nil, err
  724. }
  725. cfg.PropagationTimeout = pgDuration
  726. cfg.PollingInterval = plInterval
  727. return limacity.NewDNSProviderConfig(cfg)
  728. case "linode":
  729. cfg := linode.NewDefaultConfig()
  730. err := json.Unmarshal([]byte(js), &cfg)
  731. if err != nil {
  732. return nil, err
  733. }
  734. cfg.PropagationTimeout = pgDuration
  735. cfg.PollingInterval = plInterval
  736. return linode.NewDNSProviderConfig(cfg)
  737. case "liquidweb":
  738. cfg := liquidweb.NewDefaultConfig()
  739. err := json.Unmarshal([]byte(js), &cfg)
  740. if err != nil {
  741. return nil, err
  742. }
  743. cfg.PropagationTimeout = pgDuration
  744. cfg.PollingInterval = plInterval
  745. return liquidweb.NewDNSProviderConfig(cfg)
  746. case "loopia":
  747. cfg := loopia.NewDefaultConfig()
  748. err := json.Unmarshal([]byte(js), &cfg)
  749. if err != nil {
  750. return nil, err
  751. }
  752. cfg.PropagationTimeout = pgDuration
  753. cfg.PollingInterval = plInterval
  754. return loopia.NewDNSProviderConfig(cfg)
  755. case "luadns":
  756. cfg := luadns.NewDefaultConfig()
  757. err := json.Unmarshal([]byte(js), &cfg)
  758. if err != nil {
  759. return nil, err
  760. }
  761. cfg.PropagationTimeout = pgDuration
  762. cfg.PollingInterval = plInterval
  763. return luadns.NewDNSProviderConfig(cfg)
  764. case "mailinabox":
  765. cfg := mailinabox.NewDefaultConfig()
  766. err := json.Unmarshal([]byte(js), &cfg)
  767. if err != nil {
  768. return nil, err
  769. }
  770. cfg.PropagationTimeout = pgDuration
  771. cfg.PollingInterval = plInterval
  772. return mailinabox.NewDNSProviderConfig(cfg)
  773. case "metaname":
  774. cfg := metaname.NewDefaultConfig()
  775. err := json.Unmarshal([]byte(js), &cfg)
  776. if err != nil {
  777. return nil, err
  778. }
  779. cfg.PropagationTimeout = pgDuration
  780. cfg.PollingInterval = plInterval
  781. return metaname.NewDNSProviderConfig(cfg)
  782. case "mijnhost":
  783. cfg := mijnhost.NewDefaultConfig()
  784. err := json.Unmarshal([]byte(js), &cfg)
  785. if err != nil {
  786. return nil, err
  787. }
  788. cfg.PropagationTimeout = pgDuration
  789. cfg.PollingInterval = plInterval
  790. return mijnhost.NewDNSProviderConfig(cfg)
  791. case "mittwald":
  792. cfg := mittwald.NewDefaultConfig()
  793. err := json.Unmarshal([]byte(js), &cfg)
  794. if err != nil {
  795. return nil, err
  796. }
  797. cfg.PropagationTimeout = pgDuration
  798. cfg.PollingInterval = plInterval
  799. return mittwald.NewDNSProviderConfig(cfg)
  800. case "mydnsjp":
  801. cfg := mydnsjp.NewDefaultConfig()
  802. err := json.Unmarshal([]byte(js), &cfg)
  803. if err != nil {
  804. return nil, err
  805. }
  806. cfg.PropagationTimeout = pgDuration
  807. cfg.PollingInterval = plInterval
  808. return mydnsjp.NewDNSProviderConfig(cfg)
  809. case "namecheap":
  810. cfg := namecheap.NewDefaultConfig()
  811. err := json.Unmarshal([]byte(js), &cfg)
  812. if err != nil {
  813. return nil, err
  814. }
  815. cfg.PropagationTimeout = pgDuration
  816. cfg.PollingInterval = plInterval
  817. return namecheap.NewDNSProviderConfig(cfg)
  818. case "namedotcom":
  819. cfg := namedotcom.NewDefaultConfig()
  820. err := json.Unmarshal([]byte(js), &cfg)
  821. if err != nil {
  822. return nil, err
  823. }
  824. cfg.PropagationTimeout = pgDuration
  825. cfg.PollingInterval = plInterval
  826. return namedotcom.NewDNSProviderConfig(cfg)
  827. case "namesilo":
  828. cfg := namesilo.NewDefaultConfig()
  829. err := json.Unmarshal([]byte(js), &cfg)
  830. if err != nil {
  831. return nil, err
  832. }
  833. cfg.PropagationTimeout = pgDuration
  834. cfg.PollingInterval = plInterval
  835. return namesilo.NewDNSProviderConfig(cfg)
  836. case "nearlyfreespeech":
  837. cfg := nearlyfreespeech.NewDefaultConfig()
  838. err := json.Unmarshal([]byte(js), &cfg)
  839. if err != nil {
  840. return nil, err
  841. }
  842. cfg.PropagationTimeout = pgDuration
  843. cfg.PollingInterval = plInterval
  844. return nearlyfreespeech.NewDNSProviderConfig(cfg)
  845. case "netcup":
  846. cfg := netcup.NewDefaultConfig()
  847. err := json.Unmarshal([]byte(js), &cfg)
  848. if err != nil {
  849. return nil, err
  850. }
  851. cfg.PropagationTimeout = pgDuration
  852. cfg.PollingInterval = plInterval
  853. return netcup.NewDNSProviderConfig(cfg)
  854. case "netlify":
  855. cfg := netlify.NewDefaultConfig()
  856. err := json.Unmarshal([]byte(js), &cfg)
  857. if err != nil {
  858. return nil, err
  859. }
  860. cfg.PropagationTimeout = pgDuration
  861. cfg.PollingInterval = plInterval
  862. return netlify.NewDNSProviderConfig(cfg)
  863. case "nicmanager":
  864. cfg := nicmanager.NewDefaultConfig()
  865. err := json.Unmarshal([]byte(js), &cfg)
  866. if err != nil {
  867. return nil, err
  868. }
  869. cfg.PropagationTimeout = pgDuration
  870. cfg.PollingInterval = plInterval
  871. return nicmanager.NewDNSProviderConfig(cfg)
  872. case "nifcloud":
  873. cfg := nifcloud.NewDefaultConfig()
  874. err := json.Unmarshal([]byte(js), &cfg)
  875. if err != nil {
  876. return nil, err
  877. }
  878. cfg.PropagationTimeout = pgDuration
  879. cfg.PollingInterval = plInterval
  880. return nifcloud.NewDNSProviderConfig(cfg)
  881. case "njalla":
  882. cfg := njalla.NewDefaultConfig()
  883. err := json.Unmarshal([]byte(js), &cfg)
  884. if err != nil {
  885. return nil, err
  886. }
  887. cfg.PropagationTimeout = pgDuration
  888. cfg.PollingInterval = plInterval
  889. return njalla.NewDNSProviderConfig(cfg)
  890. case "nodion":
  891. cfg := nodion.NewDefaultConfig()
  892. err := json.Unmarshal([]byte(js), &cfg)
  893. if err != nil {
  894. return nil, err
  895. }
  896. cfg.PropagationTimeout = pgDuration
  897. cfg.PollingInterval = plInterval
  898. return nodion.NewDNSProviderConfig(cfg)
  899. case "ns1":
  900. cfg := ns1.NewDefaultConfig()
  901. err := json.Unmarshal([]byte(js), &cfg)
  902. if err != nil {
  903. return nil, err
  904. }
  905. cfg.PropagationTimeout = pgDuration
  906. cfg.PollingInterval = plInterval
  907. return ns1.NewDNSProviderConfig(cfg)
  908. case "otc":
  909. cfg := otc.NewDefaultConfig()
  910. err := json.Unmarshal([]byte(js), &cfg)
  911. if err != nil {
  912. return nil, err
  913. }
  914. cfg.PropagationTimeout = pgDuration
  915. cfg.PollingInterval = plInterval
  916. return otc.NewDNSProviderConfig(cfg)
  917. case "ovh":
  918. cfg := ovh.NewDefaultConfig()
  919. err := json.Unmarshal([]byte(js), &cfg)
  920. if err != nil {
  921. return nil, err
  922. }
  923. cfg.PropagationTimeout = pgDuration
  924. cfg.PollingInterval = plInterval
  925. return ovh.NewDNSProviderConfig(cfg)
  926. case "pdns":
  927. cfg := pdns.NewDefaultConfig()
  928. err := json.Unmarshal([]byte(js), &cfg)
  929. if err != nil {
  930. return nil, err
  931. }
  932. cfg.PropagationTimeout = pgDuration
  933. cfg.PollingInterval = plInterval
  934. return pdns.NewDNSProviderConfig(cfg)
  935. case "plesk":
  936. cfg := plesk.NewDefaultConfig()
  937. err := json.Unmarshal([]byte(js), &cfg)
  938. if err != nil {
  939. return nil, err
  940. }
  941. cfg.PropagationTimeout = pgDuration
  942. cfg.PollingInterval = plInterval
  943. return plesk.NewDNSProviderConfig(cfg)
  944. case "porkbun":
  945. cfg := porkbun.NewDefaultConfig()
  946. err := json.Unmarshal([]byte(js), &cfg)
  947. if err != nil {
  948. return nil, err
  949. }
  950. cfg.PropagationTimeout = pgDuration
  951. cfg.PollingInterval = plInterval
  952. return porkbun.NewDNSProviderConfig(cfg)
  953. case "rackspace":
  954. cfg := rackspace.NewDefaultConfig()
  955. err := json.Unmarshal([]byte(js), &cfg)
  956. if err != nil {
  957. return nil, err
  958. }
  959. cfg.PropagationTimeout = pgDuration
  960. cfg.PollingInterval = plInterval
  961. return rackspace.NewDNSProviderConfig(cfg)
  962. case "rcodezero":
  963. cfg := rcodezero.NewDefaultConfig()
  964. err := json.Unmarshal([]byte(js), &cfg)
  965. if err != nil {
  966. return nil, err
  967. }
  968. cfg.PropagationTimeout = pgDuration
  969. cfg.PollingInterval = plInterval
  970. return rcodezero.NewDNSProviderConfig(cfg)
  971. case "regru":
  972. cfg := regru.NewDefaultConfig()
  973. err := json.Unmarshal([]byte(js), &cfg)
  974. if err != nil {
  975. return nil, err
  976. }
  977. cfg.PropagationTimeout = pgDuration
  978. cfg.PollingInterval = plInterval
  979. return regru.NewDNSProviderConfig(cfg)
  980. case "rfc2136":
  981. cfg := rfc2136.NewDefaultConfig()
  982. err := json.Unmarshal([]byte(js), &cfg)
  983. if err != nil {
  984. return nil, err
  985. }
  986. cfg.PropagationTimeout = pgDuration
  987. cfg.PollingInterval = plInterval
  988. return rfc2136.NewDNSProviderConfig(cfg)
  989. case "rimuhosting":
  990. cfg := rimuhosting.NewDefaultConfig()
  991. err := json.Unmarshal([]byte(js), &cfg)
  992. if err != nil {
  993. return nil, err
  994. }
  995. cfg.PropagationTimeout = pgDuration
  996. cfg.PollingInterval = plInterval
  997. return rimuhosting.NewDNSProviderConfig(cfg)
  998. case "route53":
  999. cfg := route53.NewDefaultConfig()
  1000. err := json.Unmarshal([]byte(js), &cfg)
  1001. if err != nil {
  1002. return nil, err
  1003. }
  1004. cfg.PropagationTimeout = pgDuration
  1005. cfg.PollingInterval = plInterval
  1006. return route53.NewDNSProviderConfig(cfg)
  1007. case "safedns":
  1008. cfg := safedns.NewDefaultConfig()
  1009. err := json.Unmarshal([]byte(js), &cfg)
  1010. if err != nil {
  1011. return nil, err
  1012. }
  1013. cfg.PropagationTimeout = pgDuration
  1014. cfg.PollingInterval = plInterval
  1015. return safedns.NewDNSProviderConfig(cfg)
  1016. case "sakuracloud":
  1017. cfg := sakuracloud.NewDefaultConfig()
  1018. err := json.Unmarshal([]byte(js), &cfg)
  1019. if err != nil {
  1020. return nil, err
  1021. }
  1022. cfg.PropagationTimeout = pgDuration
  1023. cfg.PollingInterval = plInterval
  1024. return sakuracloud.NewDNSProviderConfig(cfg)
  1025. case "scaleway":
  1026. cfg := scaleway.NewDefaultConfig()
  1027. err := json.Unmarshal([]byte(js), &cfg)
  1028. if err != nil {
  1029. return nil, err
  1030. }
  1031. cfg.PropagationTimeout = pgDuration
  1032. cfg.PollingInterval = plInterval
  1033. return scaleway.NewDNSProviderConfig(cfg)
  1034. case "selectel":
  1035. cfg := selectel.NewDefaultConfig()
  1036. err := json.Unmarshal([]byte(js), &cfg)
  1037. if err != nil {
  1038. return nil, err
  1039. }
  1040. cfg.PropagationTimeout = pgDuration
  1041. cfg.PollingInterval = plInterval
  1042. return selectel.NewDNSProviderConfig(cfg)
  1043. case "selfhostde":
  1044. cfg := selfhostde.NewDefaultConfig()
  1045. err := json.Unmarshal([]byte(js), &cfg)
  1046. if err != nil {
  1047. return nil, err
  1048. }
  1049. cfg.PropagationTimeout = pgDuration
  1050. cfg.PollingInterval = plInterval
  1051. return selfhostde.NewDNSProviderConfig(cfg)
  1052. case "servercow":
  1053. cfg := servercow.NewDefaultConfig()
  1054. err := json.Unmarshal([]byte(js), &cfg)
  1055. if err != nil {
  1056. return nil, err
  1057. }
  1058. cfg.PropagationTimeout = pgDuration
  1059. cfg.PollingInterval = plInterval
  1060. return servercow.NewDNSProviderConfig(cfg)
  1061. case "shellrent":
  1062. cfg := shellrent.NewDefaultConfig()
  1063. err := json.Unmarshal([]byte(js), &cfg)
  1064. if err != nil {
  1065. return nil, err
  1066. }
  1067. cfg.PropagationTimeout = pgDuration
  1068. cfg.PollingInterval = plInterval
  1069. return shellrent.NewDNSProviderConfig(cfg)
  1070. case "simply":
  1071. cfg := simply.NewDefaultConfig()
  1072. err := json.Unmarshal([]byte(js), &cfg)
  1073. if err != nil {
  1074. return nil, err
  1075. }
  1076. cfg.PropagationTimeout = pgDuration
  1077. cfg.PollingInterval = plInterval
  1078. return simply.NewDNSProviderConfig(cfg)
  1079. case "sonic":
  1080. cfg := sonic.NewDefaultConfig()
  1081. err := json.Unmarshal([]byte(js), &cfg)
  1082. if err != nil {
  1083. return nil, err
  1084. }
  1085. cfg.PropagationTimeout = pgDuration
  1086. cfg.PollingInterval = plInterval
  1087. return sonic.NewDNSProviderConfig(cfg)
  1088. case "stackpath":
  1089. cfg := stackpath.NewDefaultConfig()
  1090. err := json.Unmarshal([]byte(js), &cfg)
  1091. if err != nil {
  1092. return nil, err
  1093. }
  1094. cfg.PropagationTimeout = pgDuration
  1095. cfg.PollingInterval = plInterval
  1096. return stackpath.NewDNSProviderConfig(cfg)
  1097. case "tencentcloud":
  1098. cfg := tencentcloud.NewDefaultConfig()
  1099. err := json.Unmarshal([]byte(js), &cfg)
  1100. if err != nil {
  1101. return nil, err
  1102. }
  1103. cfg.PropagationTimeout = pgDuration
  1104. cfg.PollingInterval = plInterval
  1105. return tencentcloud.NewDNSProviderConfig(cfg)
  1106. case "transip":
  1107. cfg := transip.NewDefaultConfig()
  1108. err := json.Unmarshal([]byte(js), &cfg)
  1109. if err != nil {
  1110. return nil, err
  1111. }
  1112. cfg.PropagationTimeout = pgDuration
  1113. cfg.PollingInterval = plInterval
  1114. return transip.NewDNSProviderConfig(cfg)
  1115. case "ultradns":
  1116. cfg := ultradns.NewDefaultConfig()
  1117. err := json.Unmarshal([]byte(js), &cfg)
  1118. if err != nil {
  1119. return nil, err
  1120. }
  1121. cfg.PropagationTimeout = pgDuration
  1122. cfg.PollingInterval = plInterval
  1123. return ultradns.NewDNSProviderConfig(cfg)
  1124. case "variomedia":
  1125. cfg := variomedia.NewDefaultConfig()
  1126. err := json.Unmarshal([]byte(js), &cfg)
  1127. if err != nil {
  1128. return nil, err
  1129. }
  1130. cfg.PropagationTimeout = pgDuration
  1131. cfg.PollingInterval = plInterval
  1132. return variomedia.NewDNSProviderConfig(cfg)
  1133. case "vegadns":
  1134. cfg := vegadns.NewDefaultConfig()
  1135. err := json.Unmarshal([]byte(js), &cfg)
  1136. if err != nil {
  1137. return nil, err
  1138. }
  1139. cfg.PropagationTimeout = pgDuration
  1140. cfg.PollingInterval = plInterval
  1141. return vegadns.NewDNSProviderConfig(cfg)
  1142. case "vercel":
  1143. cfg := vercel.NewDefaultConfig()
  1144. err := json.Unmarshal([]byte(js), &cfg)
  1145. if err != nil {
  1146. return nil, err
  1147. }
  1148. cfg.PropagationTimeout = pgDuration
  1149. cfg.PollingInterval = plInterval
  1150. return vercel.NewDNSProviderConfig(cfg)
  1151. case "versio":
  1152. cfg := versio.NewDefaultConfig()
  1153. err := json.Unmarshal([]byte(js), &cfg)
  1154. if err != nil {
  1155. return nil, err
  1156. }
  1157. cfg.PropagationTimeout = pgDuration
  1158. cfg.PollingInterval = plInterval
  1159. return versio.NewDNSProviderConfig(cfg)
  1160. case "vinyldns":
  1161. cfg := vinyldns.NewDefaultConfig()
  1162. err := json.Unmarshal([]byte(js), &cfg)
  1163. if err != nil {
  1164. return nil, err
  1165. }
  1166. cfg.PropagationTimeout = pgDuration
  1167. cfg.PollingInterval = plInterval
  1168. return vinyldns.NewDNSProviderConfig(cfg)
  1169. case "vkcloud":
  1170. cfg := vkcloud.NewDefaultConfig()
  1171. err := json.Unmarshal([]byte(js), &cfg)
  1172. if err != nil {
  1173. return nil, err
  1174. }
  1175. cfg.PropagationTimeout = pgDuration
  1176. cfg.PollingInterval = plInterval
  1177. return vkcloud.NewDNSProviderConfig(cfg)
  1178. case "vscale":
  1179. cfg := vscale.NewDefaultConfig()
  1180. err := json.Unmarshal([]byte(js), &cfg)
  1181. if err != nil {
  1182. return nil, err
  1183. }
  1184. cfg.PropagationTimeout = pgDuration
  1185. cfg.PollingInterval = plInterval
  1186. return vscale.NewDNSProviderConfig(cfg)
  1187. case "vultr":
  1188. cfg := vultr.NewDefaultConfig()
  1189. err := json.Unmarshal([]byte(js), &cfg)
  1190. if err != nil {
  1191. return nil, err
  1192. }
  1193. cfg.PropagationTimeout = pgDuration
  1194. cfg.PollingInterval = plInterval
  1195. return vultr.NewDNSProviderConfig(cfg)
  1196. case "webnames":
  1197. cfg := webnames.NewDefaultConfig()
  1198. err := json.Unmarshal([]byte(js), &cfg)
  1199. if err != nil {
  1200. return nil, err
  1201. }
  1202. cfg.PropagationTimeout = pgDuration
  1203. cfg.PollingInterval = plInterval
  1204. return webnames.NewDNSProviderConfig(cfg)
  1205. case "websupport":
  1206. cfg := websupport.NewDefaultConfig()
  1207. err := json.Unmarshal([]byte(js), &cfg)
  1208. if err != nil {
  1209. return nil, err
  1210. }
  1211. cfg.PropagationTimeout = pgDuration
  1212. cfg.PollingInterval = plInterval
  1213. return websupport.NewDNSProviderConfig(cfg)
  1214. case "wedos":
  1215. cfg := wedos.NewDefaultConfig()
  1216. err := json.Unmarshal([]byte(js), &cfg)
  1217. if err != nil {
  1218. return nil, err
  1219. }
  1220. cfg.PropagationTimeout = pgDuration
  1221. cfg.PollingInterval = plInterval
  1222. return wedos.NewDNSProviderConfig(cfg)
  1223. case "yandex":
  1224. cfg := yandex.NewDefaultConfig()
  1225. err := json.Unmarshal([]byte(js), &cfg)
  1226. if err != nil {
  1227. return nil, err
  1228. }
  1229. cfg.PropagationTimeout = pgDuration
  1230. cfg.PollingInterval = plInterval
  1231. return yandex.NewDNSProviderConfig(cfg)
  1232. case "yandex360":
  1233. cfg := yandex360.NewDefaultConfig()
  1234. err := json.Unmarshal([]byte(js), &cfg)
  1235. if err != nil {
  1236. return nil, err
  1237. }
  1238. cfg.PropagationTimeout = pgDuration
  1239. cfg.PollingInterval = plInterval
  1240. return yandex360.NewDNSProviderConfig(cfg)
  1241. case "yandexcloud":
  1242. cfg := yandexcloud.NewDefaultConfig()
  1243. err := json.Unmarshal([]byte(js), &cfg)
  1244. if err != nil {
  1245. return nil, err
  1246. }
  1247. cfg.PropagationTimeout = pgDuration
  1248. cfg.PollingInterval = plInterval
  1249. return yandexcloud.NewDNSProviderConfig(cfg)
  1250. case "zoneee":
  1251. cfg := zoneee.NewDefaultConfig()
  1252. err := json.Unmarshal([]byte(js), &cfg)
  1253. if err != nil {
  1254. return nil, err
  1255. }
  1256. cfg.PropagationTimeout = pgDuration
  1257. cfg.PollingInterval = plInterval
  1258. return zoneee.NewDNSProviderConfig(cfg)
  1259. case "zonomi":
  1260. cfg := zonomi.NewDefaultConfig()
  1261. err := json.Unmarshal([]byte(js), &cfg)
  1262. if err != nil {
  1263. return nil, err
  1264. }
  1265. cfg.PropagationTimeout = pgDuration
  1266. cfg.PollingInterval = plInterval
  1267. return zonomi.NewDNSProviderConfig(cfg)
  1268. default:
  1269. return nil, fmt.Errorf("unrecognized DNS provider: %s", name)
  1270. }
  1271. }