anchor.diff:  			{"recurringChargePeriod", rc_period(RCPeriod)}
   	end.
   
  --spec prod_price_description(Prefix, Price) -> Result
  -	when
  -		Prefix	:: erlang_term | json,
  -		Price		:: list() | #price{},
  -		Result	:: undefined | string() | tuple().
  -%% @private
  -prod_price_description(erlang_term, Price) ->
  -	proplists:get_value("description", Price, undefined);
  -prod_price_description(json, Price) ->
  -	{"description", Price#price.description}.
  -
  --spec price_alter_name(Prefix, PAlter) -> Result
  +-spec prod_price_alter_name(Prefix, PAlter) -> Result
   	when
   		Prefix :: erlang_term | json,
   		PAlter :: list() | #alteration{},
   		Result :: string() | tuple().
   %% @private
  -price_alter_name(erlang_term, PAlter) ->
  +prod_price_alter_name(erlang_term, PAlter) ->
   	{_, Name} = lists:keyfind("name", 1, PAlter),
   	Name;
  -price_alter_name(json, PAlter) ->
  +prod_price_alter_name(json, PAlter) ->
   	{"name", PAlter#alteration.name}.
   
  --spec price_alter_vf(Prefix, PAlter) -> Result
  +-spec prod_price_alter_vf(Prefix, PAlter) -> Result
   	when
   		Prefix :: erlang_term | json,
   		PAlter :: list() | #alteration{},
   		Result :: integer() | tuple().
   %% @private
  -price_alter_vf(erlang_term, PAlter) ->
  +prod_price_alter_vf(erlang_term, PAlter) ->
   	{_, {struct, PAlterVF}} = lists:keyfind("validFor", 1, PAlter),
   	{_, PAlterSTimeISO} = lists:keyfind("startDateTime", 1, PAlterVF),
   	ocs_rest:timestamp(PAlterSTimeISO).
   
  --spec price_alter_description(Prefix, PAlter) -> Result
  +-spec prod_price_alter_description(Prefix, PAlter) -> Result
   	when
   		Prefix :: erlang_term | json,
   		PAlter :: list() | #alteration{},
   		Result :: undefined | string() | tuple().
   %% @private
  -price_alter_description(erlang_term, PAlter) ->
  -	proplists:get_value("description", PAlter, undefined);
  -price_alter_description(json, PAlter) ->
  +prod_price_alter_description(erlang_term, PAlter) ->
  +	prod_proplists:get_value("description", PAlter, undefined);
  +prod_price_alter_description(json, PAlter) ->
   	case PAlter#alteration.description of
   		undefined ->
   			{"description", ""};
  
positive.code: %%----------------------------------------------------------------------
  %%  internal functions
  %%----------------------------------------------------------------------
  -spec prod_id(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_id(json, Product) ->
  	{"id", Product#product.name}.
  
  -spec prod_name(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product		:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_name(erlang_term, Product) ->
  	{_, Name} = lists:keyfind("name", 1, Product),
  	Name;
  prod_name(json, Prod) ->
  	{"name", Prod#product.name}.
  
  -spec prod_isBundle(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: boolean() | tuple().
  %% @private
  prod_isBundle(erlang_term, Product) ->
  	case lists:keyfind("isBundle", 1, Product) of
  		{"isBundle", "true"} -> true;
  		_ -> false
  	end;
  prod_isBundle(json, Product) ->
  	{"is_bundle", Product#product.is_bundle}.
  
  -spec prod_status(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_status(erlang_term, Product) ->
  	case lists:keyfind("lifecycleStatus", 1, Product) of
  		{_, FindStatus} ->
  			find_status(FindStatus);
  		false ->
  			"active"
  	end;
  prod_status(json, Product) ->
  	{"status", Product#product.status}.
  
  -spec prod_description(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: undefined | string() | tuple().
  %% @private
  prod_description(erlang_term, Product) ->
  	proplists:get_value("description", Product, undefined);
  prod_description(json, Product) ->
  	{"description", Product#product.description}.
  
  -spec prod_href(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: undefined | string() | tuple().
  %% @private
  prod_href(json, Product) ->
  	{"href", "/product/product/" ++ Product#product.name}.
  
  -spec prod_offering_price(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  
negative.code: 			{error, 500}
  	end.
  
  -spec prod_id(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_id(json, Product) ->
  	{"id", Product#product.name}.
  
  -spec prod_name(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_name(erlang_term, Product) ->
  	{_, Name} = lists:keyfind("name", 1, Product),
  	Name;
  prod_name(json, Prod) ->
  	{"name", Prod#product.name}.
  
  -spec prod_description(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: undefined | string() | tuple().
  %% @private
  prod_description(erlang_term, Product) ->
  	proplists:get_value("description", Product, undefined);
  prod_description(json, Product) ->
  	{"description", Product#product.description}.
  
  -spec prod_href(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: undefined | string() | tuple().
  %% @private
  prod_href(json, Product) ->
  	{"href", "/product/product/" ++ Product#product.name}.
  
  -spec prod_isBundle(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: boolean() | tuple().
  %% @private
  prod_isBundle(erlang_term, Product) ->
  	case lists:keyfind("isBundle", 1, Product) of
  		{"isBundle", "true"} -> true;
  		_ -> false
  	end;
  prod_isBundle(json, Product) ->
  	{"is_bundle", Product#product.is_bundle}.
  
  -spec prod_status(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_status(erlang_term, Product) ->
  	case lists:keyfind("lifecycleStatus", 1, Product) of
  		{_, FindStatus} ->
  			find_status(FindStatus);
  		false ->
  			"active"
  	end;
  prod_status(json, Product) ->
  	{"status", Product#product.status}.
  
  -spec prod_price_name(Prefix, Price) -> Result
  	when
  		Prefix	:: erlang_term | json,
  