Documentation ¶
Overview ¶
Package zones provides information and interaction with the zone API resource for the OpenStack DNS service.
Example to List Zones
listOpts := zones.ListOpts{ Email: "jdoe@example.com", } allPages, err := zones.List(dnsClient, listOpts).AllPages() if err != nil { panic(err) } allZones, err := zones.ExtractZones(allPages) if err != nil { panic(err) } for _, zone := range allZones { fmt.Printf("%+v\n", zone) }
Example to Create a Zone
createOpts := zones.CreateOpts{ Name: "example.com.", Email: "jdoe@example.com", Type: "PRIMARY", TTL: 7200, Description: "This is a zone.", } zone, err := zones.Create(dnsClient, createOpts).Extract() if err != nil { panic(err) }
Example to Delete a Zone
zoneID := "99d10f68-5623-4491-91a0-6daafa32b60e" err := zones.Delete(dnsClient, zoneID).ExtractErr() if err != nil { panic(err) }
Index ¶
- func List(client *golangsdk.ServiceClient, opts ListOptsBuilder) pagination.Pager
- type AssociateResult
- type CreateOpts
- type CreateOptsBuilder
- type CreateResult
- type DeleteResult
- type DisassociateResult
- type GetResult
- type ListOpts
- type ListOptsBuilder
- type RouterOpts
- type RouterOptsBuilder
- type RouterResult
- type UpdateOpts
- type UpdateOptsBuilder
- type UpdateResult
- type Zone
- type ZonePage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func List ¶
func List(client *golangsdk.ServiceClient, opts ListOptsBuilder) pagination.Pager
List implements a zone List request.
Types ¶
type AssociateResult ¶
type AssociateResult struct {
// contains filtered or unexported fields
}
AssociateResult is the response from AssociateZone
func AssociateZone ¶
func AssociateZone(client *golangsdk.ServiceClient, zoneID string, opts RouterOptsBuilder) (r AssociateResult)
AssociateZone associate a Router with a Zone.
type CreateOpts ¶
type CreateOpts struct { // Attributes are settings that supply hints and filters for the zone. Attributes map[string]string `json:"attributes,omitempty"` // Email contact of the zone. Email string `json:"email,omitempty"` // Description of the zone. Description string `json:"description,omitempty"` // Name of the zone. Name string `json:"name" required:"true"` // Masters specifies zone masters if this is a secondary zone. Masters []string `json:"masters,omitempty"` // TTL is the time to live of the zone. TTL int `json:"-"` // Type specifies if this is a primary or secondary zone. Type string `json:"type,omitempty"` }
CreateOpts specifies the attributes used to create a zone.
func (CreateOpts) ToZoneCreateMap ¶
func (opts CreateOpts) ToZoneCreateMap() (map[string]interface{}, error)
ToZoneCreateMap formats an CreateOpts structure into a request body.
type CreateOptsBuilder ¶
CreateOptsBuilder allows extensions to add additional attributes to the Create request.
type CreateResult ¶
type CreateResult struct {
// contains filtered or unexported fields
}
CreateResult is the result of a Create request. Call its Extract method to interpret the result as a Zone.
func Create ¶
func Create(client *golangsdk.ServiceClient, opts CreateOptsBuilder) (r CreateResult)
Create implements a zone create request.
type DeleteResult ¶
type DeleteResult struct {
// contains filtered or unexported fields
}
DeleteResult is the result of a Delete request. Call its ExtractErr method to determine if the request succeeded or failed.
func Delete ¶
func Delete(client *golangsdk.ServiceClient, zoneID string) (r DeleteResult)
Delete implements a zone delete request.
type DisassociateResult ¶
type DisassociateResult struct {
// contains filtered or unexported fields
}
DisassociateResult is the response from DisassociateZone
func DisassociateZone ¶
func DisassociateZone(client *golangsdk.ServiceClient, zoneID string, opts RouterOptsBuilder) (r DisassociateResult)
DisassociateZone disassociate a Router with a Zone.
type GetResult ¶
type GetResult struct {
// contains filtered or unexported fields
}
GetResult is the result of a Get request. Call its Extract method to interpret the result as a Zone.
type ListOpts ¶
type ListOpts struct { // Integer value for the limit of values to return. Limit int `q:"limit"` // UUID of the zone at which you want to set a marker. Marker string `q:"marker"` Description string `q:"description"` Email string `q:"email"` Name string `q:"name"` SortDir string `q:"sort_dir"` SortKey string `q:"sort_key"` Status string `q:"status"` TTL int `q:"ttl"` Type string `q:"type"` }
ListOpts allows the filtering and sorting of paginated collections through the API. Filtering is achieved by passing in struct field values that map to the server attributes you want to see returned. Marker and Limit are used for pagination. https://developer.openstack.org/api-ref/dns/
func (ListOpts) ToZoneListQuery ¶
ToZoneListQuery formats a ListOpts into a query string.
type ListOptsBuilder ¶
ListOptsBuilder allows extensions to add parameters to the List request.
type RouterOpts ¶
type RouterOpts struct { // Router ID RouterID string `json:"router_id" required:"true"` // Router Region RouterRegion string `json:"router_region,omitempty"` }
RouterOpts specifies the required information to associate/disassociate a Router with a Zone.
func (RouterOpts) ToRouterMap ¶
func (opts RouterOpts) ToRouterMap() (map[string]interface{}, error)
ToRouterMap constructs a request body from RouterOpts.
type RouterOptsBuilder ¶
RouterOptsBuilder allows to add parameters to the associate/disassociate Zone request.
type RouterResult ¶
type UpdateOpts ¶
type UpdateOpts struct { // Email contact of the zone. Email string `json:"email,omitempty"` // TTL is the time to live of the zone. TTL int `json:"-"` // Masters specifies zone masters if this is a secondary zone. Masters []string `json:"masters,omitempty"` // Description of the zone. Description string `json:"description,omitempty"` }
UpdateOpts specifies the attributes to update a zone.
func (UpdateOpts) ToZoneUpdateMap ¶
func (opts UpdateOpts) ToZoneUpdateMap() (map[string]interface{}, error)
ToZoneUpdateMap formats an UpdateOpts structure into a request body.
type UpdateOptsBuilder ¶
UpdateOptsBuilder allows extensions to add additional attributes to the Update request.
type UpdateResult ¶
type UpdateResult struct {
// contains filtered or unexported fields
}
UpdateResult is the result of an Update request. Call its Extract method to interpret the result as a Zone.
func Update ¶
func Update(client *golangsdk.ServiceClient, zoneID string, opts UpdateOptsBuilder) (r UpdateResult)
Update implements a zone update request.
type Zone ¶
type Zone struct { // ID uniquely identifies this zone amongst all other zones, including those // not accessible to the current tenant. ID string `json:"id"` // PoolID is the ID for the pool hosting this zone. PoolID string `json:"pool_id"` // ProjectID identifies the project/tenant owning this resource. ProjectID string `json:"project_id"` // Name is the DNS Name for the zone. Name string `json:"name"` // Email for the zone. Used in SOA records for the zone. Email string `json:"email"` // Description for this zone. Description string `json:"description"` // TTL is the Time to Live for the zone. TTL int `json:"ttl"` // Serial is the current serial number for the zone. Serial int `json:"-"` // Status is the status of the resource. Status string `json:"status"` // Action is the current action in progress on the resource. Action string `json:"action"` // Version of the resource. Version int `json:"version"` // Attributes for the zone. Attributes map[string]string `json:"attributes"` // Type of zone. Primary is controlled by Designate. // Secondary zones are slaved from another DNS Server. // Defaults to Primary. Type string `json:"type"` ZoneType string `json:"zone_type"` // Masters is the servers for slave servers to get DNS information from. Masters []string `json:"masters"` // CreatedAt is the date when the zone was created. CreatedAt time.Time `json:"-"` // UpdatedAt is the date when the last change was made to the zone. UpdatedAt time.Time `json:"-"` // TransferredAt is the last time an update was retrieved from the // master servers. TransferredAt time.Time `json:"-"` // Links includes HTTP references to the itself, useful for passing along // to other APIs that might want a server reference. Links map[string]interface{} `json:"links"` // Routers associate with the Zone Routers []RouterResult `json:"routers"` }
Zone represents a DNS zone.
func ExtractZones ¶
func ExtractZones(r pagination.Page) ([]Zone, error)
ExtractZones extracts a slice of Zones from a List result.
func (*Zone) UnmarshalJSON ¶
type ZonePage ¶
type ZonePage struct {
pagination.LinkedPageBase
}
ZonePage is a single page of Zone results.