anchor.diff:  -include_lib("chef_objects/include/chef_types.hrl").
   -include("chef_otto.hrl").
   
  +-type couch_server() :: server().               % from couchbeam.hrl
  +
   -type authz_type() :: 'authz_client' |
                         'authz_container' |
                         'authz_cookbook' |
  
positive.code: data_bag_exists(Server, OrgId, DataBag) when is_list(DataBag), is_binary(OrgId) ->
      data_bag_exists(Server, OrgId, list_to_binary(DataBag)).
  
  -spec environment_exists(couchbeam:server(), binary(), binary() | string()) -> boolean().
  %% @doc Return true if there is an environment named `EnvName' in the
  %% specified org.
  %%
  
negative.code: 
  %% FIXME: not quite right. This returns a list of cookbook_versions, but not the right data
  %% for the API yet.
  %% -spec fetch_cookbooks(couch_server(), binary()) -> [binary()].
  %% fetch_cookbooks(Server, OrgId) -> fetch_objects(Server, OrgId, cookbook).
  
  -spec fetch_data_bags(couch_server(), binary()) -> [binary()].
  fetch_data_bags(Server, OrgId) ->
      fetch_objects(Server, OrgId, chef_data_bag).
  
  %% -spec fetch_data_bag_items(couch_server(), binary()) -> [binary()].
  %% fetch_data_bag_items(Server, OrgId) ->
  %%     fetch_objects(Server, OrgId, data_bag_items).
  
  -spec fetch_nodes(couch_server(), binary()) -> [binary()].
  fetch_nodes(Server, OrgId) ->
      fetch_objects(Server, OrgId, chef_node).
  
  -spec fetch_roles(couch_server(), binary()) -> [binary()].
  fetch_roles(Server, OrgId) ->
      fetch_objects(Server, OrgId, chef_role).
  
  