/*
 * Selling Partner API for Product Type Definitions
 * The Selling Partner API for Product Type Definitions provides programmatic access to attribute and data requirements for product types in the Amazon catalog. Use this API to return the JSON Schema for a product type that you can then use with other Selling Partner APIs, such as the Selling Partner API for Listings Items, the Selling Partner API for Catalog Items, and the Selling Partner API for Feeds (for JSON-based listing feeds).  For more information, see the [Product Type Definitions API Use Case Guide](doc:product-type-api-use-case-guide).
 *
 * OpenAPI spec version: 2020-09-01
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 *
 * Swagger Codegen version: 2.4.9
 *
 * Do not edit the class manually.
 *
 */

import { ApiClient } from "./ApiClient.js";
import { Error } from "./js-client.definitionsProductTypes_2020-09-01.model/Error.js";
import { ErrorList } from "./js-client.definitionsProductTypes_2020-09-01.model/ErrorList.js";
import { ProductType } from "./js-client.definitionsProductTypes_2020-09-01.model/ProductType.js";
import { ProductTypeDefinition } from "./js-client.definitionsProductTypes_2020-09-01.model/ProductTypeDefinition.js";
import { ProductTypeList } from "./js-client.definitionsProductTypes_2020-09-01.model/ProductTypeList.js";
import { ProductTypeVersion } from "./js-client.definitionsProductTypes_2020-09-01.model/ProductTypeVersion.js";
import { PropertyGroup } from "./js-client.definitionsProductTypes_2020-09-01.model/PropertyGroup.js";
import { SchemaLink } from "./js-client.definitionsProductTypes_2020-09-01.model/SchemaLink.js";
import { SchemaLinkLink } from "./js-client.definitionsProductTypes_2020-09-01.model/SchemaLinkLink.js";
import { DefinitionsApi } from "./js-client.definitionsProductTypes_2020-09-01.api/DefinitionsApi.js";

/**
 * The_Selling_Partner_API_for_Product_Type_Definitions_provides_programmatic_access_to_attribute_and_data_requirements_for_product_types_in_the_Amazon_catalog__Use_this_API_to_return_the_JSON_Schema_for_a_product_type_that_you_can_then_use_with_other_Selling_Partner_APIs_such_as_the_Selling_Partner_API_for_Listings_Items_the_Selling_Partner_API_for_Catalog_Items_and_the_Selling_Partner_API_for_Feeds__for_JSON_based_listing_feeds_For_more_information_see_the__Product_Type_Definitions_API_Use_Case_Guide_docproduct_type_api_use_case_guide_.<br>
 * The <code>index</code> module provides access to constructors for all the classes which comprise the public API.
 * <p>
 * An AMD (recommended!) or CommonJS application will generally do something equivalent to the following:
 * <pre>
 * var SellingPartnerApiForProductTypeDefinitions = require('definitionsProductTypes_2020-09-01/index'); // See note below*.
 * var xxxSvc = new SellingPartnerApiForProductTypeDefinitions.XxxApi(); // Allocate the API class we're going to use.
 * var yyyModel = new SellingPartnerApiForProductTypeDefinitions.Yyy(); // Construct a model instance.
 * yyyModel.someProperty = 'someValue';
 * ...
 * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
 * ...
 * </pre>
 * <em>*NOTE: For a top-level AMD script, use require(['definitionsProductTypes_2020-09-01/index'], function(){...})
 * and put the application logic within the callback function.</em>
 * </p>
 * <p>
 * A non-AMD browser application (discouraged) might do something like this:
 * <pre>
 * var xxxSvc = new SellingPartnerApiForProductTypeDefinitions.XxxApi(); // Allocate the API class we're going to use.
 * var yyy = new SellingPartnerApiForProductTypeDefinitions.Yyy(); // Construct a model instance.
 * yyyModel.someProperty = 'someValue';
 * ...
 * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
 * ...
 * </pre>
 * </p>
 * @module definitionsProductTypes_2020-09-01/index
 * @version 2020-09-01
 */
export {
  /**
   * The ApiClient constructor.
   * @property {module:definitionsProductTypes_2020-09-01/ApiClient}
   */
  ApiClient,

  /**
   * The Error model constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.model/Error}
   */
  Error,

  /**
   * The ErrorList model constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.model/ErrorList}
   */
  ErrorList,

  /**
   * The ProductType model constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.model/ProductType}
   */
  ProductType,

  /**
   * The ProductTypeDefinition model constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.model/ProductTypeDefinition}
   */
  ProductTypeDefinition,

  /**
   * The ProductTypeList model constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.model/ProductTypeList}
   */
  ProductTypeList,

  /**
   * The ProductTypeVersion model constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.model/ProductTypeVersion}
   */
  ProductTypeVersion,

  /**
   * The PropertyGroup model constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.model/PropertyGroup}
   */
  PropertyGroup,

  /**
   * The SchemaLink model constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.model/SchemaLink}
   */
  SchemaLink,

  /**
   * The SchemaLinkLink model constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.model/SchemaLinkLink}
   */
  SchemaLinkLink,

  /**
   * The DefinitionsApi service constructor.
   * @property {module:definitionsProductTypes_2020-09-01/js-client.definitionsProductTypes_2020-09-01.api/DefinitionsApi}
   */
  DefinitionsApi,
};
