dnsmadeeasy

package module
v0.0.0-...-7a6216a Latest Latest
Warning

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

Go to latest
Published: Dec 26, 2023 License: MIT Imports: 17 Imported by: 0

README

DEVELOPER INSTRUCTIONS:

This repo is a template for developers to use when creating new libdns provider implementations.

Be sure to update:

  • The package name
  • The Go module name in go.mod
  • The latest libdns/libdns version in go.mod
  • All comments and documentation, including README below and godocs
  • License (must be compatible with Apache/MIT)
  • All "TODO:"s is in the code
  • All methods that currently do nothing

Remove this section from the readme before publishing.


DNS Made Easy for libdns

Go Reference

This package implements the libdns interfaces for <PROVIDER>, allowing you to manage DNS records.

TODO: Show how to configure and use. Explain any caveats.

Documentation

Index

Constants

View Source
const (
	DefaultSandboxBaseURL = "https://api.sandbox.dnsmadeeasy.com/V2.0"
	DefaultProdBaseURL    = "https://api.dnsmadeeasy.com/V2.0"
)

Default API endpoints.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	BaseURL    *url.URL
	HTTPClient *http.Client
	// contains filtered or unexported fields
}

func NewClient

func NewClient(apiKey, apiSecret string) (*Client, error)

func (*Client) GenCreateRecord

func (c *Client) GenCreateRecord(ctx context.Context, domain *Domain, record *Record) error

func (*Client) GenCreateRecords

func (c *Client) GenCreateRecords(ctx context.Context, domain *Domain, records *Records) error

func (*Client) GenDeleteRecord

func (c *Client) GenDeleteRecord(ctx context.Context, domain *Domain, record *Record) error

func (*Client) GenDeleteRecords

func (c *Client) GenDeleteRecords(ctx context.Context, domain *Domain, records *Records) error

func (*Client) GenUpdateRecords

func (c *Client) GenUpdateRecords(ctx context.Context, domain *Domain, records *Records) error

func (*Client) GetDomain

func (c *Client) GetDomain(ctx context.Context, zone string) (*Domain, error)

func (*Client) GetRecords

func (c *Client) GetRecords(ctx context.Context, domain *Domain, recordName, recordType *string) (*[]Record, error)

type Domain

type Domain struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
}

type Provider

type Provider struct {
	APIUrlBase string `json:"dnsme_api_url"`
	APIKey     string `json:"dnsme_apikey"`
	APISecret  string `json:"dnsme_secret"`
	// contains filtered or unexported fields
}

Provider facilitates DNS record manipulation with <TODO: PROVIDER NAME>.

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.

type Record

type Record struct {
	ID          int    `json:"id"`
	Type        string `json:"type"`
	Name        string `json:"name"`
	Value       string `json:"value"`
	TTL         int    `json:"ttl"`
	Priority    int    `json:"mxLevel"`
	SourceID    int    `json:"sourceId"`
	GtdLocation string `json:"gtdLocation"`
}

type Records

type Records struct {
	TotalPages   int       `json:"totalPages"`
	TotalRecords int       `json:"totalRecords"`
	Page         int       `json:"page"`
	Records      *[]Record `json:"data"`
}

Jump to

Keyboard shortcuts

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