class Ultradns::Client
Public Class Methods
Initialize an Ultra REST API client
Required Parameters¶ ↑
-
username
- The user name -
password
- The user's password
Optional Parameters¶ ↑
-
:use_http
- Use http instead of https. Defaults to false, set to true only in test environments. Will not work in production. -
:host
- host and port of the remote server. Defaults to restapi.ultradns.com.
Examples¶ ↑
c = RestClient.new("myUname", "myPwd") c = RestClient.new("myUname", "myPwd", host: 'restapi-useast1b01-01.ct.ultradns.net:8080')
# File lib/ultradns/client.rb, line 49 def initialize(username, password, options = {}) @logger ||= ::Logger.new($stdout) @options = {} # override or ignored if nil default_base_uri = URI(self.class.default_options[:base_uri]) if options[:host] host = options[:host].prepend("#{default_base_uri.scheme}://") host << default_base_uri.path @options[:base_uri] = HTTParty.normalize_base_uri(host) elsif options[:base_uri] # take whatever they provide @options[:base_uri] = HTTParty.normalize_base_uri(options[:base_uri]) end auth(username, password, @options[:base_uri] || self.class.default_options[:base_uri]) logger.debug "Initializing UltraDNS Client using #{@options.inspect}" end
Public Instance Methods
Create a primary zone
Required Parameters¶ ↑
-
account_name
- The account that the zone will be created under. The user must have write access for zones in that account. -
zone_name
- The name of the zone. The trailing . is optional. The zone name must not be in use by anyone.
Examples¶ ↑
c.create_primary_zone('my_account', 'zone.invalid.')
# File lib/ultradns/client.rb, line 131 def create_primary_zone(account_name, zone_name) zone_properties = {:name => zone_name, :accountName => account_name, :type => 'PRIMARY'} primary_zone_info = {:forceImport => true, :createType => 'NEW'} zone_data = {:properties => zone_properties, :primaryCreateInfo => primary_zone_info} with_auth_retry {|c| c.post '/zones', request_options({:body => zone_data.to_json}) } end
List the background tasks (jobs) running. Some APIs will return a Task Id which can used to determine the state of those jobs.
Optional Parameters¶ ↑
-
:q
- The search parameters, in a hash. The query used to construct the list.Valid keys are: code - valid values for 'code' are PENDING, IN_PROCESS, COMPLETE, and ERROR. hasData - valid values for 'hasData' are true and false.
-
offset
- The position in the list for the first returned element (0 based). Thedefault value is 0
-
limit
- The maximum number of rows requested. The default value is 100. -
sort
- The sort column used to order the list. Valid sort fields are CODE, CONTENT_TYPE, EXTENSIONS,HAS_DATA, and DATE. The default value is CODE.
-
reverse
- Whether the list is ascending (false) or descending (true). The defaultvalue is false.
# File lib/ultradns/client.rb, line 161 def tasks(options = {}) with_auth_retry {|c| c.get("/tasks", request_options(options)) } end
Protected Instance Methods
# File lib/ultradns/client.rb, line 179 def build_params(args) params = {} if args[:q] q = args[:q] q_str = '' q.each { |k, v| q_str += "#{k}:#{v} " } if q_str.length > 0 params[:q] = q_str end args.delete :q end params.update(args) params end
# File lib/ultradns/client.rb, line 175 def logger @logger end
# File lib/ultradns/client.rb, line 169 def request_options(params = {}) add_auth_header!(params) @options.merge(build_params(params)) end