82 lines
1.8 KiB
Markdown
82 lines
1.8 KiB
Markdown
# udnssdk - An UltraDNS SDK for Go
|
|
|
|
This is a golang SDK for the UltraDNS REST API. It's not feature complete, and currently is only known to be used for Terraform's `ultradns` provider.
|
|
|
|
Full API docs are available at [godoc](https://godoc.org/github.com/Ensighten/udnssdk)
|
|
|
|
## Example
|
|
|
|
```go
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/Ensighten/udnssdk"
|
|
)
|
|
|
|
func main() {
|
|
client := udnssdk.NewClient("username", "password", udnssdk.DefaultTestBaseURL)
|
|
if client == nil {
|
|
log.Fatalf("Failed to create client")
|
|
}
|
|
|
|
fmt.Printf("---- Query RRSets\n")
|
|
rrsetkey := RRSetKey{
|
|
Zone: "domain.com",
|
|
Type: "ANY",
|
|
Name: "",
|
|
}
|
|
rrsets, err := client.RRSets.Select(rrsetkey)
|
|
if err != nil {
|
|
log.Fatalf(err)
|
|
}
|
|
fmt.Printf("%+v\n", rrsets)
|
|
|
|
fmt.Printf("---- Create RRSet\n")
|
|
rrsetkey = RRSetKey{
|
|
Zone: "domain.com",
|
|
Type: "A",
|
|
Name: "test",
|
|
}
|
|
rrset := udnssdk.RRSet{
|
|
OwnerName: r.Name,
|
|
RRType: r.Type,
|
|
TTL: 300,
|
|
RData: []string{"127.0.0.1"},
|
|
}
|
|
resp, err := client.RRSets.Create(rrsetkey, rrset)
|
|
if err != nil {
|
|
log.Fatalf(err)
|
|
}
|
|
fmt.Printf("Response: %+v\n", resp)
|
|
|
|
fmt.Printf("---- Update RRSet\n")
|
|
rrset = udnssdk.RRSet{
|
|
OwnerName: r.Name,
|
|
RRType: r.Type,
|
|
TTL: 300,
|
|
RData: []string{"127.0.0.2"},
|
|
}
|
|
resp, err := client.RRSets.Update(rrsetkey, rrset)
|
|
if err != nil {
|
|
log.Fatalf(err)
|
|
}
|
|
fmt.Printf("Response: %+v\n", resp)
|
|
|
|
fmt.Printf("---- Delete RRSet\n")
|
|
resp, err := client.RRSets.Delete(rrsetkey)
|
|
if err != nil {
|
|
log.Fatalf(err)
|
|
}
|
|
fmt.Printf("Response: %+v\n", resp)
|
|
}
|
|
```
|
|
|
|
## Thanks
|
|
|
|
* Originally started as a modified version of [weppos/go-dnsimple](https://github.com/weppos/go-dnsimple)
|
|
* Designed to add UltraDNS support to [terraform](http://terraform.io)
|
|
* And for other languages, be sure to check out [UltraDNS's various SDKs](https://github.com/ultradns)
|