Module: Dnsimple::Client::ZonesRecords

Included in:
ZonesService
Defined in:
lib/dnsimple/client/zones_records.rb

Instance Method Summary collapse

Instance Method Details

#all_zone_records(account_id, zone_id, options = {}) ⇒ Dnsimple::CollectionResponse<Dnsimple::Struct::ZoneRecord>

Lists ALL the zone records in the account.

This method is similar to #records, but instead of returning the results of a specific page it iterates all the pages and returns the entire collection.

Please use this method carefully, as fetching the entire collection will increase the number of requests you send to the API server and you may eventually risk to hit the throttle limit.

Examples:

List all records for the zone “example.com”

client.zones.all_zone_records(1010, "example.com")

Options Hash (options):

  • :page (Integer)

    current page (pagination)

  • :per_page (Integer)

    number of entries to return (pagination)

  • :sort (String)

    sorting policy

  • :filter (Hash)

    filtering policy

Raises:

See Also:



65
66
67
# File 'lib/dnsimple/client/zones_records.rb', line 65

def all_zone_records(, zone_id, options = {})
  paginate(:list_zone_records, , zone_id, options)
end

#create_zone_record(account_id, zone_id, attributes, options = {}) ⇒ Dnsimple::Response<Dnsimple::Struct::ZoneRecord>

Creates a zone record in the account.

Examples:

Create a URL record in zone “example.com”

client.zones.create_zone_record(1010, "example.com", name: "www", type: "url", content: "example.com")

Raises:

See Also:



84
85
86
87
88
89
# File 'lib/dnsimple/client/zones_records.rb', line 84

def create_zone_record(, zone_id, attributes, options = {})
  Extra.validate_mandatory_attributes(attributes, [:type, :name, :content])
  response = client.post(Client.versioned("/%s/zones/%s/records" % [, zone_id]), attributes, options)

  Dnsimple::Response.new(response, Struct::ZoneRecord.new(response["data"]))
end

#delete_zone_record(account_id, zone_id, record_id, options = {}) ⇒ Dnsimple::Response<nil>

Deletes a zone record from the account.

WARNING: this cannot be undone.

Examples:

Delete record 123 in zone “example.com”

client.zones.delete_zone_record(1010, "example.com", 123)

Raises:

See Also:



151
152
153
154
155
# File 'lib/dnsimple/client/zones_records.rb', line 151

def delete_zone_record(, zone_id, record_id, options = {})
  response = client.delete(Client.versioned("/%s/zones/%s/records/%s" % [, zone_id, record_id]), nil, options)

  Dnsimple::Response.new(response, nil)
end

#update_zone_record(account_id, zone_id, record_id, attributes, options = {}) ⇒ Dnsimple::Response<Dnsimple::Struct::ZoneRecord>

Updates a zone record in the account.

Examples:

Update the TTL to 600 of record 123 in zone “example.com”

client.zones.update_zone_record(1010, "example.com", 123, ttl: 600)

Raises:

See Also:



128
129
130
131
132
# File 'lib/dnsimple/client/zones_records.rb', line 128

def update_zone_record(, zone_id, record_id, attributes, options = {})
  response = client.patch(Client.versioned("/%s/zones/%s/records/%s" % [, zone_id, record_id]), attributes, options)

  Dnsimple::Response.new(response, Struct::ZoneRecord.new(response["data"]))
end

#zone_record(account_id, zone_id, record_id, options = {}) ⇒ Dnsimple::Response<Dnsimple::Struct::ZoneRecord>

Gets a zone record from the account.

Examples:

Get record 123 in zone “example.com”

client.zones.zone_record(1010, "example.com", 123)

Raises:

See Also:



106
107
108
109
110
# File 'lib/dnsimple/client/zones_records.rb', line 106

def zone_record(, zone_id, record_id, options = {})
  response = client.get(Client.versioned("/%s/zones/%s/records/%s" % [, zone_id, record_id]), options)

  Dnsimple::Response.new(response, Struct::ZoneRecord.new(response["data"]))
end

#zone_records(account_id, zone_id, options = {}) ⇒ Dnsimple::PaginatedResponse<Dnsimple::Struct::ZoneRecord> Also known as: list_zone_records

Lists the zone records in the account.

Examples:

List records for the zone “example.com” in the first page

client.zones.list_zone_records(1010, "example.com")

List records for the zone “example.com”, provide a specific page

client.zones.list_zone_records(1010, "example.com", page: 2)

List records for the zone “example.com”, sorting in ascending order

client.zones.list_zone_records(1010, "example.com", sort: "type:asc")

List records for the zone “example.com”, filtering by ‘A’ record type

client.zones.list_zone_records(1010, "example.com", filter: { type: 'A' })

Options Hash (options):

  • :page (Integer)

    current page (pagination)

  • :per_page (Integer)

    number of entries to return (pagination)

  • :sort (String)

    sorting policy

  • :filter (Hash)

    filtering policy

Raises:

See Also:



33
34
35
36
37
# File 'lib/dnsimple/client/zones_records.rb', line 33

def zone_records(, zone_id, options = {})
  response = client.get(Client.versioned("/%s/zones/%s/records" % [, zone_id]), Options::ListOptions.new(options))

  Dnsimple::PaginatedResponse.new(response, response["data"].map { |r| Struct::ZoneRecord.new(r) })
end