1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
module Fog
module DNS
class Google
##
# Managed Zone resource
#
# @see https://developers.google.com/cloud-dns/api/v1/managedZones
class Zone < Fog::Model
identity :id
attribute :creation_time, :aliases => "creationTime"
attribute :description
attribute :domain, :aliases => "dnsName"
attribute :kind
attribute :name
attribute :nameservers, :aliases => "nameServers"
##
# Enumerates the list of Changes for the Managed Zone
#
# @return Array<Fog::DNS::Google::Change>] List of Changes for the Managed Zone
def changes
@changes = begin
Fog::DNS::Google::Changes.new(
:service => service,
:zone => self
)
end
end
##
# Deletes a previously created Managed Zone
#
# @return [Boolean] If the Managed Zone has been deleted
def destroy
requires :identity
service.delete_managed_zone(identity)
true
end
##
# Enumerates the list of Resource Record Sets for the Managed Zone
#
# @return Array<Fog::DNS::Google::Record>] List of Resource Record Sets for the Managed Zone
def records
@records = begin
Fog::DNS::Google::Records.new(
:service => service,
:zone => self
)
end
end
##
# Creates a new Managed Zone
#
# @return [Fog::DNS::Google::Zone] Managed Zone
# @raise [Fog::Errors::Error] If Managed Zone already exists
def save
requires :name, :domain, :description
raise Fog::Errors::Error.new("Resaving an existing object may create a duplicate") if persisted?
data = service.create_managed_zone(name, domain, description)
merge_attributes(data.to_h)
self
end
end
end
end
end
|