powerdns

package module
v0.2.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2022 License: MIT Imports: 10 Imported by: 1

README

powerdns provider for libdns

Github Actions Go Reference

This package implements the libdns interfaces for PowerDNS, allowing you to manage DNS records.

To configure this, simply specify the server URL and the access token.

package main

import (
    "context"

    "github.com/libdns/libdns"
    "github.com/libdns/powerdns"
)

func main() {
    p := &powerdns.Provider{
        ServerURL: "http://localhost", // required
        ServerID:  "localhost",        // if left empty, defaults to localhost.
        APIToken:  "asdfasdfasdf",     // required
    }

    _, err := p.AppendRecords(context.Background(), "example.org.", []libdns.Record{
        {
            Name:  "_acme_whatever",
            Type:  "TXT",
            Value: "123456",
        },
    })
    if err != nil {
        panic(err)
    }

}

Documentation

Overview

Package powerdns implements a powerdns

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Provider

type Provider struct {
	// ServerURL is the location of the pdns server.
	ServerURL string `json:"server_url"`

	// ServerID is the id of the server.  localhost will be used
	// if this is omitted.
	ServerID string `json:"server_id,omitempty"`

	// APIToken is the auth token.
	APIToken string `json:"api_token,omitempty"`

	// Debug - can set this to stdout or stderr to dump
	// debugging information about the API interaction with
	// powerdns.  This will dump your auth token in plain text
	// so be careful.
	Debug string `json:"debug,omitempty"`
	// contains filtered or unexported fields
}

Provider facilitates DNS record manipulation with PowerDNS.

func (*Provider) AppendRecords

func (p *Provider) AppendRecords(ctx context.Context, zone string, records []libdns.Record) ([]libdns.Record, error)

AppendRecords adds records to the zone. It returns the records that were added.

func (*Provider) DeleteRecords

func (p *Provider) DeleteRecords(ctx context.Context, zone string, records []libdns.Record) ([]libdns.Record, error)

DeleteRecords deletes the records from the zone. It returns the records that were deleted.

func (*Provider) GetRecords

func (p *Provider) GetRecords(ctx context.Context, zone string) ([]libdns.Record, error)

GetRecords lists all the records in the zone.

func (*Provider) SetRecords

func (p *Provider) SetRecords(ctx context.Context, zone string, records []libdns.Record) ([]libdns.Record, error)

SetRecords sets the records in the zone, either by updating existing records or creating new ones. It returns the updated records.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL