module NSOne::API::Zones

Public Instance Methods

create_zone(zone, params = {}) click to toggle source

Create a new DNS zone. You must include a JSON body in the request with basic details of the zone. The only required element in the body is zone.

@param [required, String] zone zone name @param [Hash] params

For all the zone options @see [NSOne API - create-a-new-dns-zone](jsapi.apiary.io/apis/ns1api/reference/zones-and-records/zone/create-a-new-dns-zone.html)

@return [NSOne::Response]

# File lib/nsone/api/zones.rb, line 39
def create_zone(zone, params = {})
  raise NSOne::MissingParameter, "zone cannot be blank" if blank?(zone)
  params = params.merge(zone: zone)
  perform_request(HTTP_PUT, "/zones/#{zone}", params)
end
delete_zone(zone) click to toggle source

Destroys an existing DNS zone and all records in the zone

@param [required, String] zone zone name

@return [NSOne::Response]

# File lib/nsone/api/zones.rb, line 68
def delete_zone(zone)
  raise NSOne::MissingParameter, "zone cannot be blank" if blank?(zone)
  perform_request(HTTP_DELETE, "/zones/#{zone}")
end
modify_zone(zone, params = {}) click to toggle source

Modifies basic details of a DNS zone. You must include a JSON body in the request, in which you may include ttl (SOA record TTL), refresh, retry, expiry, or nx_ttl values, as in a SOA record. You may not change the zone name or other details.

@param [required, String] zone zone name @param [required, Hash] params for all params @see [NSOne API - modify-a-zone](jsapi.apiary.io/apis/ns1api/reference/zones-and-records/zone/modify-a-zone.html)

@return [NSOne::Response]

# File lib/nsone/api/zones.rb, line 55
def modify_zone(zone, params = {})
  raise NSOne::MissingParameter, "zone cannot be blank" if blank?(zone)
  raise NSOne::MissingParameter, "params hash must contain valid zone settings" if !params.is_a?(Hash) || params.empty?
  perform_request(HTTP_POST, "/zones/#{zone}", params)
end
zone(zone) click to toggle source

Returns a single active Zone and its basic configuration details including all the zones records in a “records” array.

@param [required, String] zone zone name

@return [NSOne::Response]

# File lib/nsone/api/zones.rb, line 23
def zone(zone)
  raise NSOne::MissingParameter, "zone cannot be blank" if blank?(zone)
  perform_request(HTTP_GET, "/zones/#{zone}")
end
zones() click to toggle source

Returns all active zones and basic zone configuration details for each

@return [NSOne::Response]

# File lib/nsone/api/zones.rb, line 12
def zones
  perform_request(HTTP_GET, "/zones")
end