Documentation ¶
Index ¶
- Constants
- Variables
- type BulkRecordRequest
- type BulkRecordResponse
- type Client
- func (client *Client) BulkCreateRecords(ctx context.Context, bulkRecordsRequest *BulkRecordRequest) (*BulkRecordResponse, error)
- func (client *Client) BulkUpdateRecords(ctx context.Context, bulkRecordsRequest *BulkRecordRequest) (*BulkRecordResponse, error)
- func (client *Client) CreateOrUpdateRecord(ctx context.Context, record RecordRequest) (*RecordResponse, error)
- func (client *Client) CreateRecord(ctx context.Context, record RecordRequest) (*RecordResponse, error)
- func (client *Client) DeleteRecord(ctx context.Context, recordId string) error
- func (client *Client) GetRecord(ctx context.Context, recordId string) (*RecordResponse, error)
- func (client *Client) GetRecords(ctx context.Context, zone_id string, page int, perPage int) (*RecordsResponse, error)
- func (client *Client) GetZones(ctx context.Context, name string, searchName string, page int, perPage int) (*ZonesResponse, error)
- func (client *Client) Perform(ctx context.Context, method string, endpoint string, ...) error
- func (client *Client) UpdateRecord(ctx context.Context, record RecordRequest) (*RecordResponse, error)
- type HetznerTime
- type Meta
- type Pagination
- type Record
- type RecordRequest
- type RecordResponse
- type RecordsResponse
- type Zone
- type ZoneRequest
- type ZonesResponse
Constants ¶
View Source
const ( BASE_URL = "https://dns.hetzner.com/api/v1" DEFAULT_TIMEOUT = time.Second * 30 )
Variables ¶
View Source
var ( ErrAPIKeyNotSet = errors.New("hetzner_dns: API key has not been set") ErrMissingID = errors.New("hetzner_dns: missing record ID") )
View Source
var ( HETZNER_TIME_FORMATS = []string{ "2006-01-02 15:04:05.000 -0700 MST", "2006-01-02 15:04:05.00 -0700 MST", "2006-01-02 15:04:05.0 -0700 MST", "2006-01-02 15:04:05 -0700 MST", time.RFC3339, time.RFC3339Nano, } )
Functions ¶
This section is empty.
Types ¶
type BulkRecordRequest ¶
type BulkRecordRequest struct {
Records []RecordRequest `json:"records"`
}
type BulkRecordResponse ¶
type BulkRecordResponse struct { Records []Record `json:"records"` ValidRecords []RecordRequest `json:"valid_records,omitempty"` InvalidRecords []RecordRequest `json:"invalid_records,omitempty"` FailedRecords []RecordRequest `json:"failed_records,omitempty"` }
type Client ¶
Client is the API service client structure.
func (*Client) BulkCreateRecords ¶
func (client *Client) BulkCreateRecords(ctx context.Context, bulkRecordsRequest *BulkRecordRequest) (*BulkRecordResponse, error)
func (*Client) BulkUpdateRecords ¶
func (client *Client) BulkUpdateRecords(ctx context.Context, bulkRecordsRequest *BulkRecordRequest) (*BulkRecordResponse, error)
func (*Client) CreateOrUpdateRecord ¶
func (client *Client) CreateOrUpdateRecord(ctx context.Context, record RecordRequest) (*RecordResponse, error)
func (*Client) CreateRecord ¶
func (client *Client) CreateRecord(ctx context.Context, record RecordRequest) (*RecordResponse, error)
func (*Client) DeleteRecord ¶
func (*Client) GetRecords ¶
func (*Client) UpdateRecord ¶
func (client *Client) UpdateRecord(ctx context.Context, record RecordRequest) (*RecordResponse, error)
type HetznerTime ¶
HetznerTime is a specialization of time.Time handling Hetzner JSON format for time.
func (*HetznerTime) MarshalJSON ¶
func (hzTime *HetznerTime) MarshalJSON() ([]byte, error)
func (*HetznerTime) String ¶
func (hzTime *HetznerTime) String() string
func (*HetznerTime) UnmarshalJSON ¶
func (hzTime *HetznerTime) UnmarshalJSON(b []byte) error
type Meta ¶
type Meta struct {
Pagination Pagination `json:"pagination"`
}
type Pagination ¶
type Record ¶
type Record struct { Type string `json:"type"` ID string `json:"id"` Created HetznerTime `json:"created"` Modified HetznerTime `json:"modified"` ZoneID string `json:"zone_id"` Name string `json:"name"` Value string `json:"value"` TTL int `json:"ttl"` }
type RecordRequest ¶
type RecordResponse ¶
type RecordResponse struct {
Record Record `json:"record"`
}
type RecordsResponse ¶
type RecordsResponse struct {
Records []Record `json:"records"`
}
type Zone ¶
type Zone struct { ID string `json:"id"` Created HetznerTime `json:"created"` Modified HetznerTime `json:"modified"` LegacyDNSHost string `json:"legacy_dns_host"` LegacyNs []string `json:"legacy_ns"` Name string `json:"name"` Ns []string `json:"ns"` Owner string `json:"owner"` Paused bool `json:"paused"` Permission string `json:"permission"` Project string `json:"project"` Registrar string `json:"registrar"` Status string `json:"status"` TTL int `json:"ttl"` Verified HetznerTime `json:"verified"` RecordsCount int `json:"records_count"` IsSecondaryDNS bool `json:"is_secondary_dns"` TxtVerification struct { Name string `json:"name"` Token string `json:"token"` } `json:"txt_verification"` }
type ZoneRequest ¶
type ZonesResponse ¶
Click to show internal directories.
Click to hide internal directories.