module 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 [What is Google
Cloud
DNS?](cloud.google.com/dns/what-is-cloud-dns).
Constants
- VERSION
Public Class Methods
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 {Dns::Credentials}) (The parameter `keyfile` is considered deprecated, but may also be used.)
-
`scope` - (String, Array<String>) 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.
@return [Google::Cloud::Config] The configuration object the
Google::Cloud::Dns library uses.
# File lib/google/cloud/dns.rb, line 122 def self.configure yield Google::Cloud.configure.dns if block_given? Google::Cloud.configure.dns end
@private Default credentials.
# File lib/google/cloud/dns.rb, line 138 def self.default_credentials scope: nil Google::Cloud.configure.dns.credentials || Google::Cloud.configure.credentials || Dns::Credentials.default(scope: scope) end
@private Default project.
# File lib/google/cloud/dns.rb, line 130 def self.default_project_id Google::Cloud.configure.dns.project_id || Google::Cloud.configure.project_id || Google::Cloud.env.project_id end
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 {file:AUTHENTICATION.md Authentication Guide}.
@param [String] project_id Identifier for a DNS project. If not present,
the default project for the credentials is used.
@param [String, Hash, Google::Auth::Credentials] credentials The path to
the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object. (See {Dns::Credentials})
@param [String, Array<String>] scope 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](https://developers.google.com/identity/protocols/OAuth2). The default scope is: * `https://www.googleapis.com/auth/ndev.clouddns.readwrite`
@param [Integer] retries Number of times to retry requests on server
error. The default value is `3`. Optional.
@param [Integer] timeout Default timeout to use in requests. Optional. @param [String] endpoint Override of the endpoint host name. Optional.
If the param is nil, uses the default endpoint.
@param [String] project Alias for the `project_id` argument. Deprecated. @param [String] keyfile Alias for the `credentials` argument.
Deprecated.
@return [Google::Cloud::Dns::Project]
@example
require "google/cloud/dns" dns = Google::Cloud::Dns.new( project_id: "my-dns-project", credentials: "/path/to/keyfile.json" ) zone = dns.zone "example-com"
# File lib/google/cloud/dns.rb, line 77 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
@private Resolve project.
# File lib/google/cloud/dns.rb, line 146 def self.resolve_project_id given_project, credentials project_id = given_project || default_project_id if credentials.respond_to? :project_id project_id ||= credentials.project_id end project_id.to_s # Always cast to a string end