yapdd

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2018 License: MIT Imports: 9 Imported by: 0

README

Yapdd

Yapdd is a golang package that provides a client implementation of Yandex.Mail for Domain API.

Work still in progress.

API supports

  • Managing DNS
  • Managing DKIM
  • Managing domain mailboxes
  • Managing domain mailing lists
  • Domain management
  • Importing email
  • Managing domain administrator proxies

Example

cli := yapdd.New("PddToken")
rec, err := cli.DNSAdd(
	context.Background(),
	"domain.com",
	yapdd.DNSTypeCNAME,
	yapdd.NewDNSParams().Subdomain("www").Content("domain.com"),
)

Important note: http.DefaultClient is used in package by default. Please replace the HTTP client if you want to use yapdd in production. For example:

httpCli:=&http.Client{Timeout: time.Second}
cli := yapdd.New("PddToken", yapdd.WithHTTPClient(httpCli))

Documentation

Overview

Package yapdd provides a client implementation of Yandex.Mail for Domain API

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

func New

func New(token string, opts ...Option) *Client

func (*Client) DNSAdd

func (c *Client) DNSAdd(ctx context.Context, domain string, recordType DNSRecordType, params *DNSRequestParams) (*DNSResponse, error)

func (*Client) DNSDel

func (c *Client) DNSDel(ctx context.Context, domain string, recordID uint32) (*DNSResponse, error)

func (*Client) DNSEdit

func (c *Client) DNSEdit(ctx context.Context, domain string, recordID uint32, params *DNSRequestParams) (*DNSResponse, error)

func (*Client) DNSList

func (c *Client) DNSList(ctx context.Context, domain string) (*DNSListResponse, error)

type DNSListResponse

type DNSListResponse struct {
	Domain  string       `json:"domain"`
	Records []*DNSRecord `json:"records"`
	Success string       `json:"success"`
	Error   string       `json:"error"`
}

type DNSPriority

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

func (*DNSPriority) Get

func (p *DNSPriority) Get() (uint16, bool)

func (*DNSPriority) UnmarshalJSON

func (p *DNSPriority) UnmarshalJSON(b []byte) error

type DNSRecord

type DNSRecord struct {
	ID        uint32        `json:"record_id"`
	Type      DNSRecordType `json:"type"`
	Domain    string        `json:"domain"`
	Subdomain string        `json:"subdomain"`
	FQDN      string        `json:"fqdn"`
	TTL       uint32        `json:"ttl"`
	Content   string        `json:"content"`
	Priority  DNSPriority   `json:"priority"`
	Operation string        `json:"operation"`
}

type DNSRecordType

type DNSRecordType string
const (
	DNSTypeSRV   DNSRecordType = "SRV"
	DNSTypeTXT   DNSRecordType = "TXT"
	DNSTypeNS    DNSRecordType = "NS"
	DNSTypeMX    DNSRecordType = "MX"
	DNSTypeSOA   DNSRecordType = "SOA"
	DNSTypeA     DNSRecordType = "A"
	DNSTypeAAAA  DNSRecordType = "AAAA"
	DNSTypeCNAME DNSRecordType = "CNAME"
)

type DNSRequestParams

type DNSRequestParams url.Values

func NewDNSParams

func NewDNSParams() *DNSRequestParams

func (*DNSRequestParams) AdminMail

func (p *DNSRequestParams) AdminMail(email string) *DNSRequestParams

func (*DNSRequestParams) Content

func (p *DNSRequestParams) Content(content string) *DNSRequestParams

func (*DNSRequestParams) Expire

func (p *DNSRequestParams) Expire(expire uint16) *DNSRequestParams

func (*DNSRequestParams) NegCache

func (p *DNSRequestParams) NegCache(negcache uint32) *DNSRequestParams

func (*DNSRequestParams) Port

func (p *DNSRequestParams) Port(port uint16) *DNSRequestParams

func (*DNSRequestParams) Priority

func (p *DNSRequestParams) Priority(priority uint16) *DNSRequestParams

func (*DNSRequestParams) Refresh

func (p *DNSRequestParams) Refresh(refresh uint32) *DNSRequestParams

func (*DNSRequestParams) SetRetry

func (p *DNSRequestParams) SetRetry(retry uint32) *DNSRequestParams

func (*DNSRequestParams) Subdomain

func (p *DNSRequestParams) Subdomain(subdomain string) *DNSRequestParams

func (*DNSRequestParams) TTL

func (*DNSRequestParams) Target

func (p *DNSRequestParams) Target(target string) *DNSRequestParams

func (*DNSRequestParams) Weight

func (p *DNSRequestParams) Weight(weight uint16) *DNSRequestParams

type DNSResponse

type DNSResponse struct {
	Domain   string     `json:"domain"`
	RecordID uint32     `json:"record_id"`
	Record   *DNSRecord `json:"record"`
	Success  string     `json:"success"`
	Error    string     `json:"error"`
}

type Option

type Option func(*Client)

func AsRegistrar

func AsRegistrar(oauthToken string) Option

func WithHTTPClient

func WithHTTPClient(httpCli *http.Client) Option

Jump to

Keyboard shortcuts

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