anchor.diff:  conflict_message(data_bag, _Name) ->
       %% {[{<<"error">>, [<<"Data Bag '", Name/binary, "' already exists">>]}]}.
       {[{<<"error">>, [<<"Data bag already exists">>]}]}.
  +
  +error_message(checksum_missing, Checksum) ->
  +    {[{<<"error">>, [iolist_to_binary([<<"Manifest has checksum ">>, Checksum,
  +                                       <<" but it hasn't yet been uploaded">>])]}]}.
   
   verify_request_message({not_found, org}, _User, Org) ->
       Msg = iolist_to_binary([<<"organization '">>, Org, <<"' does not exist.">>]),
  
positive.code:             {{halt, 500}, Req, State#base_state{log_msg = What}}
      end.
  
  -spec update_from_json(#wm_reqdata{}, #base_state{}, chef_object(), ejson_term()) ->
                                {true, #wm_reqdata{}, #base_state{}} |
                                {{halt, 404 | 500}, #wm_reqdata{}, #base_state{}}.
  %% @doc Implements the from_json callback for PUT requests to update Chef
  %% objects. `OrigObjectRec' should be the existing and unmodified `chef_object()'
  %% record. `ObjectEjson' is the parsed EJSON from the request body.
  
negative.code:                                                            chef_object:name(ObjectRec)),
                      Req1 = chef_rest_util:set_json_body(Req, Msg),
                      {{halt, 404}, Req1, State1};
                  {conflict, _} ->
                      Name = chef_object:name(ObjectRec),
                      TypeName = chef_object:type_name(ObjectRec),
                      RecType = erlang:element(1,ObjectRec),
                      LogMsg = {RecType, name_conflict, Name},
                      ConflictMsg = conflict_message(TypeName, Name),
                      {{halt, 409}, chef_rest_util:set_json_body(Req, ConflictMsg),
                       State#base_state{log_msg = LogMsg}};
                  {error, {checksum_missing, Checksum}} ->
                      % Catches the condition where the user attempts to reference a checksum that
                      % as not been uploaded.
                      % This leaves it open to be generified
                      % Not sure if we want to explicitly assume what is getting passed
                      % is chef_cookbook_version
                      LogMsg = {checksum_missing, Checksum},
                      ErrorMsg = error_message(checksum_missing, Checksum),
                      {{halt, 400}, chef_rest_util:set_json_body(Req, ErrorMsg),
                       State#base_state{log_msg = LogMsg}};
                  Why ->
                      State1 = State#base_state{log_msg = Why},
                      {{halt, 500}, Req, State1}
  