internal

package
v3.0.0-...-ff2cd32 Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2020 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIError

type APIError struct {
	Description string `json:"error"`
	Code        int    `json:"code"`
	Field       string `json:"field"`
}

APIError API error message

func (*APIError) Error

func (a *APIError) Error() string

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client represents DNS client.

func NewClient

func NewClient(opts ClientOpts) *Client

NewClient returns a client instance.

func (*Client) AddRecord

func (c *Client) AddRecord(domainID int, body Record) (*Record, error)

AddRecord adds Record for given domain.

func (*Client) DeleteRecord

func (c *Client) DeleteRecord(domainID, recordID int) error

DeleteRecord deletes specific record.

func (*Client) GetDomainByName

func (c *Client) GetDomainByName(domainName string) (*Domain, error)

GetDomainByName gets Domain object by its name. If `domainName` level > 2 and there is no such domain on the account - it'll recursively search for the first which is exists in Selectel Domain API.

func (*Client) ListRecords

func (c *Client) ListRecords(domainID int) ([]*Record, error)

ListRecords returns list records for specific domain.

type ClientOpts

type ClientOpts struct {
	BaseURL    string
	Token      string
	UserAgent  string
	HTTPClient *http.Client
}

ClientOpts represents options to init client.

type Domain

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

Domain represents domain name.

type Record

type Record struct {
	ID      int    `json:"id,omitempty"`
	Name    string `json:"name,omitempty"`
	Type    string `json:"type,omitempty"` // Record type (SOA, NS, A/AAAA, CNAME, SRV, MX, TXT, SPF)
	TTL     int    `json:"ttl,omitempty"`
	Email   string `json:"email,omitempty"`   // Email of domain's admin (only for SOA records)
	Content string `json:"content,omitempty"` // Record content (not for SRV)
}

Record represents DNS record.

Jump to

Keyboard shortcuts

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