Documentation ¶
Overview ¶
Package dnspod implements a client for the dnspod API.
In order to use this package you will need a dnspod account and your API Token.
Index ¶
- func CheckResponse(r *http.Response) error
- type Client
- type CommonParams
- type Date
- type Domain
- type DomainInfo
- type DomainQuery
- type DomainsService
- func (s *DomainsService) Create(domainAttributes Domain) (Domain, *Response, error)
- func (s *DomainsService) CreateRecord(domain string, recordAttributes Record) (Record, *Response, error)
- func (s *DomainsService) Delete(ID int) (*Response, error)
- func (s *DomainsService) DeleteRecord(domain string, recordID string) (*Response, error)
- func (s *DomainsService) Get(ID int) (Domain, *Response, error)
- func (s *DomainsService) GetRecord(domain string, recordID string) (Record, *Response, error)
- func (s *DomainsService) GetRecordLine(domainGrade string, domainID string) ([]RecordLine, *Response, error)
- func (s *DomainsService) GetUserInfo() (User, *Response, error)
- func (s *DomainsService) List(query DomainQuery) (PaginationDomainList, *Response, error)
- func (s *DomainsService) ListRecords(query RecordQuery) (PaginationRecordList, *Response, error)
- func (s *DomainsService) UpdateRecord(domain string, recordID string, recordAttributes Record) (Record, *Response, error)
- func (s *DomainsService) UpdateRecordStatus(domainID string, recordID string, status string) (*Response, error)
- func (s *DomainsService) UpdateStatus(id string, status string) (*Response, error)
- type ErrorResponse
- type PaginationDomainList
- type PaginationRecordList
- type Record
- type RecordLine
- type RecordQuery
- type RecordsInfo
- type Response
- type Status
- type User
- type UserInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckResponse ¶
CheckResponse checks the API response for errors, and returns them if present. A response is considered an error if the status code is different than 2xx. Specific requests may have additional requirements, but this is sufficient in most of the cases.
Types ¶
type Client ¶
type Client struct { // HTTP client used to communicate with the API. HttpClient *http.Client // CommonParams used communicating with the dnspod API. CommonParams CommonParams // Base URL for API requests. // Defaults to the public dnspod API, but can be set to a different endpoint (e.g. the sandbox). // BaseURL should always be specified with a trailing slash. BaseURL string // User agent used when communicating with the dnspod API. UserAgent string // Services used for talking to different parts of the dnspod API. Domains *DomainsService }
func NewClient ¶
func NewClient(CommonParams CommonParams) *Client
NewClient returns a new dnspod API client.
func (*Client) Do ¶
Do sends an API request and returns the API response. The API response is JSON decoded and stored in the value pointed by v, or returned as an error if an API error has occurred. If v implements the io.Writer interface, the raw response body will be written to v, without attempting to decode it.
func (*Client) NewRequest ¶
NewRequest creates an API request. The path is expected to be a relative path and will be resolved according to the BaseURL of the Client. Paths should always be specified without a preceding slash.
type CommonParams ¶
type Date ¶
Date custom type.
func (*Date) UnmarshalJSON ¶
UnmarshalJSON handles the deserialization of the custom Date type.
type Domain ¶
type Domain struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` PunyCode string `json:"punycode,omitempty"` Grade string `json:"grade,omitempty"` GradeTitle string `json:"grade_title,omitempty"` Status string `json:"status,omitempty"` ExtStatus string `json:"ext_status,omitempty"` Records string `json:"records,omitempty"` GroupID string `json:"group_id,omitempty"` IsMark string `json:"is_mark,omitempty"` Remark string `json:"remark,omitempty"` IsVIP string `json:"is_vip,omitempty"` SearchenginePush string `json:"searchengine_push,omitempty"` UserID string `json:"user_id,omitempty"` CreatedOn string `json:"created_on,omitempty"` UpdatedOn string `json:"updated_on,omitempty"` TTL string `json:"ttl,omitempty"` CNameSpeedUp string `json:"cname_speedup,omitempty"` Owner string `json:"owner,omitempty"` AuthToAnquanBao bool `json:"auth_to_anquanbao,omitempty"` }
type DomainInfo ¶
type DomainInfo struct { DomainTotal int `json:"domain_total,omitempty"` AllTotal int `json:"all_total,omitempty"` MineTotal int `json:"mine_total,omitempty"` VipTotal int `json:"vip_total,omitempty"` IsMarkTotal int `json:"ismark_total,omitempty"` PauseTotal int `json:"pause_total,omitempty"` ErrorTotal int `json:"error_total,omitempty"` LockTotal int `json:"lock_total,omitempty"` SpamTotal int `json:"spam_total,omitempty"` VipExpire int `json:"vip_expire,omitempty"` RecentTotal int `json:"recent_total,omitempty"` }
type DomainQuery ¶
type DomainsService ¶
type DomainsService struct {
// contains filtered or unexported fields
}
DomainsService handles communication with the domain related methods of the dnspod API.
dnspod API docs: https://www.dnspod.cn/docs/domains.html
func (*DomainsService) Create ¶
func (s *DomainsService) Create(domainAttributes Domain) (Domain, *Response, error)
Create a new domain.
dnspod API docs: https://www.dnspod.cn/docs/domains.html#domain-create
func (*DomainsService) CreateRecord ¶
func (s *DomainsService) CreateRecord(domain string, recordAttributes Record) (Record, *Response, error)
CreateRecord creates a domain record.
dnspod API docs: https://www.dnspod.cn/docs/records.html#record-create
func (*DomainsService) Delete ¶
func (s *DomainsService) Delete(ID int) (*Response, error)
Delete a domain.
dnspod API docs: https://dnsapi.cn/Domain.Remove
func (*DomainsService) DeleteRecord ¶
func (s *DomainsService) DeleteRecord(domain string, recordID string) (*Response, error)
DeleteRecord deletes a domain record.
dnspod API docs: https://www.dnspod.cn/docs/records.html#record-remove
func (*DomainsService) Get ¶
func (s *DomainsService) Get(ID int) (Domain, *Response, error)
Get fetches a domain.
dnspod API docs: https://www.dnspod.cn/docs/domains.html#domain-info
func (*DomainsService) GetRecord ¶
GetRecord fetches the domain record.
dnspod API docs: https://www.dnspod.cn/docs/records.html#record-info
func (*DomainsService) GetRecordLine ¶
func (s *DomainsService) GetRecordLine(domainGrade string, domainID string) ([]RecordLine, *Response, error)
func (*DomainsService) GetUserInfo ¶
func (s *DomainsService) GetUserInfo() (User, *Response, error)
func (*DomainsService) List ¶
func (s *DomainsService) List(query DomainQuery) (PaginationDomainList, *Response, error)
List the domains.
dnspod API docs: https://www.dnspod.cn/docs/domains.html#domain-list
func (*DomainsService) ListRecords ¶
func (s *DomainsService) ListRecords(query RecordQuery) (PaginationRecordList, *Response, error)
func (*DomainsService) UpdateRecord ¶
func (s *DomainsService) UpdateRecord(domain string, recordID string, recordAttributes Record) (Record, *Response, error)
UpdateRecord updates a domain record.
dnspod API docs: https://www.dnspod.cn/docs/records.html#record-modify
func (*DomainsService) UpdateRecordStatus ¶
func (*DomainsService) UpdateStatus ¶
func (s *DomainsService) UpdateStatus(id string, status string) (*Response, error)
type ErrorResponse ¶
type ErrorResponse struct { Response *http.Response // HTTP response that caused this error Message string `json:"message"` // human-readable message }
An ErrorResponse represents an error caused by an API request.
func (*ErrorResponse) Error ¶
func (r *ErrorResponse) Error() string
Error implements the error interface.
type PaginationDomainList ¶
type PaginationRecordList ¶
type Record ¶
type Record struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Line string `json:"line,omitempty"` LineID string `json:"line_id,omitempty"` Type string `json:"type,omitempty"` TTL string `json:"ttl,omitempty"` Value string `json:"value,omitempty"` MX string `json:"mx,omitempty"` Enabled string `json:"enabled,omitempty"` Status string `json:"status,omitempty"` MonitorStatus string `json:"monitor_status,omitempty"` Remark string `json:"remark,omitempty"` UpdateOn string `json:"updated_on,omitempty"` UseAQB string `json:"use_aqb,omitempty"` SubDomain string `json:"sub_domain,omitempty"` RecordType string `json:"record_type,omitempty"` RecordLine string `json:"record_line,omitempty"` RecordLineID string `json:"record_line_id,omitempty"` }
type RecordLine ¶
type RecordQuery ¶
type RecordsInfo ¶
type User ¶
type User struct { RealName string `json:"real_name"` UserType string `json:"user_type"` Tel string `json:"telephone"` IM string `json:"im"` Nick string `json:"nick"` ID string `json:"id"` Email string `json:"email"` Status string `json:"status"` EmailVerified string `json:"email_verified"` TelVerified string `json:"telephone_verified"` WeixinBinded string `json:"weixin_binded"` AgentPending bool `json:"agent_pending"` Balance int `json:"balance"` SmsBalance int `json:"smsbalance"` UserGrade string `json:"user_grade"` }