anchor.diff:  	Value = {"value", ProdID},
   	{struct, [Op, Path, Value]}.
   
  -product_description(Description) ->
  +product_description() ->
  +	Description = ocs:generate_password(),
   	Op = {"op", "replace"},
   	Path = {"path", "/description"},
   	Value = {"value", Description},
   	{struct, [Op, Path, Value]}.
   
  -product_status(Status) ->
  +product_status() ->
  +	Status = "In Design", 
   	Op = {"op", "replace"},
   	Path = {"path", "/lifecycleStatus"},
   	Value = {"value", Status},
   	{struct, [Op, Path, Value]}.
   
  -prod_price_name(Index, Name) when is_integer(Index) ->
  -	prod_price_name(integer_to_list(Index), Name);
  -prod_price_name(Index, Name) when is_list(Index) ->
  +prod_price_name() ->
  +	Name = ocs:generate_password(),
   	Op = {"op", "replace"},
  -	Path = {"path", "/productOfferingPrice/" ++ Index ++ "/name"},
  +	Path = {"path", "/productOfferingPrice/1/name"},
   	Value = {"value", Name},
   	{struct, [Op, Path, Value]}.
   
  -prod_price_description(Index, Description) when is_integer(Index) ->
  -	prod_price_description(integer_to_list(Index), Description);
  -prod_price_description(Index, Description) when is_list(Index) ->
  +prod_price_description() ->
  +	Description = ocs:generate_password(),
   	Op = {"op", "replace"},
  -	Path = {"path", "/productOfferingPrice/" ++ Index ++ "/description"},
  +	Path = {"path", "/productOfferingPrice/1/description"},
   	Value = {"value", Description},
   	{struct, [Op, Path, Value]}.
   
  -prod_price_rc_period(Index, Period) when is_integer(Index) ->
  -	prod_price_rc_period(integer_to_list(Index), Period);
  -prod_price_rc_period(Index, Period) when is_list(Index) ->
  -	Op = {"op", "replace"},
  -	Path = {"path", "/productOfferingPrice/" ++ Index ++ "/recurringChargePeriod"},
  +prod_price_rc_period() ->
  +	Period = "yearly",
  +	Op = {"op", "add"},
  +	Path = {"path", "/productOfferingPrice/1/recurringChargePeriod"},
   	Value = {"value", Period},
   	{struct, [Op, Path, Value]}.
   
  -prod_price_ufm(Index, UFM) when is_integer(Index) ->
  -	prod_price_ufm(integer_to_list(Index), UFM);
  -prod_price_ufm(Index, UFM) when is_list(Index) ->
  +prod_price_ufm() ->
  +	UFM = "10000b",
   	Op = {"op", "replace"},
  -	Path = {"path", "/productOfferingPrice/" ++ Index ++ "/unitOfMeasure"},
  +	Path = {"path", "/productOfferingPrice/1/unitOfMeasure"},
   	Value = {"value", UFM},
   	{struct, [Op, Path, Value]}.
   
  -prod_price_type(Index, PT) when is_integer(Index) ->
  -	prod_price_type(integer_to_list(Index), PT);
  -prod_price_type(Index, PT) when is_list(Index) ->
  +prod_price_type() ->
  +	PT = "recurring",
   	Op = {"op", "replace"},
  -	Path = {"path", "/productOfferingPrice/" ++ Index ++ "/priceType"},
  +	Path = {"path", "/productOfferingPrice/1/priceType"},
   	Value = {"value", PT},
   	{struct, [Op, Path, Value]}.
   
  -pp_alter_name(Index, Name) when is_integer(Index) ->
  -	pp_alter_name(integer_to_list(Index), Name);
  -pp_alter_name(Index, Name) when is_list(Index) ->
  +pp_alter_name() ->
  +	Name = ocs:generate_password(),
   	Op = {"op", "replace"},
  -	Path = {"path", "/productOfferingPrice/" ++ Index ++ "/productOfferPriceAlteration/name"},
  +	Path = {"path", "/productOfferingPrice/1/productOfferPriceAlteration/name"},
   	Value = {"value", Name},
   	{struct, [Op, Path, Value]}.
   
  -pp_alter_description(Index, Des) when is_integer(Index) ->
  -	pp_alter_description(integer_to_list(Index), Des);
  -pp_alter_description(Index, Des) when is_list(Index) ->
  +pp_alter_description() ->
  +	Description = ocs:generate_password(),
   	Op = {"op", "replace"},
  -	Path = {"path", "/productOfferingPrice/" ++ Index ++ "/productOfferPriceAlteration/description"},
  -	Value = {"value", Des},
  +	Path = {"path", "/productOfferingPrice/1/productOfferPriceAlteration/description"},
  +	Value = {"value", Description},
   	{struct, [Op, Path, Value]}.
   
  -pp_alter_type(Index, PT) when is_integer(Index) ->
  -	pp_alter_type(integer_to_list(Index), PT);
  -pp_alter_type(Index, PT) when is_list(Index) ->
  +pp_alter_type() ->
  +	PT = "recurring",
   	Op = {"op", "replace"},
  -	Path = {"path", "/productOfferingPrice/" ++ Index ++ "/productOfferPriceAlteration/priceType"},
  +	Path = {"path", "/productOfferingPrice/1/productOfferPriceAlteration/priceType"},
   	Value = {"value", PT},
   	{struct, [Op, Path, Value]}.
   
  -pp_alter_ufm(Index, UFM) when is_integer(Index) ->
  -	pp_alter_ufm(integer_to_list(Index), UFM);
  -pp_alter_ufm(Index, UFM) when is_list(Index) ->
  +pp_alter_ufm() ->
  +	UFM = "1000b",
   	Op = {"op", "replace"},
  -	Path = {"path", "/productOfferingPrice/" ++ Index ++ "/productOfferPriceAlteration/unitOfMeasure"},
  +	Path = {"path", "/productOfferingPrice/1/productOfferPriceAlteration/unitOfMeasure"},
   	Value = {"value", UFM},
   	{struct, [Op, Path, Value]}.
   
  
positive.code: 	{struct, Product1} = mochijson:decode(ResponseBody),
  	RestPort = ?config(port, Config),
  	{_, ProductName} = lists:keyfind("name", 1, Product1),
  	Description = ocs:generate_password(),
  	SslSock = ssl_socket_open({127,0,0,1}, RestPort),
  	ok = update_product_description(SslSock, RestPort, ProductName, Description, Etag),
  	Status = "Pending Active",
  	ok = update_product_status(SslSock, RestPort, ProductName, Status, Etag),
  	ok = update_product_price(SslSock, RestPort, ProductName, Etag),
  	ok = ssl_socket_close(SslSock).
  
  %%---------------------------------------------------------------------
  
negative.code: 	ProdOfferPrice = {"productOfferingPrice", {array, [ProdOfferPrice1, ProdOfferPrice2]}},
  	[ProdName, ProdDescirption, IsBundle, IsCustomerVisible, ValidFor, ProdSpec, Status, ProdOfferPrice].
  
  patch_request(SslSock, Port, ContentType, Etag, AuthKey, ProdID, ReqBody) when is_list(ReqBody) ->
  	BinBody = list_to_binary(ReqBody),
  	patch_request(SslSock, Port, ContentType, Etag, AuthKey, ProdID, BinBody);
  