Sha256: 49080aef70fcd2ee7df29880ed89b6914adc1ba1bc232a0c1c6dcf4542de931b

Contents?: true

Size: 1.96 KB

Versions: 41

Compression:

Stored size: 1.96 KB

Contents

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

Version data entries

41 entries across 41 versions & 2 rubygems

Version Path
fog-google-1.24.1 lib/fog/dns/google/models/zone.rb
fog-google-1.24.0 lib/fog/dns/google/models/zone.rb
fog-google-1.23.0 lib/fog/dns/google/models/zone.rb
fog-google-1.22.0 lib/fog/dns/google/models/zone.rb
fog-google-1.21.1 lib/fog/dns/google/models/zone.rb
fog-google-1.21.0 lib/fog/dns/google/models/zone.rb
fog-google-1.20.0 lib/fog/dns/google/models/zone.rb
fog-google-1.19.0 lib/fog/dns/google/models/zone.rb
fog-google-1.18.0 lib/fog/dns/google/models/zone.rb
fog-google-1.17.0 lib/fog/dns/google/models/zone.rb
fog-google-1.16.1 lib/fog/dns/google/models/zone.rb
fog-google-1.16.0 lib/fog/dns/google/models/zone.rb
fog-google-1.15.0 lib/fog/dns/google/models/zone.rb
fog-google-1.14.0 lib/fog/dns/google/models/zone.rb
gitlab-fog-google-1.14.0 lib/fog/dns/google/models/zone.rb
fog-google-1.13.0 lib/fog/dns/google/models/zone.rb
gitlab-fog-google-1.13.0 lib/fog/dns/google/models/zone.rb
fog-google-1.12.1 lib/fog/dns/google/models/zone.rb
fog-google-1.12.0 lib/fog/dns/google/models/zone.rb
fog-google-1.11.0 lib/fog/dns/google/models/zone.rb