class Acme::Client::Resources::Directory

def assign_attributes(directory:)

def assign_attributes(directory:)
  @directory = {}
  @directory[:meta] = directory.delete('meta')
  DIRECTORY_RESOURCES.each do |key, entry|
    @directory[key] = URI(directory[entry]) if directory[entry]
  end
end

def caa_identities

def caa_identities
  meta[DIRECTORY_META[:caa_identities]]
end

def endpoint_for(key)

def endpoint_for(key)
  @directory.fetch(key) do |missing_key|
    raise Acme::Client::Error::UnsupportedOperation,
      "Directory at #{@url} does not include `#{missing_key}`"
  end
end

def external_account_required

def external_account_required
  meta[DIRECTORY_META[:external_account_required]]
end

def initialize(client, **arguments)

def initialize(client, **arguments)
  @client = client
  assign_attributes(**arguments)
end

def meta

def meta
  @directory[:meta]
end

def terms_of_service

def terms_of_service
  meta[DIRECTORY_META[:terms_of_service]]
end

def website

def website
  meta[DIRECTORY_META[:website]]
end