You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraform/vendor/github.com/Ensighten/udnssdk
Josh Masseo 1b4991163f
UltraDNS Provider
10 years ago
..
account.go UltraDNS Provider 10 years ago
alert.go UltraDNS Provider 10 years ago
common.go UltraDNS Provider 10 years ago
directional_pool.go UltraDNS Provider 10 years ago
event.go UltraDNS Provider 10 years ago
notification.go UltraDNS Provider 10 years ago
probe.go UltraDNS Provider 10 years ago
readme.md UltraDNS Provider 10 years ago
rrset.go UltraDNS Provider 10 years ago
task.go UltraDNS Provider 10 years ago
udnssdk.go UltraDNS Provider 10 years ago

readme.md

udnssdk - A ultradns SDK for GoLang

about

This is a golang 'SDK' for UltraDNS that I copapasta'd from weppos/dnsimple. It seemed like an ideal donor since the use case is terraform.

How It works:

client := udnssdk.NewClient("username","password",udnssdk.DefaultTestBaseURL)

There is DefaultTestBaseURL and DefaultLiveBaseURL. When you call NewClient, it performs the 'oauth2' authorization step. The refresh token is saved, but not implemented. It should ideally be an error condition triggering a reauth and retry. But since Terraform is the use case, this won't be an issue.

RRSet Declaration

type RRSet struct {
  OwnerName string `json:"ownerName"`
  RRType string `json:"rrtype"`
  TTL int `json:"ttl"`
  RData []string `json:"rdata"`
}

###GetRRSets(DomainName, RecordName(leave blank for all), RecordType[A|CNAME|ANY]) rrsets, resp, err := client.Zones.GetRRSets("domain.com","","ANY") rrsets, resp, err := client.Zones.GetRRSets("domain.com","www","ANY") rrsets, resp, err := client.Zones.GetRRSets("domain.com","","MX") rrsets, resp, err := client.Zones.GetRRSets("domain.com","www","SRV")

###CreateRRSet(DomainName, RRSet) rr1 := &udnssdk.RRSet{OwnerName: "test", RRType: "A", TTL: 300, RData: []string{"127.0.0.1"}} resp2,err2 := client.Zones.CreateRRSet("ensighten.com",*rr1)

###UpdateRRSet(DomainName, RRSet) UpdateRRSet requires you to specify the complete RRSet for the update. This implementation does not support PATCHing.

rr1 := &udnssdk.RRSet{OwnerName: "test", RRType: "A", TTL: 300, RData: []string{"192.168.1.1"}}
resp2,err2 := client.Zones.CreateRRSet("domain.com",*rr1)

###DeleteRRSet(DomainName, RRSet) Delete RRSet only uses the ownerName and RRType values from the RRSet object.

rr3 := &udnssdk.RRSet{OwnerName: "test", RRType: "A"} // This is permissible.
resp3,err3 := client.RRSets.DeleteRRSet("domain.com",*rr3)

Example Program

    package main
    // udnssdk - a golang sdk for the ultradns REST service.
    // based on weppos/dnsimple

    import (
            "fmt"
            "udnssdk"
    )


    func main() {
      client := udnssdk.NewClient("username","password",udnssdk.DefaultTestBaseURL)
      if client == nil {
        fmt.Printf("Fail")
      } else {
        fmt.Printf("Win\n")
        rrsets, resp, err := client.RRSets.GetRRSets("domain.com","test","ANY")
        fmt.Printf("%+v\n",rrsets)
        fmt.Printf("%+v\n",resp)
        fmt.Printf("%+v\n",err)
        fmt.Printf("------------------------\n")
        fmt.Printf("---- Create RRSet\n")
        rr1 := &udnssdk.RRSet{OwnerName: "test", RRType: "A", TTL: 300, RData: []string{"127.0.0.1}}
        resp2,err2 := client.RRSets.CreateRRSet("domain.com",*rr1)
        fmt.Printf("Resp2: %+v\n", resp2)
        fmt.Printf("Err2: %+v\n", err2)
        fmt.Printf("------------------------\n")
        fmt.Printf("------------------------\n")
        fmt.Printf("---- Update RRSet\n")
        fmt.Printf("------------------------\n")
        rr2 := &udnssdk.RRSet{OwnerName: "test", RRType: "A", TTL: 300, RData: []string{"127.0.0.2"}}
        resp3, err3 := client.RRSets.UpdateRRSet("domain.com",*rr2)
        fmt.Printf("Resp3: %+v\n", resp3)
        fmt.Printf("Err3: %+v\n", err3)
        fmt.Printf("------------------------\n")

        fmt.Printf("------------------------\n")
        fmt.Printf("---- Delete RRSet\n")
        fmt.Printf("------------------------\n")
        resp4,err4 := client.RRSets.DeleteRRSet("domain.com",*rr2)
        fmt.Printf("Resp4: %+v\n", resp4)
        fmt.Printf("Err4: %+v\n", err4)
        fmt.Printf("------------------------\n")

      }
    }

#thanks