def hostnames(property, skip_update_dns_status = false, version = nil)
      raise 'property must be a Borderlands::Property object' unless property.is_a? Property
      version ||= property.productionversion
      begin
        hostnames_hash = @client.get_json_body(
          "/papi/v0/properties/#{property.id}/versions/#{version}/hostnames/",
          { 'contractId' => property.contractid, 'groupId' => property.groupid },
        )
      rescue Exception => e
        raise "unable to retrieve hostnames for #{property.name}: #{e.message}"
      end
      if hostnames_hash && hostnames_hash['hostnames'] && hostnames_hash['hostnames']['items']
        hostnames = hostnames_hash['hostnames']['items'].map do |ehn|
          h = Hostname.new ehn
          h.update_status unless skip_update_dns_status
          h
        end
      else
        # no hostnames returned
        hostnames = nil
      end
      hostnames
    end
def hostnames(property, skip_update_dns_status = false, version = nil)
      raise 'property must be a Borderlands::Property object' unless property.is_a? Property
      version ||= property.productionversion
      begin
        hostnames_hash = @client.get_json_body(
          "/papi/v0/properties/#{property.id}/versions/#{version}/hostnames/",
          { 'contractId' => property.contractid, 'groupId' => property.groupid },
        )
      rescue Exception => e
        raise "unable to retrieve hostnames for #{property.name}: #{e.message}"
      end
      if hostnames_hash && hostnames_hash['hostnames'] && hostnames_hash['hostnames']['items']
        hostnames = hostnames_hash['hostnames']['items'].map do |ehn|
          h = Hostname.new ehn
          h.update_status unless skip_update_dns_status
          h
        end
      else
        # no hostnames returned
        hostnames = nil
      end
      hostnames
    end
version defaults to the current production version, which is pretty
 much always going to be the most meaningful thing to look at