Module: Google::Cloud::Dns

Defined in:
lib/google/cloud/dns.rb,
lib/google/cloud/dns/zone.rb,
lib/google/cloud/dns/change.rb,
lib/google/cloud/dns/record.rb,
lib/google/cloud/dns/project.rb,
lib/google/cloud/dns/service.rb,
lib/google/cloud/dns/version.rb,
lib/google/cloud/dns/importer.rb,
lib/google/cloud/dns/zone/list.rb,
lib/google/cloud/dns/change/list.rb,
lib/google/cloud/dns/credentials.rb,
lib/google/cloud/dns/record/list.rb,
lib/google/cloud/dns/zone/transaction.rb

Overview

Google Cloud DNS

Google Cloud DNS is a high-performance, resilient, global DNS service that provides a cost-effective way to make your applications and services available to your users. This programmable, authoritative DNS service can be used to easily publish and manage DNS records using the same infrastructure relied upon by Google. To learn more, read Cloud DNS Overview.

See Google Cloud DNS Overview.

Defined Under Namespace

Classes: Change, Credentials, Project, Record, Zone

Constant Summary collapse

VERSION =
"1.2.0".freeze

Class Method Summary collapse

Class Method Details

.configure {|Google::Cloud.configure.dns| ... } ⇒ Google::Cloud::Config

Configure the Google Cloud DNS library.

The following DNS configuration parameters are supported:

  • project_id - (String) Identifier for a DNS project. (The parameter project is considered deprecated, but may also be used.)
  • credentials - (String, Hash, Google::Auth::Credentials) The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object. (See Credentials) (The parameter keyfile is considered deprecated, but may also be used.)
  • scope - (String, Array) The OAuth 2.0 scopes controlling the set of resources and operations that the connection can access.
  • retries - (Integer) Number of times to retry requests on server error.
  • timeout - (Integer) Default timeout to use in requests.
  • endpoint - (String) Override of the endpoint host name, or nil to use the default endpoint.

Yields:

Returns:

  • (Google::Cloud::Config)

    The configuration object the Google::Cloud::Dns library uses.



140
141
142
143
144
# File 'lib/google/cloud/dns.rb', line 140

def self.configure
  yield Google::Cloud.configure.dns if block_given?

  Google::Cloud.configure.dns
end

.new(project_id: nil, credentials: nil, scope: nil, retries: nil, timeout: nil, endpoint: nil, project: nil, keyfile: nil) ⇒ Google::Cloud::Dns::Project

Creates a new Project instance connected to the DNS service. Each call creates a new connection.

For more information on connecting to Google Cloud see the Authentication Guide.

Examples:

require "google/cloud/dns"

dns = Google::Cloud::Dns.new(
        project_id: "my-dns-project",
        credentials: "/path/to/keyfile.json"
      )

zone = dns.zone "example-com"

Parameters:

  • project_id (String) (defaults to: nil)

    Identifier for a DNS project. If not present, the default project for the credentials is used.

  • credentials (Google::Auth::Credentials) (defaults to: nil)

    A Google::Auth::Credentials object. (See Credentials) @note Warning: Passing a String to a keyfile path or a Hash of credentials is deprecated. Providing an unvalidated credential configuration to Google APIs can compromise the security of your systems and data.

    @example

    # The recommended way to provide credentials is to use the make_creds method # on the appropriate credentials class for your environment.

    require "googleauth"

    credentials = ::Google::Auth::ServiceAccountCredentials.make_creds( json_key_io: ::File.open("/path/to/keyfile.json") )

    dns = Google::Cloud::Dns.new( project_id: "my-project-id", credentials: credentials )

  • scope (String, Array<String>) (defaults to: nil)

    The OAuth 2.0 scopes controlling the set of resources and operations that the connection can access. See Using OAuth 2.0 to Access Google APIs.

    The default scope is:

    • https://www.googleapis.com/auth/ndev.clouddns.readwrite
  • retries (Integer) (defaults to: nil)

    Number of times to retry requests on server error. The default value is 3. Optional.

  • timeout (Integer) (defaults to: nil)

    Default timeout to use in requests. Optional.

  • endpoint (String) (defaults to: nil)

    Override of the endpoint host name. Optional. If the param is nil, uses the default endpoint.

  • project (String) (defaults to: nil)

    Alias for the project_id argument. Deprecated.

  • keyfile (String) (defaults to: nil)

    Alias for the credentials argument. Deprecated.

Returns:

Raises:

  • (ArgumentError)


95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/google/cloud/dns.rb', line 95

def self.new project_id: nil, credentials: nil, scope: nil, retries: nil,
             timeout: nil, endpoint: nil, project: nil, keyfile: nil
  scope       ||= configure.scope
  retries     ||= configure.retries
  timeout     ||= configure.timeout
  endpoint    ||= configure.endpoint
  credentials ||= keyfile || default_credentials(scope: scope)

  unless credentials.is_a? Google::Auth::Credentials
    credentials = Dns::Credentials.new credentials, scope: scope
  end

  project_id = resolve_project_id(project_id || project, credentials)
  raise ArgumentError, "project_id is missing" if project_id.empty?

  Dns::Project.new(
    Dns::Service.new(
      project_id, credentials,
      retries: retries, timeout: timeout, host: endpoint, quota_project: configure.quota_project
    )
  )
end