recordsets

package
v1.0.19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2019 License: Apache-2.0 Imports: 2 Imported by: 4

Documentation

Overview

Package recordsets provides information and interaction with the zone API resource for the OpenStack DNS service.

Example to List RecordSets by Zone

listOpts := recordsets.ListOpts{
	Type: "A",
}

zoneID := "fff121f5-c506-410a-a69e-2d73ef9cbdbd"

allPages, err := recordsets.ListByZone(dnsClient, zoneID, listOpts).AllPages()
if err != nil {
	panic(err)
}

allRRs, err := recordsets.ExtractRecordSets(allPages()
if err != nil {
	panic(err)
}

for _, rr := range allRRs {
	fmt.Printf("%+v\n", rr)
}

Example to Create a RecordSet

createOpts := recordsets.CreateOpts{
	Name:        "example.com.",
	Type:        "A",
	TTL:         3600,
	Description: "This is a recordset.",
	Records:     []string{"10.1.0.2"},
}

zoneID := "fff121f5-c506-410a-a69e-2d73ef9cbdbd"

rr, err := recordsets.Create(dnsClient, zoneID, createOpts).Extract()
if err != nil {
	panic(err)
}

Example to Delete a RecordSet

zoneID := "fff121f5-c506-410a-a69e-2d73ef9cbdbd"
recordsetID := "d96ed01a-b439-4eb8-9b90-7a9f71017f7b"

err := recordsets.Delete(dnsClient, zoneID, recordsetID).ExtractErr()
if err != nil {
	panic(err)
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func List

func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager

List implements the recordset list request.

func ListByZone

func ListByZone(client *gophercloud.ServiceClient, zoneID string, opts ListByZoneOptsBuilder) pagination.Pager

ListByZone implements the recordset list request.

Types

type CreateOpts

type CreateOpts struct {
	// Name is the name of the RecordSet.
	Name string `json:"name" required:"true"`

	// Description is a description of the RecordSet.
	Description string `json:"description,omitempty"`

	// Records are the DNS records of the RecordSet.
	Records []string `json:"records,omitempty"`

	// TTL is the time to live of the RecordSet.
	TTL int `json:"ttl,omitempty"`

	// Type is the RRTYPE of the RecordSet.
	Type string `json:"type,omitempty"`
}

CreateOpts specifies the base attributes that may be used to create a RecordSet.

func (CreateOpts) ToRecordSetCreateMap

func (opts CreateOpts) ToRecordSetCreateMap() (map[string]interface{}, error)

ToRecordSetCreateMap formats an CreateOpts structure into a request body.

type CreateOptsBuilder

type CreateOptsBuilder interface {
	ToRecordSetCreateMap() (map[string]interface{}, error)
}

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 operation. Call its Extract method to interpret the result as a RecordSet.

func Create

func Create(client *gophercloud.ServiceClient, zoneID string, opts CreateOptsBuilder) (r CreateResult)

Create creates a recordset in a given zone.

func (CreateResult) Extract

func (r CreateResult) Extract() (*RecordSet, error)

Extract interprets a GetResult, CreateResult or UpdateResult as a RecordSet. An error is returned if the original call or the extraction failed.

type DeleteResult

type DeleteResult struct {
	// contains filtered or unexported fields
}

DeleteResult is result of a Delete operation. Call its ExtractErr method to determine if the operation succeeded or failed.

func Delete

func Delete(client *gophercloud.ServiceClient, zoneID string, rrsetID string) (r DeleteResult)

Delete removes an existing RecordSet.

func (DeleteResult) Extract

func (r DeleteResult) Extract() (*RecordSet, error)

Extract interprets a GetResult, CreateResult or UpdateResult as a RecordSet. An error is returned if the original call or the extraction failed.

type GetResult

type GetResult struct {
	// contains filtered or unexported fields
}

GetResult is the result of a Get operation. Call its Extract method to interpret the result as a RecordSet.

func Get

func Get(client *gophercloud.ServiceClient, zoneID string, rrsetID string) (r GetResult)

Get implements the recordset Get request.

func (GetResult) Extract

func (r GetResult) Extract() (*RecordSet, error)

Extract interprets a GetResult, CreateResult or UpdateResult as a RecordSet. An error is returned if the original call or the extraction failed.

type Link struct {
	Href string `json:"href"`
	Rel  string `json:"rel"`
	Self string `json:"self"`
	Next string `json:"next"`
}

type ListByZoneOpts

type ListByZoneOpts struct {
	// Integer value for the limit of values to return.
	Limit  int `q:"limit"`
	Offset int `q:"offset"`
	// UUID of the recordset at which you want to set a marker.
	Marker  string `q:"marker"`
	SortDir string `q:"sort_dir"`
	SortKey string `q:"sort_key"`
}

func (ListByZoneOpts) ToRecordSetListByZoneQuery

func (opts ListByZoneOpts) ToRecordSetListByZoneQuery() (string, error)

ToRecordSetListByZoneQuery formats a ListOpts into a query string.

type ListByZoneOptsBuilder

type ListByZoneOptsBuilder interface {
	ToRecordSetListByZoneQuery() (string, error)
}

type ListOpts

type ListOpts struct {
	// Integer value for the limit of values to return.
	Limit  int `q:"limit"`
	Offset int `q:"offset"`
	// UUID of the recordset at which you want to set a marker.
	Marker   string `q:"marker"`
	Name     string `q:"name"`
	SortDir  string `q:"sort_dir"`
	SortKey  string `q:"sort_key"`
	Status   string `q:"status"`
	Type     string `q:"type"`
	Id       string `q:"id"`
	ZoneType string `q:"zone_type"`
	Records  string `q:"records"`
}

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) ToRecordSetListQuery

func (opts ListOpts) ToRecordSetListQuery() (string, error)

ToRecordSetListQuery formats a ListOpts into a query string.

type ListOptsBuilder

type ListOptsBuilder interface {
	ToRecordSetListQuery() (string, error)
}

ListOptsBuilder allows extensions to add additional parameters to the List request.

type ListRecordsetResponse

type ListRecordsetResponse struct {
	// Link of the current resource or other related resources.When a
	// response is broken into pages, a next link is provided to retrieve all results.
	Links Link `json:"links"`
	// Zone list object
	Recordsets []RecordSet `json:"recordsets"`

	// Number of resources that meet the filter condition
	Metadata Metadata `json:"metadata"`
}

func ExtractRecordSets

func ExtractRecordSets(r pagination.Page) (*ListRecordsetResponse, error)

ExtractRecordSets extracts a slice of RecordSets from a List result.

type Metadata

type Metadata struct {
	// Total number of resources
	TotalCount int `json:"total_count"`
}

type RecordSet

type RecordSet struct {
	// ID is the unique ID of the recordset
	ID string `json:"id"`

	// ZoneID is the ID of the zone the recordset belongs to.
	ZoneID string `json:"zone_id"`

	// ProjectID is the ID of the project that owns the recordset.
	ProjectID string `json:"project_id"`

	// Name is the name of the recordset.
	Name string `json:"name"`

	// ZoneName is the name of the zone the recordset belongs to.
	ZoneName string `json:"zone_name"`

	// Type is the RRTYPE of the recordset.
	Type string `json:"type"`

	// Records are the DNS records of the recordset.
	Records []string `json:"records"`

	// TTL is the time to live of the recordset.
	TTL int `json:"ttl"`

	// Status is the status of the recordset.
	Status string `json:"status"`

	// Description is the description of the recordset.
	Description string `json:"description"`

	// CreatedAt is the date when the recordset was created.
	CreatedAt string `json:"create_at"`

	// UpdatedAt is the date when the recordset was updated.
	UpdatedAt string `json:"update_at"`

	// default means recordset is default
	Default bool `json:"default"`

	// Links includes HTTP references to the itself,
	// useful for passing along to other APIs that might want a recordset
	// reference.
	Links Link `json:"links"`
}

RecordSet represents a DNS Record Set.

type RecordSetPage

type RecordSetPage struct {
	pagination.LinkedPageBase
}

RecordSetPage is a single page of RecordSet results.

func (RecordSetPage) IsEmpty

func (r RecordSetPage) IsEmpty() (bool, error)

IsEmpty returns true if the page contains no results.

type UpdateOpts

type UpdateOpts struct {
	// Description is a description of the RecordSet.
	Description string `json:"description,omitempty"`

	// TTL is the time to live of the RecordSet.
	TTL int `json:"ttl,omitempty"`

	// Records are the DNS records of the RecordSet.
	Records []string `json:"records,omitempty"`
}

UpdateOpts specifies the base attributes that may be updated on an existing RecordSet.

func (UpdateOpts) ToRecordSetUpdateMap

func (opts UpdateOpts) ToRecordSetUpdateMap() (map[string]interface{}, error)

ToRecordSetUpdateMap formats an UpdateOpts structure into a request body.

type UpdateOptsBuilder

type UpdateOptsBuilder interface {
	ToRecordSetUpdateMap() (map[string]interface{}, error)
}

UpdateOptsBuilder allows extensions to add additional attributes to the Update request.

type UpdateResult

type UpdateResult struct {
	// contains filtered or unexported fields
}

UpdateResult is result of an Update operation. Call its Extract method to interpret the result as a RecordSet.

func Update

func Update(client *gophercloud.ServiceClient, zoneID string, rrsetID string, opts UpdateOptsBuilder) (r UpdateResult)

Update updates a recordset in a given zone

func (UpdateResult) Extract

func (r UpdateResult) Extract() (*RecordSet, error)

Extract interprets a GetResult, CreateResult or UpdateResult as a RecordSet. An error is returned if the original call or the extraction failed.

Directories

Path Synopsis
recordsets unit tests
recordsets unit tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL