/**
  * Assigns a property attribute to the specified product type, according to the information
  * defined in the request.
  *
  * <p>
  *
  * <pre><code>
  * ProductTypeProperty producttypeproperty = new ProductTypeProperty();
  * CountDownLatch latch = producttypeproperty.addProperty( attributeInProductType,  productTypeId,  responseFields, callback );
  * latch.await()	 * </code></pre>
  *
  * @param productTypeId Identifier of the product type.
  * @param responseFields Use this field to include those fields which are not included by default.
  * @param callback callback handler for asynchronous operations
  * @param dataViewMode DataViewMode
  * @param attributeInProductType Properties of an attribute definition associated with a specific
  *     product type. When an attribute is applied to a product type, each product of that type
  *     maintains the same set of attributes.
  * @return com.mozu.api.contracts.productadmin.AttributeInProductType
  * @see com.mozu.api.contracts.productadmin.AttributeInProductType
  * @see com.mozu.api.contracts.productadmin.AttributeInProductType
  */
 public CountDownLatch addPropertyAsync(
     com.mozu.api.contracts.productadmin.AttributeInProductType attributeInProductType,
     Integer productTypeId,
     String responseFields,
     AsyncCallback<com.mozu.api.contracts.productadmin.AttributeInProductType> callback)
     throws Exception {
   MozuClient<com.mozu.api.contracts.productadmin.AttributeInProductType> client =
       com.mozu.api.clients.commerce.catalog.admin.attributedefinition.producttypes
           .ProductTypePropertyClient.addPropertyClient(
           _dataViewMode, attributeInProductType, productTypeId, responseFields);
   client.setContext(_apiContext);
   return client.executeRequest(callback);
 }
 /**
  * Assigns a property attribute to the specified product type, according to the information
  * defined in the request.
  *
  * <p>
  *
  * <pre><code>
  * ProductTypeProperty producttypeproperty = new ProductTypeProperty();
  * AttributeInProductType attributeInProductType = producttypeproperty.addProperty( attributeInProductType,  productTypeId,  responseFields);
  * </code></pre>
  *
  * @param productTypeId Identifier of the product type.
  * @param responseFields Use this field to include those fields which are not included by default.
  * @param dataViewMode DataViewMode
  * @param attributeInProductType Properties of an attribute definition associated with a specific
  *     product type. When an attribute is applied to a product type, each product of that type
  *     maintains the same set of attributes.
  * @return com.mozu.api.contracts.productadmin.AttributeInProductType
  * @see com.mozu.api.contracts.productadmin.AttributeInProductType
  * @see com.mozu.api.contracts.productadmin.AttributeInProductType
  */
 public com.mozu.api.contracts.productadmin.AttributeInProductType addProperty(
     com.mozu.api.contracts.productadmin.AttributeInProductType attributeInProductType,
     Integer productTypeId,
     String responseFields)
     throws Exception {
   MozuClient<com.mozu.api.contracts.productadmin.AttributeInProductType> client =
       com.mozu.api.clients.commerce.catalog.admin.attributedefinition.producttypes
           .ProductTypePropertyClient.addPropertyClient(
           _dataViewMode, attributeInProductType, productTypeId, responseFields);
   client.setContext(_apiContext);
   client.executeRequest();
   return client.getResult();
 }