dnsprovider

package
v1.4.0-alpha.0 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2016 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

dnsprovider supplies interfaces for dns service providers (e.g. Google Cloud DNS, AWS route53, etc). Implementations exist in the providers sub-package

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterDnsProvider

func RegisterDnsProvider(name string, cloud Factory)

RegisterDnsProvider registers a dnsprovider.Factory by name. This is expected to happen during startup.

Types

type Factory

type Factory func(config io.Reader) (Interface, error)

Factory is a function that returns a dnsprovider.Interface. The config parameter provides an io.Reader handler to the factory in order to load specific configurations. If no configuration is provided the parameter is nil.

type Interface

type Interface interface {
	// Zones returns the provider's Zones interface, or false if not supported.
	Zones() (Zones, bool)
}

Interface is an abstract, pluggable interface for DNS providers.

func GetDnsProvider

func GetDnsProvider(name string, config io.Reader) (Interface, error)

GetDnsProvider creates an instance of the named DNS provider, or nil if the name is not known. The error return is only used if the named provider was known but failed to initialize. The config parameter specifies the io.Reader handler of the configuration file for the DNS provider, or nil for no configuation.

func InitDnsProvider

func InitDnsProvider(name string, configFilePath string) (Interface, error)

InitDnsProvider creates an instance of the named DNS provider.

type ResourceRecordSet

type ResourceRecordSet interface {
	// Name returns the name of the ResourceRecordSet, e.g. "www.example.com".
	Name() string
	// Rrdatas returns the Resource Record Datas of the record set.
	Rrdatas() []string
	// Ttl returns the time-to-live of the record set, in seconds.
	Ttl() int64
	// Type returns the type of the record set (A, CNAME, SRV, etc)
	Type() rrstype.RrsType
}

type ResourceRecordSets

type ResourceRecordSets interface {
	// List returns the ResourceRecordSets of the Zone, or an error if the list operation failed.
	List() ([]ResourceRecordSet, error)
	// Add adds and returns a ResourceRecordSet of the Zone, or an error if the add operation failed.
	Add(ResourceRecordSet) (ResourceRecordSet, error)
	// Remove removes a ResourceRecordSet from the Zone, or an error if the remove operation failed.
	// The supplied ResourceRecordSet must match one of the existing zones (obtained via List()) exactly.
	Remove(ResourceRecordSet) error
	// New allocates a new ResourceRecordSet, which can then be passed to Add() or Remove()
	// Arguments are as per the ResourceRecordSet interface below.
	New(name string, rrdatas []string, ttl int64, rrstype rrstype.RrsType) ResourceRecordSet
}

type Zone

type Zone interface {
	// Name returns the name of the zone, e.g. "example.com"
	Name() string
	// ResourceRecordsets returns the provider's ResourceRecordSets interface, or false if not supported.
	ResourceRecordSets() (ResourceRecordSets, bool)
}

type Zones

type Zones interface {
	// List returns the managed Zones, or an error if the list operation failed.
	List() ([]Zone, error)
}

Directories

Path Synopsis
providers
aws/route53
route53 is the implementation of pkg/dnsprovider interface for AWS Route53
route53 is the implementation of pkg/dnsprovider interface for AWS Route53
aws/route53/testing
internal implements a stub for the AWS Route53 API, used primarily for unit testing purposes
internal implements a stub for the AWS Route53 API, used primarily for unit testing purposes
google/clouddns
clouddns is the implementation of pkg/dnsprovider interface for Google Cloud DNS
clouddns is the implementation of pkg/dnsprovider interface for Google Cloud DNS

Jump to

Keyboard shortcuts

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