class Google::Cloud::Dns::Service

@private Represents the service to DNS, exposing the API calls.

Constants

API

Alias to the Google Client API module

Attributes

credentials[RW]
mocked_service[RW]
project[RW]

Public Class Methods

fqdn(name, origin_dns) click to toggle source

Fully Qualified Domain Name

# File lib/google/cloud/dns/service.rb, line 141
def self.fqdn name, origin_dns
  name = name.to_s.strip
  return name if ip_addr? name
  name = origin_dns if name.empty?
  name = origin_dns if name == "@"
  name = "#{name}.#{origin_dns}" unless name.include? "."
  name = "#{name}." unless name.end_with? "."
  name
end
ip_addr?(name) click to toggle source
# File lib/google/cloud/dns/service.rb, line 153
def self.ip_addr? name
  IPAddr.new name
  true
rescue IPAddr::Error
  false
end
new(project, credentials, retries: nil, timeout: nil, host: nil, quota_project: nil) click to toggle source

Creates a new Service instance.

# File lib/google/cloud/dns/service.rb, line 36
def initialize project, credentials,
               retries: nil, timeout: nil, host: nil, quota_project: nil
  @project = project
  @credentials = credentials
  @service = API::DnsService.new
  @service.client_options.application_name    = "gcloud-ruby"
  @service.client_options.application_version = \
    Google::Cloud::Dns::VERSION
  @service.client_options.open_timeout_sec = timeout
  @service.client_options.read_timeout_sec = timeout
  @service.client_options.send_timeout_sec = timeout
  @service.request_options.retries = retries || 3
  @service.request_options.header ||= {}
  @service.request_options.header["x-goog-api-client"] = \
    "gl-ruby/#{RUBY_VERSION} gccl/#{Google::Cloud::Dns::VERSION}"
  @service.request_options.quota_project = quota_project if quota_project
  @service.authorization = @credentials.client
  @service.root_url = host if host
end

Public Instance Methods

create_change(zone_id, additions, deletions) click to toggle source

Returns Google::Apis::DnsV1::Change

# File lib/google/cloud/dns/service.rb, line 120
def create_change zone_id, additions, deletions
  change = Google::Apis::DnsV1::Change.new(
    kind: "dns#change",
    additions: Array(additions),
    deletions: Array(deletions)
  )
  execute { service.create_change @project, zone_id, change }
end
create_zone(zone_name, zone_dns, description: nil, name_server_set: nil) click to toggle source

Returns Google::Apis::DnsV1::ManagedZone

# File lib/google/cloud/dns/service.rb, line 85
def create_zone zone_name, zone_dns, description: nil,
                name_server_set: nil
  managed_zone = Google::Apis::DnsV1::ManagedZone.new(
    kind: "dns#managedZone",
    name: zone_name,
    dns_name: zone_dns,
    description: (description || ""),
    name_server_set: name_server_set
  )
  execute { service.create_managed_zone @project, managed_zone }
end
delete_zone(zone_id) click to toggle source
# File lib/google/cloud/dns/service.rb, line 97
def delete_zone zone_id
  execute { service.delete_managed_zone @project, zone_id }
end
get_change(zone_id, change_id) click to toggle source

Returns Google::Apis::DnsV1::Change

# File lib/google/cloud/dns/service.rb, line 103
def get_change zone_id, change_id
  execute { service.get_change @project, zone_id, change_id }
end
get_project(project_id = @project) click to toggle source

Returns Google::Apis::DnsV1::Project

# File lib/google/cloud/dns/service.rb, line 64
def get_project project_id = @project
  execute { service.get_project project_id }
end
get_zone(zone_id) click to toggle source

Returns Google::Apis::DnsV1::ManagedZone

# File lib/google/cloud/dns/service.rb, line 70
def get_zone zone_id
  execute { service.get_managed_zone @project, zone_id }
end
inspect() click to toggle source
# File lib/google/cloud/dns/service.rb, line 160
def inspect
  "#{self.class}(#{@project})"
end
list_changes(zone_id, token: nil, max: nil, order: nil, sort: nil) click to toggle source

Returns Google::Apis::DnsV1::ListChangesResponse

# File lib/google/cloud/dns/service.rb, line 109
def list_changes zone_id, token: nil, max: nil, order: nil, sort: nil
  execute do
    service.list_changes @project, zone_id, max_results: max,
                                            page_token: token,
                                            sort_by: sort,
                                            sort_order: order
  end
end
list_records(zone_id, name = nil, type = nil, token: nil, max: nil) click to toggle source

Returns Google::Apis::DnsV1::ListResourceRecordSetsResponse

# File lib/google/cloud/dns/service.rb, line 131
def list_records zone_id, name = nil, type = nil, token: nil, max: nil
  execute do
    service.list_resource_record_sets @project, zone_id,
                                      max_results: max, name: name,
                                      page_token: token, type: type
  end
end
list_zones(token: nil, max: nil) click to toggle source

Returns Google::Apis::DnsV1::ListManagedZonesResponse

# File lib/google/cloud/dns/service.rb, line 76
def list_zones token: nil, max: nil
  execute do
    service.list_managed_zones @project, max_results: max,
                                         page_token: token
  end
end
service() click to toggle source
# File lib/google/cloud/dns/service.rb, line 56
def service
  return mocked_service if mocked_service
  @service
end

Protected Instance Methods

execute() { || ... } click to toggle source
# File lib/google/cloud/dns/service.rb, line 166
def execute
  yield
rescue Google::Apis::Error => e
  raise Google::Cloud::Error.from_error(e)
end