anchor.diff:        {{opt, <<"private_key">>}, boolean}
        ]}.
   
  -%% If name is not in JSON, use the name from the URL. Otherwise, use the name in the JSON.
  -osc_destination_name(Client, ReqName) ->
  -    Name = ej:get({<<"name">>}, Client),
  -    case {Name, ReqName} of
  -        {undefined, undefined} ->
  -            throw({both_missing, <<"name">>, <<"URL-NAME">>});
  -        {undefined, _} ->
  -            %% If the name is ommitted from the JSON then use what's in the URL
  -            {ReqName, ej:set({<<"name">>}, Client, ReqName)};
  -        {_, _} ->
  -            %% If both are present, leave as-is, because the user may be
  -            %% renaming (from name in URL to name in JSON).
  -            {Name, Client}
  -    end.
  -
  --spec oc_destination_name(ej:json_object(), binary() | undefined) -> {binary(), ej:json_object()} | no_return().
  -oc_destination_name(Client, ReqName) ->
  +
  +-spec destination_name(ej:json_object(), binary() | undefined) -> {binary(), ej:json_object()} | no_return().
  +destination_name(Client, ReqName) ->
       % Since either name or clientname is required (but not both), if only one is
       % passed, we will use it to set the other one
       Name = ej:get({<<"name">>}, Client),
  
positive.code: -include("../../include/chef_types.hrl").
  -include("../../include/chef_osc_defaults.hrl").
  
  -define(DEFAULT_FIELD_VALUES,
          [
           {<<"json_class">>, <<"Chef::ApiClient">>},
           {<<"chef_type">>, <<"client">>},
           {<<"validator">>, false},
           {<<"admin">>, false}
          ]).
  
  -define(OC_DEFAULT_FIELD_VALUES, [
                                    {<<"json_class">>, <<"Chef::ApiClient">>},
                                    {<<"chef_type">>, <<"client">>},
                                    {<<"validator">>, false},
                                    {<<"private_key">>, false}
                                   ]).
  
  -define(ASSEMBLE_CLIENT, osc_assemble_client_ejson).
  
  -define(PARSE_BINARY, osc_parse_binary_json).
  
  -ifdef(OC_CHEF).
  -undef(ASSEMBLE_CLIENT).
  -define(ASSEMBLE_CLIENT, oc_assemble_client_ejson).
  
  -undef(PARSE_BINARY).
  -define(PARSE_BINARY, oc_parse_binary_json).
  -endif.
  
  -behaviour(chef_object).
  
  
negative.code: 
  %% @doc creates the json body for clients
  -spec assemble_client_ejson(#chef_client{}, binary()) -> ejson_term().
  assemble_client_ejson(#chef_client{name = Name, validator = Validator,
                                        public_key = PublicKey}, OrgName) ->
      Values = [{<<"name">>, value_or_default(Name, <<"">>)},
                {<<"clientname">>, value_or_default(Name, <<"">>)},
  