{"version":3,"sources":["../src/index.ts","../src/runtime.ts","../src/models/DictionaryValue.ts","../src/models/SelectValue.ts","../src/models/AssetAttribute.ts","../src/models/ColumnAttribute.ts","../src/models/MatrixAttributeRow.ts","../src/models/MatrixAttributeColumn.ts","../src/models/Attribute.ts","../src/models/AttributeFilter.ts","../src/models/CategoryMediaAsset.ts","../src/models/MetaData.ts","../src/models/Category.ts","../src/models/ColumnAttributeDefinitionValue.ts","../src/models/CompoundAttributeSubDefinition.ts","../src/models/RelatedProductsRelationSortingOrderSource.ts","../src/models/ProductBundle.ts","../src/models/ProductType.ts","../src/models/ProductMediaAsset.ts","../src/models/RelationDirection.ts","../src/models/ProductRelation.ts","../src/models/Product.ts","../src/models/CursorPageProduct.ts","../src/models/CursorQuery.ts","../src/models/DiffType.ts","../src/models/DiffResponse.ts","../src/models/EntitiesPapiError.ts","../src/models/EntityPapiError.ts","../src/models/FilteringCriteriaRequest.ts","../src/models/RowAttributeDefinitionValue.ts","../src/models/GroupedAttributeDefinition.ts","../src/models/PaginatedAttribute.ts","../src/models/PaginatedCategory.ts","../src/models/PaginatedProduct.ts","../src/models/SimplifiedCategory.ts","../src/models/PaginatedSimplifiedCategory.ts","../src/models/PapiError.ts","../src/models/ProductResults.ts","../src/models/ProductsByIdsRequest.ts","../src/models/ProductsByNumbersRequest.ts","../src/models/PublishStateValues.ts","../src/models/PublishInfo.ts","../src/models/RelationDefinition.ts","../src/models/SegmentContextRequest.ts","../src/models/StatusPapiError.ts","../src/apis/AttributesApi.ts","../src/apis/CategoriesApi.ts","../src/apis/ContextsApi.ts","../src/apis/DifferencesApi.ts","../src/apis/HealthApi.ts","../src/apis/ProductsApi.ts","../src/apis/RelationsApi.ts","../src/apis/SyncsApi.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\nexport * from \"./runtime\";\nexport * from \"./apis/index\";\nexport * from \"./models/index\";\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport const BASE_PATH =\n  \"https://docs.api.bluestonepim.com/openapi/api.bluestonepim.com/v1\".replace(\n    /\\/+$/,\n    \"\"\n  );\n\nexport interface ConfigurationParameters {\n  basePath?: string; // override base path\n  fetchApi?: FetchAPI; // override for fetch implementation\n  middleware?: Middleware[]; // middleware to apply before/after fetch requests\n  queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n  username?: string; // parameter for basic security\n  password?: string; // parameter for basic security\n  apiKey?:\n    | string\n    | Promise<string>\n    | ((name: string) => string | Promise<string>); // parameter for apiKey security\n  accessToken?:\n    | string\n    | Promise<string>\n    | ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security\n  headers?: HTTPHeaders; //header params we want to use on every request\n  credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n  constructor(private configuration: ConfigurationParameters = {}) {}\n\n  set config(configuration: Configuration) {\n    this.configuration = configuration;\n  }\n\n  get basePath(): string {\n    return this.configuration.basePath != null\n      ? this.configuration.basePath\n      : BASE_PATH;\n  }\n\n  get fetchApi(): FetchAPI | undefined {\n    return this.configuration.fetchApi;\n  }\n\n  get middleware(): Middleware[] {\n    return this.configuration.middleware || [];\n  }\n\n  get queryParamsStringify(): (params: HTTPQuery) => string {\n    return this.configuration.queryParamsStringify || querystring;\n  }\n\n  get username(): string | undefined {\n    return this.configuration.username;\n  }\n\n  get password(): string | undefined {\n    return this.configuration.password;\n  }\n\n  get apiKey(): ((name: string) => string | Promise<string>) | undefined {\n    const apiKey = this.configuration.apiKey;\n    if (apiKey) {\n      return typeof apiKey === \"function\" ? apiKey : () => apiKey;\n    }\n    return undefined;\n  }\n\n  get accessToken():\n    | ((name?: string, scopes?: string[]) => string | Promise<string>)\n    | undefined {\n    const accessToken = this.configuration.accessToken;\n    if (accessToken) {\n      return typeof accessToken === \"function\"\n        ? accessToken\n        : async () => accessToken;\n    }\n    return undefined;\n  }\n\n  get headers(): HTTPHeaders | undefined {\n    return this.configuration.headers;\n  }\n\n  get credentials(): RequestCredentials | undefined {\n    return this.configuration.credentials;\n  }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n  private static readonly jsonRegex = new RegExp(\n    \"^(:?application/json|[^;/ \\t]+/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$\",\n    \"i\"\n  );\n  private middleware: Middleware[];\n\n  constructor(protected configuration = DefaultConfig) {\n    this.middleware = configuration.middleware;\n  }\n\n  withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {\n    const next = this.clone<T>();\n    next.middleware = next.middleware.concat(...middlewares);\n    return next;\n  }\n\n  withPreMiddleware<T extends BaseAPI>(\n    this: T,\n    ...preMiddlewares: Array<Middleware[\"pre\"]>\n  ) {\n    const middlewares = preMiddlewares.map((pre) => ({ pre }));\n    return this.withMiddleware<T>(...middlewares);\n  }\n\n  withPostMiddleware<T extends BaseAPI>(\n    this: T,\n    ...postMiddlewares: Array<Middleware[\"post\"]>\n  ) {\n    const middlewares = postMiddlewares.map((post) => ({ post }));\n    return this.withMiddleware<T>(...middlewares);\n  }\n\n  /**\n   * Check if the given MIME is a JSON MIME.\n   * JSON MIME examples:\n   *   application/json\n   *   application/json; charset=UTF8\n   *   APPLICATION/JSON\n   *   application/vnd.company+json\n   * @param mime - MIME (Multipurpose Internet Mail Extensions)\n   * @return True if the given MIME is JSON, false otherwise.\n   */\n  protected isJsonMime(mime: string | null | undefined): boolean {\n    if (!mime) {\n      return false;\n    }\n    return BaseAPI.jsonRegex.test(mime);\n  }\n\n  protected async request(\n    context: RequestOpts,\n    initOverrides?: RequestInit | InitOverrideFunction\n  ): Promise<Response> {\n    const { url, init } = await this.createFetchParams(context, initOverrides);\n    const response = await this.fetchApi(url, init);\n    if (response && response.status >= 200 && response.status < 300) {\n      return response;\n    }\n    throw new ResponseError(response, \"Response returned an error code\");\n  }\n\n  private async createFetchParams(\n    context: RequestOpts,\n    initOverrides?: RequestInit | InitOverrideFunction\n  ) {\n    let url = this.configuration.basePath + context.path;\n    if (\n      context.query !== undefined &&\n      Object.keys(context.query).length !== 0\n    ) {\n      // only add the querystring to the URL if there are query parameters.\n      // this is done to avoid urls ending with a \"?\" character which buggy webservers\n      // do not handle correctly sometimes.\n      url += \"?\" + this.configuration.queryParamsStringify(context.query);\n    }\n\n    const headers = Object.assign(\n      {},\n      this.configuration.headers,\n      context.headers\n    );\n    Object.keys(headers).forEach((key) =>\n      headers[key] === undefined ? delete headers[key] : {}\n    );\n\n    const initOverrideFn =\n      typeof initOverrides === \"function\"\n        ? initOverrides\n        : async () => initOverrides;\n\n    const initParams = {\n      method: context.method,\n      headers,\n      body: context.body,\n      credentials: this.configuration.credentials,\n    };\n\n    const overriddenInit: RequestInit = {\n      ...initParams,\n      ...(await initOverrideFn({\n        init: initParams,\n        context,\n      })),\n    };\n\n    let body: any;\n    if (\n      isFormData(overriddenInit.body) ||\n      overriddenInit.body instanceof URLSearchParams ||\n      isBlob(overriddenInit.body)\n    ) {\n      body = overriddenInit.body;\n    } else if (this.isJsonMime(headers[\"Content-Type\"])) {\n      body = JSON.stringify(overriddenInit.body);\n    } else {\n      body = overriddenInit.body;\n    }\n\n    const init: RequestInit = {\n      ...overriddenInit,\n      body,\n    };\n\n    return { url, init };\n  }\n\n  private fetchApi = async (url: string, init: RequestInit) => {\n    let fetchParams = { url, init };\n    for (const middleware of this.middleware) {\n      if (middleware.pre) {\n        fetchParams =\n          (await middleware.pre({\n            fetch: this.fetchApi,\n            ...fetchParams,\n          })) || fetchParams;\n      }\n    }\n    let response: Response | undefined = undefined;\n    try {\n      response = await (this.configuration.fetchApi || fetch)(\n        fetchParams.url,\n        fetchParams.init\n      );\n    } catch (e) {\n      for (const middleware of this.middleware) {\n        if (middleware.onError) {\n          response =\n            (await middleware.onError({\n              fetch: this.fetchApi,\n              url: fetchParams.url,\n              init: fetchParams.init,\n              error: e,\n              response: response ? response.clone() : undefined,\n            })) || response;\n        }\n      }\n      if (response === undefined) {\n        if (e instanceof Error) {\n          throw new FetchError(\n            e,\n            \"The request failed and the interceptors did not return an alternative response\"\n          );\n        } else {\n          throw e;\n        }\n      }\n    }\n    for (const middleware of this.middleware) {\n      if (middleware.post) {\n        response =\n          (await middleware.post({\n            fetch: this.fetchApi,\n            url: fetchParams.url,\n            init: fetchParams.init,\n            response: response.clone(),\n          })) || response;\n      }\n    }\n    return response;\n  };\n\n  /**\n   * Create a shallow clone of `this` by constructing a new instance\n   * and then shallow cloning data members.\n   */\n  private clone<T extends BaseAPI>(this: T): T {\n    const constructor = this.constructor as any;\n    const next = new constructor(this.configuration);\n    next.middleware = this.middleware.slice();\n    return next;\n  }\n}\n\nfunction isBlob(value: any): value is Blob {\n  return typeof Blob !== \"undefined\" && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n  return typeof FormData !== \"undefined\" && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n  override name: \"ResponseError\" = \"ResponseError\";\n  constructor(public response: Response, msg?: string) {\n    super(msg);\n  }\n}\n\nexport class FetchError extends Error {\n  override name: \"FetchError\" = \"FetchError\";\n  constructor(public cause: Error, msg?: string) {\n    super(msg);\n  }\n}\n\nexport class RequiredError extends Error {\n  override name: \"RequiredError\" = \"RequiredError\";\n  constructor(public field: string, msg?: string) {\n    super(msg);\n  }\n}\n\nexport const COLLECTION_FORMATS = {\n  csv: \",\",\n  ssv: \" \",\n  tsv: \"\\t\",\n  pipes: \"|\",\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope[\"fetch\"];\n\nexport type Json = any;\nexport type HTTPMethod =\n  | \"GET\"\n  | \"POST\"\n  | \"PUT\"\n  | \"PATCH\"\n  | \"DELETE\"\n  | \"OPTIONS\"\n  | \"HEAD\";\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = {\n  [key: string]:\n    | string\n    | number\n    | null\n    | boolean\n    | Array<string | number | null | boolean>\n    | Set<string | number | null | boolean>\n    | HTTPQuery;\n};\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = {\n  headers?: HTTPHeaders;\n  method: HTTPMethod;\n  credentials?: RequestCredentials;\n  body?: HTTPBody;\n};\nexport type ModelPropertyNaming =\n  | \"camelCase\"\n  | \"snake_case\"\n  | \"PascalCase\"\n  | \"original\";\n\nexport type InitOverrideFunction = (requestContext: {\n  init: HTTPRequestInit;\n  context: RequestOpts;\n}) => Promise<RequestInit>;\n\nexport interface FetchParams {\n  url: string;\n  init: RequestInit;\n}\n\nexport interface RequestOpts {\n  path: string;\n  method: HTTPMethod;\n  headers: HTTPHeaders;\n  query?: HTTPQuery;\n  body?: HTTPBody;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = \"\"): string {\n  return Object.keys(params)\n    .map((key) => querystringSingleKey(key, params[key], prefix))\n    .filter((part) => part.length > 0)\n    .join(\"&\");\n}\n\nfunction querystringSingleKey(\n  key: string,\n  value:\n    | string\n    | number\n    | null\n    | undefined\n    | boolean\n    | Array<string | number | null | boolean>\n    | Set<string | number | null | boolean>\n    | HTTPQuery,\n  keyPrefix: string = \"\"\n): string {\n  const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n  if (value instanceof Array) {\n    const multiValue = value\n      .map((singleValue) => encodeURIComponent(String(singleValue)))\n      .join(`&${encodeURIComponent(fullKey)}=`);\n    return `${encodeURIComponent(fullKey)}=${multiValue}`;\n  }\n  if (value instanceof Set) {\n    const valueAsArray = Array.from(value);\n    return querystringSingleKey(key, valueAsArray, keyPrefix);\n  }\n  if (value instanceof Date) {\n    return `${encodeURIComponent(fullKey)}=${encodeURIComponent(\n      value.toISOString()\n    )}`;\n  }\n  if (value instanceof Object) {\n    return querystring(value as HTTPQuery, fullKey);\n  }\n  return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n  return Object.keys(data).reduce(\n    (acc, key) => ({ ...acc, [key]: fn(data[key]) }),\n    {}\n  );\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n  for (const consume of consumes) {\n    if (\"multipart/form-data\" === consume.contentType) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport interface Consume {\n  contentType: string;\n}\n\nexport interface RequestContext {\n  fetch: FetchAPI;\n  url: string;\n  init: RequestInit;\n}\n\nexport interface ResponseContext {\n  fetch: FetchAPI;\n  url: string;\n  init: RequestInit;\n  response: Response;\n}\n\nexport interface ErrorContext {\n  fetch: FetchAPI;\n  url: string;\n  init: RequestInit;\n  error: unknown;\n  response?: Response;\n}\n\nexport interface Middleware {\n  pre?(context: RequestContext): Promise<FetchParams | void>;\n  post?(context: ResponseContext): Promise<Response | void>;\n  onError?(context: ErrorContext): Promise<Response | void>;\n}\n\nexport interface ApiResponse<T> {\n  raw: Response;\n  value(): Promise<T>;\n}\n\nexport interface ResponseTransformer<T> {\n  (json: any): T;\n}\n\nexport class JSONApiResponse<T> {\n  constructor(\n    public raw: Response,\n    private transformer: ResponseTransformer<T> = (jsonValue: any) => jsonValue\n  ) {}\n\n  async value(): Promise<T> {\n    return this.transformer(await this.raw.json());\n  }\n}\n\nexport class VoidApiResponse {\n  constructor(public raw: Response) {}\n\n  async value(): Promise<void> {\n    return undefined;\n  }\n}\n\nexport class BlobApiResponse {\n  constructor(public raw: Response) {}\n\n  async value(): Promise<Blob> {\n    return await this.raw.blob();\n  }\n}\n\nexport class TextApiResponse {\n  constructor(public raw: Response) {}\n\n  async value(): Promise<string> {\n    return await this.raw.text();\n  }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface DictionaryValue\n */\nexport interface DictionaryValue {\n  /**\n   *\n   * @type {string}\n   * @memberof DictionaryValue\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof DictionaryValue\n   */\n  number?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof DictionaryValue\n   */\n  value?: string;\n}\n\n/**\n * Check if a given object implements the DictionaryValue interface.\n */\nexport function instanceOfDictionaryValue(\n  value: object\n): value is DictionaryValue {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  return true;\n}\n\nexport function DictionaryValueFromJSON(json: any): DictionaryValue {\n  return DictionaryValueFromJSONTyped(json, false);\n}\n\nexport function DictionaryValueFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): DictionaryValue {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    value: json[\"value\"] == null ? undefined : json[\"value\"],\n  };\n}\n\nexport function DictionaryValueToJSON(json: any): DictionaryValue {\n  return DictionaryValueToJSONTyped(json, false);\n}\n\nexport function DictionaryValueToJSONTyped(\n  value?: DictionaryValue | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    number: value[\"number\"],\n    value: value[\"value\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface SelectValue\n */\nexport interface SelectValue {\n  /**\n   *\n   * @type {string}\n   * @memberof SelectValue\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof SelectValue\n   */\n  number?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof SelectValue\n   */\n  value?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof SelectValue\n   */\n  metadata?: string;\n}\n\n/**\n * Check if a given object implements the SelectValue interface.\n */\nexport function instanceOfSelectValue(value: object): value is SelectValue {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  return true;\n}\n\nexport function SelectValueFromJSON(json: any): SelectValue {\n  return SelectValueFromJSONTyped(json, false);\n}\n\nexport function SelectValueFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): SelectValue {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    value: json[\"value\"] == null ? undefined : json[\"value\"],\n    metadata: json[\"metadata\"] == null ? undefined : json[\"metadata\"],\n  };\n}\n\nexport function SelectValueToJSON(json: any): SelectValue {\n  return SelectValueToJSONTyped(json, false);\n}\n\nexport function SelectValueToJSONTyped(\n  value?: SelectValue | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    number: value[\"number\"],\n    value: value[\"value\"],\n    metadata: value[\"metadata\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { DictionaryValue } from \"./DictionaryValue\";\nimport {\n  DictionaryValueFromJSON,\n  DictionaryValueFromJSONTyped,\n  DictionaryValueToJSON,\n  DictionaryValueToJSONTyped,\n} from \"./DictionaryValue\";\nimport type { SelectValue } from \"./SelectValue\";\nimport {\n  SelectValueFromJSON,\n  SelectValueFromJSONTyped,\n  SelectValueToJSON,\n  SelectValueToJSONTyped,\n} from \"./SelectValue\";\n\n/**\n *\n * @export\n * @interface AssetAttribute\n */\nexport interface AssetAttribute {\n  /**\n   *\n   * @type {string}\n   * @memberof AssetAttribute\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof AssetAttribute\n   */\n  name?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof AssetAttribute\n   */\n  number?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof AssetAttribute\n   */\n  unit?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof AssetAttribute\n   */\n  groupName?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof AssetAttribute\n   */\n  groupNumber?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof AssetAttribute\n   */\n  dataType?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof AssetAttribute\n   */\n  valueType?: string;\n  /**\n   *\n   * @type {boolean}\n   * @memberof AssetAttribute\n   */\n  definingAttribute?: boolean;\n  /**\n   *\n   * @type {Array<string>}\n   * @memberof AssetAttribute\n   */\n  values: Array<string>;\n  /**\n   *\n   * @type {Array<SelectValue>}\n   * @memberof AssetAttribute\n   */\n  select?: Array<SelectValue>;\n  /**\n   *\n   * @type {Array<DictionaryValue>}\n   * @memberof AssetAttribute\n   */\n  dictionary?: Array<DictionaryValue>;\n}\n\n/**\n * Check if a given object implements the AssetAttribute interface.\n */\nexport function instanceOfAssetAttribute(\n  value: object\n): value is AssetAttribute {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"values\" in value) || value[\"values\"] === undefined) return false;\n  return true;\n}\n\nexport function AssetAttributeFromJSON(json: any): AssetAttribute {\n  return AssetAttributeFromJSONTyped(json, false);\n}\n\nexport function AssetAttributeFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): AssetAttribute {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    name: json[\"name\"] == null ? undefined : json[\"name\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    unit: json[\"unit\"] == null ? undefined : json[\"unit\"],\n    groupName: json[\"groupName\"] == null ? undefined : json[\"groupName\"],\n    groupNumber: json[\"groupNumber\"] == null ? undefined : json[\"groupNumber\"],\n    dataType: json[\"dataType\"] == null ? undefined : json[\"dataType\"],\n    valueType: json[\"valueType\"] == null ? undefined : json[\"valueType\"],\n    definingAttribute:\n      json[\"definingAttribute\"] == null ? undefined : json[\"definingAttribute\"],\n    values: json[\"values\"],\n    select:\n      json[\"select\"] == null\n        ? undefined\n        : (json[\"select\"] as Array<any>).map(SelectValueFromJSON),\n    dictionary:\n      json[\"dictionary\"] == null\n        ? undefined\n        : (json[\"dictionary\"] as Array<any>).map(DictionaryValueFromJSON),\n  };\n}\n\nexport function AssetAttributeToJSON(json: any): AssetAttribute {\n  return AssetAttributeToJSONTyped(json, false);\n}\n\nexport function AssetAttributeToJSONTyped(\n  value?: AssetAttribute | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    name: value[\"name\"],\n    number: value[\"number\"],\n    unit: value[\"unit\"],\n    groupName: value[\"groupName\"],\n    groupNumber: value[\"groupNumber\"],\n    dataType: value[\"dataType\"],\n    valueType: value[\"valueType\"],\n    definingAttribute: value[\"definingAttribute\"],\n    values: value[\"values\"],\n    select:\n      value[\"select\"] == null\n        ? undefined\n        : (value[\"select\"] as Array<any>).map(SelectValueToJSON),\n    dictionary:\n      value[\"dictionary\"] == null\n        ? undefined\n        : (value[\"dictionary\"] as Array<any>).map(DictionaryValueToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface ColumnAttribute\n */\nexport interface ColumnAttribute {\n  /**\n   *\n   * @type {string}\n   * @memberof ColumnAttribute\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ColumnAttribute\n   */\n  name?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ColumnAttribute\n   */\n  value?: string;\n}\n\n/**\n * Check if a given object implements the ColumnAttribute interface.\n */\nexport function instanceOfColumnAttribute(\n  value: object\n): value is ColumnAttribute {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  return true;\n}\n\nexport function ColumnAttributeFromJSON(json: any): ColumnAttribute {\n  return ColumnAttributeFromJSONTyped(json, false);\n}\n\nexport function ColumnAttributeFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): ColumnAttribute {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    name: json[\"name\"] == null ? undefined : json[\"name\"],\n    value: json[\"value\"] == null ? undefined : json[\"value\"],\n  };\n}\n\nexport function ColumnAttributeToJSON(json: any): ColumnAttribute {\n  return ColumnAttributeToJSONTyped(json, false);\n}\n\nexport function ColumnAttributeToJSONTyped(\n  value?: ColumnAttribute | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    name: value[\"name\"],\n    value: value[\"value\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface MatrixAttributeRow\n */\nexport interface MatrixAttributeRow {\n  /**\n   *\n   * @type {string}\n   * @memberof MatrixAttributeRow\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof MatrixAttributeRow\n   */\n  name?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof MatrixAttributeRow\n   */\n  value?: string;\n}\n\n/**\n * Check if a given object implements the MatrixAttributeRow interface.\n */\nexport function instanceOfMatrixAttributeRow(\n  value: object\n): value is MatrixAttributeRow {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  return true;\n}\n\nexport function MatrixAttributeRowFromJSON(json: any): MatrixAttributeRow {\n  return MatrixAttributeRowFromJSONTyped(json, false);\n}\n\nexport function MatrixAttributeRowFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): MatrixAttributeRow {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    name: json[\"name\"] == null ? undefined : json[\"name\"],\n    value: json[\"value\"] == null ? undefined : json[\"value\"],\n  };\n}\n\nexport function MatrixAttributeRowToJSON(json: any): MatrixAttributeRow {\n  return MatrixAttributeRowToJSONTyped(json, false);\n}\n\nexport function MatrixAttributeRowToJSONTyped(\n  value?: MatrixAttributeRow | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    name: value[\"name\"],\n    value: value[\"value\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { MatrixAttributeRow } from \"./MatrixAttributeRow\";\nimport {\n  MatrixAttributeRowFromJSON,\n  MatrixAttributeRowFromJSONTyped,\n  MatrixAttributeRowToJSON,\n  MatrixAttributeRowToJSONTyped,\n} from \"./MatrixAttributeRow\";\n\n/**\n *\n * @export\n * @interface MatrixAttributeColumn\n */\nexport interface MatrixAttributeColumn {\n  /**\n   *\n   * @type {string}\n   * @memberof MatrixAttributeColumn\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof MatrixAttributeColumn\n   */\n  name?: string;\n  /**\n   *\n   * @type {Array<MatrixAttributeRow>}\n   * @memberof MatrixAttributeColumn\n   */\n  rows?: Array<MatrixAttributeRow>;\n}\n\n/**\n * Check if a given object implements the MatrixAttributeColumn interface.\n */\nexport function instanceOfMatrixAttributeColumn(\n  value: object\n): value is MatrixAttributeColumn {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  return true;\n}\n\nexport function MatrixAttributeColumnFromJSON(\n  json: any\n): MatrixAttributeColumn {\n  return MatrixAttributeColumnFromJSONTyped(json, false);\n}\n\nexport function MatrixAttributeColumnFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): MatrixAttributeColumn {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    name: json[\"name\"] == null ? undefined : json[\"name\"],\n    rows:\n      json[\"rows\"] == null\n        ? undefined\n        : (json[\"rows\"] as Array<any>).map(MatrixAttributeRowFromJSON),\n  };\n}\n\nexport function MatrixAttributeColumnToJSON(json: any): MatrixAttributeColumn {\n  return MatrixAttributeColumnToJSONTyped(json, false);\n}\n\nexport function MatrixAttributeColumnToJSONTyped(\n  value?: MatrixAttributeColumn | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    name: value[\"name\"],\n    rows:\n      value[\"rows\"] == null\n        ? undefined\n        : (value[\"rows\"] as Array<any>).map(MatrixAttributeRowToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { ColumnAttribute } from \"./ColumnAttribute\";\nimport {\n  ColumnAttributeFromJSON,\n  ColumnAttributeFromJSONTyped,\n  ColumnAttributeToJSON,\n  ColumnAttributeToJSONTyped,\n} from \"./ColumnAttribute\";\nimport type { DictionaryValue } from \"./DictionaryValue\";\nimport {\n  DictionaryValueFromJSON,\n  DictionaryValueFromJSONTyped,\n  DictionaryValueToJSON,\n  DictionaryValueToJSONTyped,\n} from \"./DictionaryValue\";\nimport type { MatrixAttributeColumn } from \"./MatrixAttributeColumn\";\nimport {\n  MatrixAttributeColumnFromJSON,\n  MatrixAttributeColumnFromJSONTyped,\n  MatrixAttributeColumnToJSON,\n  MatrixAttributeColumnToJSONTyped,\n} from \"./MatrixAttributeColumn\";\nimport type { SelectValue } from \"./SelectValue\";\nimport {\n  SelectValueFromJSON,\n  SelectValueFromJSONTyped,\n  SelectValueToJSON,\n  SelectValueToJSONTyped,\n} from \"./SelectValue\";\n\n/**\n *\n * @export\n * @interface Attribute\n */\nexport interface Attribute {\n  /**\n   *\n   * @type {string}\n   * @memberof Attribute\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof Attribute\n   */\n  name?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof Attribute\n   */\n  number?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof Attribute\n   */\n  unit?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof Attribute\n   */\n  groupName?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof Attribute\n   */\n  groupNumber?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof Attribute\n   */\n  dataType?: string;\n  /**\n   *\n   * @type {boolean}\n   * @memberof Attribute\n   */\n  isCompound?: boolean;\n  /**\n   *\n   * @type {string}\n   * @memberof Attribute\n   */\n  valueType?: string;\n  /**\n   *\n   * @type {boolean}\n   * @memberof Attribute\n   */\n  definingAttribute?: boolean;\n  /**\n   *\n   * @type {Array<string>}\n   * @memberof Attribute\n   */\n  values: Array<string>;\n  /**\n   *\n   * @type {Array<SelectValue>}\n   * @memberof Attribute\n   */\n  select?: Array<SelectValue>;\n  /**\n   *\n   * @type {Array<ColumnAttribute>}\n   * @memberof Attribute\n   */\n  column?: Array<ColumnAttribute>;\n  /**\n   *\n   * @type {Array<MatrixAttributeColumn>}\n   * @memberof Attribute\n   */\n  matrix?: Array<MatrixAttributeColumn>;\n  /**\n   *\n   * @type {Array<DictionaryValue>}\n   * @memberof Attribute\n   */\n  dictionary?: Array<DictionaryValue>;\n}\n\n/**\n * Check if a given object implements the Attribute interface.\n */\nexport function instanceOfAttribute(value: object): value is Attribute {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"values\" in value) || value[\"values\"] === undefined) return false;\n  return true;\n}\n\nexport function AttributeFromJSON(json: any): Attribute {\n  return AttributeFromJSONTyped(json, false);\n}\n\nexport function AttributeFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): Attribute {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    name: json[\"name\"] == null ? undefined : json[\"name\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    unit: json[\"unit\"] == null ? undefined : json[\"unit\"],\n    groupName: json[\"groupName\"] == null ? undefined : json[\"groupName\"],\n    groupNumber: json[\"groupNumber\"] == null ? undefined : json[\"groupNumber\"],\n    dataType: json[\"dataType\"] == null ? undefined : json[\"dataType\"],\n    isCompound: json[\"isCompound\"] == null ? undefined : json[\"isCompound\"],\n    valueType: json[\"valueType\"] == null ? undefined : json[\"valueType\"],\n    definingAttribute:\n      json[\"definingAttribute\"] == null ? undefined : json[\"definingAttribute\"],\n    values: json[\"values\"],\n    select:\n      json[\"select\"] == null\n        ? undefined\n        : (json[\"select\"] as Array<any>).map(SelectValueFromJSON),\n    column:\n      json[\"column\"] == null\n        ? undefined\n        : (json[\"column\"] as Array<any>).map(ColumnAttributeFromJSON),\n    matrix:\n      json[\"matrix\"] == null\n        ? undefined\n        : (json[\"matrix\"] as Array<any>).map(MatrixAttributeColumnFromJSON),\n    dictionary:\n      json[\"dictionary\"] == null\n        ? undefined\n        : (json[\"dictionary\"] as Array<any>).map(DictionaryValueFromJSON),\n  };\n}\n\nexport function AttributeToJSON(json: any): Attribute {\n  return AttributeToJSONTyped(json, false);\n}\n\nexport function AttributeToJSONTyped(\n  value?: Attribute | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    name: value[\"name\"],\n    number: value[\"number\"],\n    unit: value[\"unit\"],\n    groupName: value[\"groupName\"],\n    groupNumber: value[\"groupNumber\"],\n    dataType: value[\"dataType\"],\n    isCompound: value[\"isCompound\"],\n    valueType: value[\"valueType\"],\n    definingAttribute: value[\"definingAttribute\"],\n    values: value[\"values\"],\n    select:\n      value[\"select\"] == null\n        ? undefined\n        : (value[\"select\"] as Array<any>).map(SelectValueToJSON),\n    column:\n      value[\"column\"] == null\n        ? undefined\n        : (value[\"column\"] as Array<any>).map(ColumnAttributeToJSON),\n    matrix:\n      value[\"matrix\"] == null\n        ? undefined\n        : (value[\"matrix\"] as Array<any>).map(MatrixAttributeColumnToJSON),\n    dictionary:\n      value[\"dictionary\"] == null\n        ? undefined\n        : (value[\"dictionary\"] as Array<any>).map(DictionaryValueToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface AttributeFilter\n */\nexport interface AttributeFilter {\n  /**\n   * Attribute number the product must have.\n   * @type {string}\n   * @memberof AttributeFilter\n   */\n  number?: string;\n  /**\n   * Attribute value the product must have.\n   * @type {string}\n   * @memberof AttributeFilter\n   */\n  value?: string;\n}\n\n/**\n * Check if a given object implements the AttributeFilter interface.\n */\nexport function instanceOfAttributeFilter(\n  value: object\n): value is AttributeFilter {\n  return true;\n}\n\nexport function AttributeFilterFromJSON(json: any): AttributeFilter {\n  return AttributeFilterFromJSONTyped(json, false);\n}\n\nexport function AttributeFilterFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): AttributeFilter {\n  if (json == null) {\n    return json;\n  }\n  return {\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    value: json[\"value\"] == null ? undefined : json[\"value\"],\n  };\n}\n\nexport function AttributeFilterToJSON(json: any): AttributeFilter {\n  return AttributeFilterToJSONTyped(json, false);\n}\n\nexport function AttributeFilterToJSONTyped(\n  value?: AttributeFilter | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    number: value[\"number\"],\n    value: value[\"value\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface CategoryMediaAsset\n */\nexport interface CategoryMediaAsset {\n  /**\n   *\n   * @type {string}\n   * @memberof CategoryMediaAsset\n   */\n  id?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof CategoryMediaAsset\n   */\n  downloadUri: string;\n  /**\n   *\n   * @type {string}\n   * @memberof CategoryMediaAsset\n   */\n  previewUri: string;\n  /**\n   *\n   * @type {string}\n   * @memberof CategoryMediaAsset\n   */\n  name: string;\n  /**\n   *\n   * @type {string}\n   * @memberof CategoryMediaAsset\n   */\n  description?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof CategoryMediaAsset\n   */\n  fileName?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof CategoryMediaAsset\n   */\n  contentType: string;\n  /**\n   *\n   * @type {Array<string>}\n   * @memberof CategoryMediaAsset\n   */\n  labels: Array<string>;\n  /**\n   *\n   * @type {number}\n   * @memberof CategoryMediaAsset\n   */\n  createdAt?: number;\n  /**\n   *\n   * @type {number}\n   * @memberof CategoryMediaAsset\n   */\n  updatedAt?: number;\n  /**\n   *\n   * @type {string}\n   * @memberof CategoryMediaAsset\n   */\n  number?: string;\n}\n\n/**\n * Check if a given object implements the CategoryMediaAsset interface.\n */\nexport function instanceOfCategoryMediaAsset(\n  value: object\n): value is CategoryMediaAsset {\n  if (!(\"downloadUri\" in value) || value[\"downloadUri\"] === undefined)\n    return false;\n  if (!(\"previewUri\" in value) || value[\"previewUri\"] === undefined)\n    return false;\n  if (!(\"name\" in value) || value[\"name\"] === undefined) return false;\n  if (!(\"contentType\" in value) || value[\"contentType\"] === undefined)\n    return false;\n  if (!(\"labels\" in value) || value[\"labels\"] === undefined) return false;\n  return true;\n}\n\nexport function CategoryMediaAssetFromJSON(json: any): CategoryMediaAsset {\n  return CategoryMediaAssetFromJSONTyped(json, false);\n}\n\nexport function CategoryMediaAssetFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): CategoryMediaAsset {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"] == null ? undefined : json[\"id\"],\n    downloadUri: json[\"downloadUri\"],\n    previewUri: json[\"previewUri\"],\n    name: json[\"name\"],\n    description: json[\"description\"] == null ? undefined : json[\"description\"],\n    fileName: json[\"fileName\"] == null ? undefined : json[\"fileName\"],\n    contentType: json[\"contentType\"],\n    labels: json[\"labels\"],\n    createdAt: json[\"createdAt\"] == null ? undefined : json[\"createdAt\"],\n    updatedAt: json[\"updatedAt\"] == null ? undefined : json[\"updatedAt\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n  };\n}\n\nexport function CategoryMediaAssetToJSON(json: any): CategoryMediaAsset {\n  return CategoryMediaAssetToJSONTyped(json, false);\n}\n\nexport function CategoryMediaAssetToJSONTyped(\n  value?: CategoryMediaAsset | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    downloadUri: value[\"downloadUri\"],\n    previewUri: value[\"previewUri\"],\n    name: value[\"name\"],\n    description: value[\"description\"],\n    fileName: value[\"fileName\"],\n    contentType: value[\"contentType\"],\n    labels: value[\"labels\"],\n    createdAt: value[\"createdAt\"],\n    updatedAt: value[\"updatedAt\"],\n    number: value[\"number\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface MetaData\n */\nexport interface MetaData {\n  /**\n   *\n   * @type {string}\n   * @memberof MetaData\n   */\n  id: string;\n  /**\n   *\n   * @type {any}\n   * @memberof MetaData\n   */\n  value: any | null;\n}\n\n/**\n * Check if a given object implements the MetaData interface.\n */\nexport function instanceOfMetaData(value: object): value is MetaData {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"value\" in value) || value[\"value\"] === undefined) return false;\n  return true;\n}\n\nexport function MetaDataFromJSON(json: any): MetaData {\n  return MetaDataFromJSONTyped(json, false);\n}\n\nexport function MetaDataFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): MetaData {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    value: json[\"value\"],\n  };\n}\n\nexport function MetaDataToJSON(json: any): MetaData {\n  return MetaDataToJSONTyped(json, false);\n}\n\nexport function MetaDataToJSONTyped(\n  value?: MetaData | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    value: value[\"value\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { Attribute } from \"./Attribute\";\nimport {\n  AttributeFromJSON,\n  AttributeFromJSONTyped,\n  AttributeToJSON,\n  AttributeToJSONTyped,\n} from \"./Attribute\";\nimport type { CategoryMediaAsset } from \"./CategoryMediaAsset\";\nimport {\n  CategoryMediaAssetFromJSON,\n  CategoryMediaAssetFromJSONTyped,\n  CategoryMediaAssetToJSON,\n  CategoryMediaAssetToJSONTyped,\n} from \"./CategoryMediaAsset\";\nimport type { MetaData } from \"./MetaData\";\nimport {\n  MetaDataFromJSON,\n  MetaDataFromJSONTyped,\n  MetaDataToJSON,\n  MetaDataToJSONTyped,\n} from \"./MetaData\";\n\n/**\n * The category with fetched sub categories.\n * @export\n * @interface Category\n */\nexport interface Category {\n  /**\n   * id of the category.\n   * @type {string}\n   * @memberof Category\n   */\n  id: string;\n  /**\n   * id of parent category.\n   * @type {string}\n   * @memberof Category\n   */\n  parentId?: string;\n  /**\n   * order of category in parent category.\n   * @type {number}\n   * @memberof Category\n   */\n  order?: number;\n  /**\n   * Category name.\n   * @type {string}\n   * @memberof Category\n   */\n  name: string;\n  /**\n   * Category number.\n   * @type {string}\n   * @memberof Category\n   */\n  number?: string;\n  /**\n   * Category description.\n   * @type {string}\n   * @memberof Category\n   */\n  description?: string;\n  /**\n   * Category media assets.\n   * @type {Array<CategoryMediaAsset>}\n   * @memberof Category\n   */\n  media?: Array<CategoryMediaAsset>;\n  /**\n   * Category attributes.\n   * @type {Array<Attribute>}\n   * @memberof Category\n   */\n  attributes?: Array<Attribute>;\n  /**\n   * Any metadata.\n   * @type {Array<MetaData>}\n   * @memberof Category\n   */\n  metaData?: Array<MetaData>;\n  /**\n   * A set of sub categories.\n   * @type {Array<Category>}\n   * @memberof Category\n   */\n  subCategories?: Array<Category>;\n}\n\n/**\n * Check if a given object implements the Category interface.\n */\nexport function instanceOfCategory(value: object): value is Category {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"name\" in value) || value[\"name\"] === undefined) return false;\n  return true;\n}\n\nexport function CategoryFromJSON(json: any): Category {\n  return CategoryFromJSONTyped(json, false);\n}\n\nexport function CategoryFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): Category {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    parentId: json[\"parentId\"] == null ? undefined : json[\"parentId\"],\n    order: json[\"order\"] == null ? undefined : json[\"order\"],\n    name: json[\"name\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    description: json[\"description\"] == null ? undefined : json[\"description\"],\n    media:\n      json[\"media\"] == null\n        ? undefined\n        : (json[\"media\"] as Array<any>).map(CategoryMediaAssetFromJSON),\n    attributes:\n      json[\"attributes\"] == null\n        ? undefined\n        : (json[\"attributes\"] as Array<any>).map(AttributeFromJSON),\n    metaData:\n      json[\"metaData\"] == null\n        ? undefined\n        : (json[\"metaData\"] as Array<any>).map(MetaDataFromJSON),\n    subCategories:\n      json[\"subCategories\"] == null\n        ? undefined\n        : (json[\"subCategories\"] as Array<any>).map(CategoryFromJSON),\n  };\n}\n\nexport function CategoryToJSON(json: any): Category {\n  return CategoryToJSONTyped(json, false);\n}\n\nexport function CategoryToJSONTyped(\n  value?: Category | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    parentId: value[\"parentId\"],\n    order: value[\"order\"],\n    name: value[\"name\"],\n    number: value[\"number\"],\n    description: value[\"description\"],\n    media:\n      value[\"media\"] == null\n        ? undefined\n        : (value[\"media\"] as Array<any>).map(CategoryMediaAssetToJSON),\n    attributes:\n      value[\"attributes\"] == null\n        ? undefined\n        : (value[\"attributes\"] as Array<any>).map(AttributeToJSON),\n    metaData:\n      value[\"metaData\"] == null\n        ? undefined\n        : (value[\"metaData\"] as Array<any>).map(MetaDataToJSON),\n    subCategories:\n      value[\"subCategories\"] == null\n        ? undefined\n        : (value[\"subCategories\"] as Array<any>).map(CategoryToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface ColumnAttributeDefinitionValue\n */\nexport interface ColumnAttributeDefinitionValue {\n  /**\n   *\n   * @type {string}\n   * @memberof ColumnAttributeDefinitionValue\n   */\n  valueId: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ColumnAttributeDefinitionValue\n   */\n  value?: string;\n}\n\n/**\n * Check if a given object implements the ColumnAttributeDefinitionValue interface.\n */\nexport function instanceOfColumnAttributeDefinitionValue(\n  value: object\n): value is ColumnAttributeDefinitionValue {\n  if (!(\"valueId\" in value) || value[\"valueId\"] === undefined) return false;\n  return true;\n}\n\nexport function ColumnAttributeDefinitionValueFromJSON(\n  json: any\n): ColumnAttributeDefinitionValue {\n  return ColumnAttributeDefinitionValueFromJSONTyped(json, false);\n}\n\nexport function ColumnAttributeDefinitionValueFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): ColumnAttributeDefinitionValue {\n  if (json == null) {\n    return json;\n  }\n  return {\n    valueId: json[\"valueId\"],\n    value: json[\"value\"] == null ? undefined : json[\"value\"],\n  };\n}\n\nexport function ColumnAttributeDefinitionValueToJSON(\n  json: any\n): ColumnAttributeDefinitionValue {\n  return ColumnAttributeDefinitionValueToJSONTyped(json, false);\n}\n\nexport function ColumnAttributeDefinitionValueToJSONTyped(\n  value?: ColumnAttributeDefinitionValue | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    valueId: value[\"valueId\"],\n    value: value[\"value\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface CompoundAttributeSubDefinition\n */\nexport interface CompoundAttributeSubDefinition {\n  /**\n   *\n   * @type {string}\n   * @memberof CompoundAttributeSubDefinition\n   */\n  id: string;\n  /**\n   *\n   * @type {boolean}\n   * @memberof CompoundAttributeSubDefinition\n   */\n  isCompound?: boolean;\n}\n\n/**\n * Check if a given object implements the CompoundAttributeSubDefinition interface.\n */\nexport function instanceOfCompoundAttributeSubDefinition(\n  value: object\n): value is CompoundAttributeSubDefinition {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  return true;\n}\n\nexport function CompoundAttributeSubDefinitionFromJSON(\n  json: any\n): CompoundAttributeSubDefinition {\n  return CompoundAttributeSubDefinitionFromJSONTyped(json, false);\n}\n\nexport function CompoundAttributeSubDefinitionFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): CompoundAttributeSubDefinition {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    isCompound: json[\"isCompound\"] == null ? undefined : json[\"isCompound\"],\n  };\n}\n\nexport function CompoundAttributeSubDefinitionToJSON(\n  json: any\n): CompoundAttributeSubDefinition {\n  return CompoundAttributeSubDefinitionToJSONTyped(json, false);\n}\n\nexport function CompoundAttributeSubDefinitionToJSONTyped(\n  value?: CompoundAttributeSubDefinition | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    isCompound: value[\"isCompound\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n */\nexport const RelatedProductsRelationSortingOrderSource = {\n  RelationDefinition: \"RELATION_DEFINITION\",\n  Product: \"PRODUCT\",\n} as const;\nexport type RelatedProductsRelationSortingOrderSource =\n  (typeof RelatedProductsRelationSortingOrderSource)[keyof typeof RelatedProductsRelationSortingOrderSource];\n\nexport function instanceOfRelatedProductsRelationSortingOrderSource(\n  value: any\n): boolean {\n  for (const key in RelatedProductsRelationSortingOrderSource) {\n    if (\n      Object.prototype.hasOwnProperty.call(\n        RelatedProductsRelationSortingOrderSource,\n        key\n      )\n    ) {\n      if (\n        RelatedProductsRelationSortingOrderSource[\n          key as keyof typeof RelatedProductsRelationSortingOrderSource\n        ] === value\n      ) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\n\nexport function RelatedProductsRelationSortingOrderSourceFromJSON(\n  json: any\n): RelatedProductsRelationSortingOrderSource {\n  return RelatedProductsRelationSortingOrderSourceFromJSONTyped(json, false);\n}\n\nexport function RelatedProductsRelationSortingOrderSourceFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): RelatedProductsRelationSortingOrderSource {\n  return json as RelatedProductsRelationSortingOrderSource;\n}\n\nexport function RelatedProductsRelationSortingOrderSourceToJSON(\n  value?: RelatedProductsRelationSortingOrderSource | null\n): any {\n  return value as any;\n}\n\nexport function RelatedProductsRelationSortingOrderSourceToJSONTyped(\n  value: any,\n  ignoreDiscriminator: boolean\n): RelatedProductsRelationSortingOrderSource {\n  return value as RelatedProductsRelationSortingOrderSource;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface ProductBundle\n */\nexport interface ProductBundle {\n  /**\n   *\n   * @type {string}\n   * @memberof ProductBundle\n   */\n  productId: string;\n  /**\n   *\n   * @type {number}\n   * @memberof ProductBundle\n   */\n  quantity: number;\n}\n\n/**\n * Check if a given object implements the ProductBundle interface.\n */\nexport function instanceOfProductBundle(value: object): value is ProductBundle {\n  if (!(\"productId\" in value) || value[\"productId\"] === undefined) return false;\n  if (!(\"quantity\" in value) || value[\"quantity\"] === undefined) return false;\n  return true;\n}\n\nexport function ProductBundleFromJSON(json: any): ProductBundle {\n  return ProductBundleFromJSONTyped(json, false);\n}\n\nexport function ProductBundleFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): ProductBundle {\n  if (json == null) {\n    return json;\n  }\n  return {\n    productId: json[\"productId\"],\n    quantity: json[\"quantity\"],\n  };\n}\n\nexport function ProductBundleToJSON(json: any): ProductBundle {\n  return ProductBundleToJSONTyped(json, false);\n}\n\nexport function ProductBundleToJSONTyped(\n  value?: ProductBundle | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    productId: value[\"productId\"],\n    quantity: value[\"quantity\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n */\nexport const ProductType = {\n  Bundle: \"BUNDLE\",\n  Group: \"GROUP\",\n  Single: \"SINGLE\",\n  Variant: \"VARIANT\",\n} as const;\nexport type ProductType = (typeof ProductType)[keyof typeof ProductType];\n\nexport function instanceOfProductType(value: any): boolean {\n  for (const key in ProductType) {\n    if (Object.prototype.hasOwnProperty.call(ProductType, key)) {\n      if (ProductType[key as keyof typeof ProductType] === value) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\n\nexport function ProductTypeFromJSON(json: any): ProductType {\n  return ProductTypeFromJSONTyped(json, false);\n}\n\nexport function ProductTypeFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): ProductType {\n  return json as ProductType;\n}\n\nexport function ProductTypeToJSON(value?: ProductType | null): any {\n  return value as any;\n}\n\nexport function ProductTypeToJSONTyped(\n  value: any,\n  ignoreDiscriminator: boolean\n): ProductType {\n  return value as ProductType;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { AssetAttribute } from \"./AssetAttribute\";\nimport {\n  AssetAttributeFromJSON,\n  AssetAttributeFromJSONTyped,\n  AssetAttributeToJSON,\n  AssetAttributeToJSONTyped,\n} from \"./AssetAttribute\";\n\n/**\n *\n * @export\n * @interface ProductMediaAsset\n */\nexport interface ProductMediaAsset {\n  /**\n   *\n   * @type {string}\n   * @memberof ProductMediaAsset\n   */\n  id?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductMediaAsset\n   */\n  downloadUri: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductMediaAsset\n   */\n  previewUri: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductMediaAsset\n   */\n  name: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductMediaAsset\n   */\n  description?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductMediaAsset\n   */\n  fileName?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductMediaAsset\n   */\n  contentType: string;\n  /**\n   *\n   * @type {Array<string>}\n   * @memberof ProductMediaAsset\n   */\n  labels: Array<string>;\n  /**\n   *\n   * @type {number}\n   * @memberof ProductMediaAsset\n   */\n  createdAt?: number;\n  /**\n   *\n   * @type {number}\n   * @memberof ProductMediaAsset\n   */\n  updatedAt?: number;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductMediaAsset\n   */\n  number?: string;\n  /**\n   *\n   * @type {Array<AssetAttribute>}\n   * @memberof ProductMediaAsset\n   */\n  attributes?: Array<AssetAttribute>;\n}\n\n/**\n * Check if a given object implements the ProductMediaAsset interface.\n */\nexport function instanceOfProductMediaAsset(\n  value: object\n): value is ProductMediaAsset {\n  if (!(\"downloadUri\" in value) || value[\"downloadUri\"] === undefined)\n    return false;\n  if (!(\"previewUri\" in value) || value[\"previewUri\"] === undefined)\n    return false;\n  if (!(\"name\" in value) || value[\"name\"] === undefined) return false;\n  if (!(\"contentType\" in value) || value[\"contentType\"] === undefined)\n    return false;\n  if (!(\"labels\" in value) || value[\"labels\"] === undefined) return false;\n  return true;\n}\n\nexport function ProductMediaAssetFromJSON(json: any): ProductMediaAsset {\n  return ProductMediaAssetFromJSONTyped(json, false);\n}\n\nexport function ProductMediaAssetFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): ProductMediaAsset {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"] == null ? undefined : json[\"id\"],\n    downloadUri: json[\"downloadUri\"],\n    previewUri: json[\"previewUri\"],\n    name: json[\"name\"],\n    description: json[\"description\"] == null ? undefined : json[\"description\"],\n    fileName: json[\"fileName\"] == null ? undefined : json[\"fileName\"],\n    contentType: json[\"contentType\"],\n    labels: json[\"labels\"],\n    createdAt: json[\"createdAt\"] == null ? undefined : json[\"createdAt\"],\n    updatedAt: json[\"updatedAt\"] == null ? undefined : json[\"updatedAt\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    attributes:\n      json[\"attributes\"] == null\n        ? undefined\n        : (json[\"attributes\"] as Array<any>).map(AssetAttributeFromJSON),\n  };\n}\n\nexport function ProductMediaAssetToJSON(json: any): ProductMediaAsset {\n  return ProductMediaAssetToJSONTyped(json, false);\n}\n\nexport function ProductMediaAssetToJSONTyped(\n  value?: ProductMediaAsset | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    downloadUri: value[\"downloadUri\"],\n    previewUri: value[\"previewUri\"],\n    name: value[\"name\"],\n    description: value[\"description\"],\n    fileName: value[\"fileName\"],\n    contentType: value[\"contentType\"],\n    labels: value[\"labels\"],\n    createdAt: value[\"createdAt\"],\n    updatedAt: value[\"updatedAt\"],\n    number: value[\"number\"],\n    attributes:\n      value[\"attributes\"] == null\n        ? undefined\n        : (value[\"attributes\"] as Array<any>).map(AssetAttributeToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n */\nexport const RelationDirection = {\n  OneWay: \"ONE_WAY\",\n  TwoWay: \"TWO_WAY\",\n} as const;\nexport type RelationDirection =\n  (typeof RelationDirection)[keyof typeof RelationDirection];\n\nexport function instanceOfRelationDirection(value: any): boolean {\n  for (const key in RelationDirection) {\n    if (Object.prototype.hasOwnProperty.call(RelationDirection, key)) {\n      if (RelationDirection[key as keyof typeof RelationDirection] === value) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\n\nexport function RelationDirectionFromJSON(json: any): RelationDirection {\n  return RelationDirectionFromJSONTyped(json, false);\n}\n\nexport function RelationDirectionFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): RelationDirection {\n  return json as RelationDirection;\n}\n\nexport function RelationDirectionToJSON(value?: RelationDirection | null): any {\n  return value as any;\n}\n\nexport function RelationDirectionToJSONTyped(\n  value: any,\n  ignoreDiscriminator: boolean\n): RelationDirection {\n  return value as RelationDirection;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { RelationDirection } from \"./RelationDirection\";\nimport {\n  RelationDirectionFromJSON,\n  RelationDirectionFromJSONTyped,\n  RelationDirectionToJSON,\n  RelationDirectionToJSONTyped,\n} from \"./RelationDirection\";\n\n/**\n *\n * @export\n * @interface ProductRelation\n */\nexport interface ProductRelation {\n  /**\n   *\n   * @type {string}\n   * @memberof ProductRelation\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductRelation\n   */\n  name: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductRelation\n   */\n  number?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof ProductRelation\n   */\n  productId: string;\n  /**\n   *\n   * @type {boolean}\n   * @memberof ProductRelation\n   */\n  reverse?: boolean;\n  /**\n   *\n   * @type {RelationDirection}\n   * @memberof ProductRelation\n   */\n  direction: RelationDirection;\n}\n\n/**\n * Check if a given object implements the ProductRelation interface.\n */\nexport function instanceOfProductRelation(\n  value: object\n): value is ProductRelation {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"name\" in value) || value[\"name\"] === undefined) return false;\n  if (!(\"productId\" in value) || value[\"productId\"] === undefined) return false;\n  if (!(\"direction\" in value) || value[\"direction\"] === undefined) return false;\n  return true;\n}\n\nexport function ProductRelationFromJSON(json: any): ProductRelation {\n  return ProductRelationFromJSONTyped(json, false);\n}\n\nexport function ProductRelationFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): ProductRelation {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    name: json[\"name\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    productId: json[\"productId\"],\n    reverse: json[\"reverse\"] == null ? undefined : json[\"reverse\"],\n    direction: RelationDirectionFromJSON(json[\"direction\"]),\n  };\n}\n\nexport function ProductRelationToJSON(json: any): ProductRelation {\n  return ProductRelationToJSONTyped(json, false);\n}\n\nexport function ProductRelationToJSONTyped(\n  value?: ProductRelation | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    name: value[\"name\"],\n    number: value[\"number\"],\n    productId: value[\"productId\"],\n    reverse: value[\"reverse\"],\n    direction: RelationDirectionToJSON(value[\"direction\"]),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { RelatedProductsRelationSortingOrderSource } from \"./RelatedProductsRelationSortingOrderSource\";\nimport {\n  RelatedProductsRelationSortingOrderSourceFromJSON,\n  RelatedProductsRelationSortingOrderSourceFromJSONTyped,\n  RelatedProductsRelationSortingOrderSourceToJSON,\n  RelatedProductsRelationSortingOrderSourceToJSONTyped,\n} from \"./RelatedProductsRelationSortingOrderSource\";\nimport type { Attribute } from \"./Attribute\";\nimport {\n  AttributeFromJSON,\n  AttributeFromJSONTyped,\n  AttributeToJSON,\n  AttributeToJSONTyped,\n} from \"./Attribute\";\nimport type { MetaData } from \"./MetaData\";\nimport {\n  MetaDataFromJSON,\n  MetaDataFromJSONTyped,\n  MetaDataToJSON,\n  MetaDataToJSONTyped,\n} from \"./MetaData\";\nimport type { ProductBundle } from \"./ProductBundle\";\nimport {\n  ProductBundleFromJSON,\n  ProductBundleFromJSONTyped,\n  ProductBundleToJSON,\n  ProductBundleToJSONTyped,\n} from \"./ProductBundle\";\nimport type { ProductType } from \"./ProductType\";\nimport {\n  ProductTypeFromJSON,\n  ProductTypeFromJSONTyped,\n  ProductTypeToJSON,\n  ProductTypeToJSONTyped,\n} from \"./ProductType\";\nimport type { ProductMediaAsset } from \"./ProductMediaAsset\";\nimport {\n  ProductMediaAssetFromJSON,\n  ProductMediaAssetFromJSONTyped,\n  ProductMediaAssetToJSON,\n  ProductMediaAssetToJSONTyped,\n} from \"./ProductMediaAsset\";\nimport type { ProductRelation } from \"./ProductRelation\";\nimport {\n  ProductRelationFromJSON,\n  ProductRelationFromJSONTyped,\n  ProductRelationToJSON,\n  ProductRelationToJSONTyped,\n} from \"./ProductRelation\";\n\n/**\n *\n * @export\n * @interface Product\n */\nexport interface Product {\n  /**\n   * An identifier randomly generated by PIM. ID is unique across all products.\n   * @type {string}\n   * @memberof Product\n   */\n  id: string;\n  /**\n   *\n   * @type {ProductType}\n   * @memberof Product\n   */\n  type: ProductType;\n  /**\n   * Name describe the product. It is not unique across all products.\n   * @type {string}\n   * @memberof Product\n   */\n  name: string;\n  /**\n   * Number is another type of product identifier. It is unique across all products.\n   * @type {string}\n   * @memberof Product\n   */\n  number: string;\n  /**\n   * Description is a field where we put more information about product.\n   * @type {string}\n   * @memberof Product\n   */\n  description?: string;\n  /**\n   * This field inform which attributes have been selected for a product.\n   * @type {Array<Attribute>}\n   * @memberof Product\n   */\n  attributes?: Array<Attribute>;\n  /**\n   * This field inform which media assets have been assigned for a product.\n   * @type {Array<ProductMediaAsset>}\n   * @memberof Product\n   */\n  media?: Array<ProductMediaAsset>;\n  /**\n   * This field inform which labels have been added for a product.\n   * @type {Array<string>}\n   * @memberof Product\n   */\n  labels?: Array<string>;\n  /**\n   * This field inform to which categories, product has been assigned.\n   * @type {Array<string>}\n   * @memberof Product\n   */\n  categories?: Array<string>;\n  /**\n   * This field inform about relations between products.\n   * @type {Array<ProductRelation>}\n   * @memberof Product\n   */\n  relations?: Array<ProductRelation>;\n  /**\n   * This field describe product's metadata.\n   * @type {Array<MetaData>}\n   * @memberof Product\n   */\n  metadata?: Array<MetaData>;\n  /**\n   * Inform when product was last time updated.\n   * @type {number}\n   * @memberof Product\n   */\n  lastUpdate?: number;\n  /**\n   * Inform when product was created.\n   * @type {number}\n   * @memberof Product\n   */\n  createDate?: number;\n  /**\n   * This field inform bundles assigned to product.\n   * @type {Array<ProductBundle>}\n   * @memberof Product\n   */\n  bundles?: Array<ProductBundle>;\n  /**\n   * This field inform about variants added to product.\n   * @type {Array<string>}\n   * @memberof Product\n   */\n  variants?: Array<string>;\n  /**\n   * This field inform about variant parent identifier for product.\n   * @type {string}\n   * @memberof Product\n   */\n  variantParentId?: string;\n  /**\n   *\n   * @type {RelatedProductsRelationSortingOrderSource}\n   * @memberof Product\n   */\n  relatedProductsRelationSortingOrderSource?: RelatedProductsRelationSortingOrderSource;\n  /**\n   * Describe identifier of publish information.\n   * @type {string}\n   * @memberof Product\n   */\n  publishInfoId?: string;\n  /**\n   * Inform about context identifier for published product.\n   * @type {string}\n   * @memberof Product\n   */\n  contextId?: string;\n}\n\n/**\n * Check if a given object implements the Product interface.\n */\nexport function instanceOfProduct(value: object): value is Product {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"type\" in value) || value[\"type\"] === undefined) return false;\n  if (!(\"name\" in value) || value[\"name\"] === undefined) return false;\n  if (!(\"number\" in value) || value[\"number\"] === undefined) return false;\n  return true;\n}\n\nexport function ProductFromJSON(json: any): Product {\n  return ProductFromJSONTyped(json, false);\n}\n\nexport function ProductFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): Product {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    type: ProductTypeFromJSON(json[\"type\"]),\n    name: json[\"name\"],\n    number: json[\"number\"],\n    description: json[\"description\"] == null ? undefined : json[\"description\"],\n    attributes:\n      json[\"attributes\"] == null\n        ? undefined\n        : (json[\"attributes\"] as Array<any>).map(AttributeFromJSON),\n    media:\n      json[\"media\"] == null\n        ? undefined\n        : (json[\"media\"] as Array<any>).map(ProductMediaAssetFromJSON),\n    labels: json[\"labels\"] == null ? undefined : json[\"labels\"],\n    categories: json[\"categories\"] == null ? undefined : json[\"categories\"],\n    relations:\n      json[\"relations\"] == null\n        ? undefined\n        : (json[\"relations\"] as Array<any>).map(ProductRelationFromJSON),\n    metadata:\n      json[\"metadata\"] == null\n        ? undefined\n        : (json[\"metadata\"] as Array<any>).map(MetaDataFromJSON),\n    lastUpdate: json[\"lastUpdate\"] == null ? undefined : json[\"lastUpdate\"],\n    createDate: json[\"createDate\"] == null ? undefined : json[\"createDate\"],\n    bundles:\n      json[\"bundles\"] == null\n        ? undefined\n        : (json[\"bundles\"] as Array<any>).map(ProductBundleFromJSON),\n    variants: json[\"variants\"] == null ? undefined : json[\"variants\"],\n    variantParentId:\n      json[\"variantParentId\"] == null ? undefined : json[\"variantParentId\"],\n    relatedProductsRelationSortingOrderSource:\n      json[\"relatedProductsRelationSortingOrderSource\"] == null\n        ? undefined\n        : RelatedProductsRelationSortingOrderSourceFromJSON(\n            json[\"relatedProductsRelationSortingOrderSource\"]\n          ),\n    publishInfoId:\n      json[\"publishInfoId\"] == null ? undefined : json[\"publishInfoId\"],\n    contextId: json[\"contextId\"] == null ? undefined : json[\"contextId\"],\n  };\n}\n\nexport function ProductToJSON(json: any): Product {\n  return ProductToJSONTyped(json, false);\n}\n\nexport function ProductToJSONTyped(\n  value?: Product | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    type: ProductTypeToJSON(value[\"type\"]),\n    name: value[\"name\"],\n    number: value[\"number\"],\n    description: value[\"description\"],\n    attributes:\n      value[\"attributes\"] == null\n        ? undefined\n        : (value[\"attributes\"] as Array<any>).map(AttributeToJSON),\n    media:\n      value[\"media\"] == null\n        ? undefined\n        : (value[\"media\"] as Array<any>).map(ProductMediaAssetToJSON),\n    labels: value[\"labels\"],\n    categories: value[\"categories\"],\n    relations:\n      value[\"relations\"] == null\n        ? undefined\n        : (value[\"relations\"] as Array<any>).map(ProductRelationToJSON),\n    metadata:\n      value[\"metadata\"] == null\n        ? undefined\n        : (value[\"metadata\"] as Array<any>).map(MetaDataToJSON),\n    lastUpdate: value[\"lastUpdate\"],\n    createDate: value[\"createDate\"],\n    bundles:\n      value[\"bundles\"] == null\n        ? undefined\n        : (value[\"bundles\"] as Array<any>).map(ProductBundleToJSON),\n    variants: value[\"variants\"],\n    variantParentId: value[\"variantParentId\"],\n    relatedProductsRelationSortingOrderSource:\n      RelatedProductsRelationSortingOrderSourceToJSON(\n        value[\"relatedProductsRelationSortingOrderSource\"]\n      ),\n    publishInfoId: value[\"publishInfoId\"],\n    contextId: value[\"contextId\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { Product } from \"./Product\";\nimport {\n  ProductFromJSON,\n  ProductFromJSONTyped,\n  ProductToJSON,\n  ProductToJSONTyped,\n} from \"./Product\";\n\n/**\n *\n * @export\n * @interface CursorPageProduct\n */\nexport interface CursorPageProduct {\n  /**\n   *\n   * @type {string}\n   * @memberof CursorPageProduct\n   */\n  nextCursor: string;\n  /**\n   *\n   * @type {Array<Product>}\n   * @memberof CursorPageProduct\n   */\n  results: Array<Product>;\n}\n\n/**\n * Check if a given object implements the CursorPageProduct interface.\n */\nexport function instanceOfCursorPageProduct(\n  value: object\n): value is CursorPageProduct {\n  if (!(\"nextCursor\" in value) || value[\"nextCursor\"] === undefined)\n    return false;\n  if (!(\"results\" in value) || value[\"results\"] === undefined) return false;\n  return true;\n}\n\nexport function CursorPageProductFromJSON(json: any): CursorPageProduct {\n  return CursorPageProductFromJSONTyped(json, false);\n}\n\nexport function CursorPageProductFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): CursorPageProduct {\n  if (json == null) {\n    return json;\n  }\n  return {\n    nextCursor: json[\"nextCursor\"],\n    results: (json[\"results\"] as Array<any>).map(ProductFromJSON),\n  };\n}\n\nexport function CursorPageProductToJSON(json: any): CursorPageProduct {\n  return CursorPageProductToJSONTyped(json, false);\n}\n\nexport function CursorPageProductToJSONTyped(\n  value?: CursorPageProduct | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    nextCursor: value[\"nextCursor\"],\n    results: (value[\"results\"] as Array<any>).map(ProductToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface CursorQuery\n */\nexport interface CursorQuery {\n  /**\n   *\n   * @type {string}\n   * @memberof CursorQuery\n   */\n  cursor?: string;\n  /**\n   *\n   * @type {number}\n   * @memberof CursorQuery\n   */\n  limit?: number;\n}\n\n/**\n * Check if a given object implements the CursorQuery interface.\n */\nexport function instanceOfCursorQuery(value: object): value is CursorQuery {\n  return true;\n}\n\nexport function CursorQueryFromJSON(json: any): CursorQuery {\n  return CursorQueryFromJSONTyped(json, false);\n}\n\nexport function CursorQueryFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): CursorQuery {\n  if (json == null) {\n    return json;\n  }\n  return {\n    cursor: json[\"cursor\"] == null ? undefined : json[\"cursor\"],\n    limit: json[\"limit\"] == null ? undefined : json[\"limit\"],\n  };\n}\n\nexport function CursorQueryToJSON(json: any): CursorQuery {\n  return CursorQueryToJSONTyped(json, false);\n}\n\nexport function CursorQueryToJSONTyped(\n  value?: CursorQuery | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    cursor: value[\"cursor\"],\n    limit: value[\"limit\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n */\nexport const DiffType = {\n  Add: \"ADD\",\n  Delete: \"DELETE\",\n  Change: \"CHANGE\",\n} as const;\nexport type DiffType = (typeof DiffType)[keyof typeof DiffType];\n\nexport function instanceOfDiffType(value: any): boolean {\n  for (const key in DiffType) {\n    if (Object.prototype.hasOwnProperty.call(DiffType, key)) {\n      if (DiffType[key as keyof typeof DiffType] === value) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\n\nexport function DiffTypeFromJSON(json: any): DiffType {\n  return DiffTypeFromJSONTyped(json, false);\n}\n\nexport function DiffTypeFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): DiffType {\n  return json as DiffType;\n}\n\nexport function DiffTypeToJSON(value?: DiffType | null): any {\n  return value as any;\n}\n\nexport function DiffTypeToJSONTyped(\n  value: any,\n  ignoreDiscriminator: boolean\n): DiffType {\n  return value as DiffType;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { DiffType } from \"./DiffType\";\nimport {\n  DiffTypeFromJSON,\n  DiffTypeFromJSONTyped,\n  DiffTypeToJSON,\n  DiffTypeToJSONTyped,\n} from \"./DiffType\";\n\n/**\n *\n * @export\n * @interface DiffResponse\n */\nexport interface DiffResponse {\n  /**\n   *\n   * @type {string}\n   * @memberof DiffResponse\n   */\n  id: string;\n  /**\n   *\n   * @type {DiffType}\n   * @memberof DiffResponse\n   */\n  diffType: DiffType;\n}\n\n/**\n * Check if a given object implements the DiffResponse interface.\n */\nexport function instanceOfDiffResponse(value: object): value is DiffResponse {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"diffType\" in value) || value[\"diffType\"] === undefined) return false;\n  return true;\n}\n\nexport function DiffResponseFromJSON(json: any): DiffResponse {\n  return DiffResponseFromJSONTyped(json, false);\n}\n\nexport function DiffResponseFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): DiffResponse {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    diffType: DiffTypeFromJSON(json[\"diffType\"]),\n  };\n}\n\nexport function DiffResponseToJSON(json: any): DiffResponse {\n  return DiffResponseToJSONTyped(json, false);\n}\n\nexport function DiffResponseToJSONTyped(\n  value?: DiffResponse | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    diffType: DiffTypeToJSON(value[\"diffType\"]),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface EntitiesPapiError\n */\nexport interface EntitiesPapiError {\n  /**\n   *\n   * @type {number}\n   * @memberof EntitiesPapiError\n   */\n  status: number;\n  /**\n   *\n   * @type {string}\n   * @memberof EntitiesPapiError\n   */\n  message: string;\n  /**\n   *\n   * @type {Array<string>}\n   * @memberof EntitiesPapiError\n   */\n  entityIds: Array<string>;\n}\n\n/**\n * Check if a given object implements the EntitiesPapiError interface.\n */\nexport function instanceOfEntitiesPapiError(\n  value: object\n): value is EntitiesPapiError {\n  if (!(\"status\" in value) || value[\"status\"] === undefined) return false;\n  if (!(\"message\" in value) || value[\"message\"] === undefined) return false;\n  if (!(\"entityIds\" in value) || value[\"entityIds\"] === undefined) return false;\n  return true;\n}\n\nexport function EntitiesPapiErrorFromJSON(json: any): EntitiesPapiError {\n  return EntitiesPapiErrorFromJSONTyped(json, false);\n}\n\nexport function EntitiesPapiErrorFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): EntitiesPapiError {\n  if (json == null) {\n    return json;\n  }\n  return {\n    status: json[\"status\"],\n    message: json[\"message\"],\n    entityIds: json[\"entityIds\"],\n  };\n}\n\nexport function EntitiesPapiErrorToJSON(json: any): EntitiesPapiError {\n  return EntitiesPapiErrorToJSONTyped(json, false);\n}\n\nexport function EntitiesPapiErrorToJSONTyped(\n  value?: EntitiesPapiError | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    status: value[\"status\"],\n    message: value[\"message\"],\n    entityIds: value[\"entityIds\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface EntityPapiError\n */\nexport interface EntityPapiError {\n  /**\n   *\n   * @type {number}\n   * @memberof EntityPapiError\n   */\n  status: number;\n  /**\n   *\n   * @type {string}\n   * @memberof EntityPapiError\n   */\n  message: string;\n  /**\n   *\n   * @type {string}\n   * @memberof EntityPapiError\n   */\n  entityId: string;\n}\n\n/**\n * Check if a given object implements the EntityPapiError interface.\n */\nexport function instanceOfEntityPapiError(\n  value: object\n): value is EntityPapiError {\n  if (!(\"status\" in value) || value[\"status\"] === undefined) return false;\n  if (!(\"message\" in value) || value[\"message\"] === undefined) return false;\n  if (!(\"entityId\" in value) || value[\"entityId\"] === undefined) return false;\n  return true;\n}\n\nexport function EntityPapiErrorFromJSON(json: any): EntityPapiError {\n  return EntityPapiErrorFromJSONTyped(json, false);\n}\n\nexport function EntityPapiErrorFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): EntityPapiError {\n  if (json == null) {\n    return json;\n  }\n  return {\n    status: json[\"status\"],\n    message: json[\"message\"],\n    entityId: json[\"entityId\"],\n  };\n}\n\nexport function EntityPapiErrorToJSON(json: any): EntityPapiError {\n  return EntityPapiErrorToJSONTyped(json, false);\n}\n\nexport function EntityPapiErrorToJSONTyped(\n  value?: EntityPapiError | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    status: value[\"status\"],\n    message: value[\"message\"],\n    entityId: value[\"entityId\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { AttributeFilter } from \"./AttributeFilter\";\nimport {\n  AttributeFilterFromJSON,\n  AttributeFilterFromJSONTyped,\n  AttributeFilterToJSON,\n  AttributeFilterToJSONTyped,\n} from \"./AttributeFilter\";\nimport type { ProductType } from \"./ProductType\";\nimport {\n  ProductTypeFromJSON,\n  ProductTypeFromJSONTyped,\n  ProductTypeToJSON,\n  ProductTypeToJSONTyped,\n} from \"./ProductType\";\n\n/**\n *\n * @export\n * @interface FilteringCriteriaRequest\n */\nexport interface FilteringCriteriaRequest {\n  /**\n   * Product ids returned entries must be matched to.\n   * @type {Array<string>}\n   * @memberof FilteringCriteriaRequest\n   */\n  ids?: Array<string>;\n  /**\n   * Product names products must contain.\n   * @type {Array<string>}\n   * @memberof FilteringCriteriaRequest\n   */\n  names?: Array<string>;\n  /**\n   * Product numbers products must be equal to.\n   * @type {Array<string>}\n   * @memberof FilteringCriteriaRequest\n   */\n  numbers?: Array<string>;\n  /**\n   * A set of labels products must contain.\n   * @type {Array<string>}\n   * @memberof FilteringCriteriaRequest\n   */\n  labels?: Array<string>;\n  /**\n   * A set of category ids the product must be in.\n   * @type {Array<string>}\n   * @memberof FilteringCriteriaRequest\n   */\n  categories?: Array<string>;\n  /**\n   * A set of attribute ids the product must be in.\n   * @type {Array<string>}\n   * @memberof FilteringCriteriaRequest\n   */\n  attributes?: Array<string>;\n  /**\n   * Attribute filters.\n   * @type {Array<AttributeFilter>}\n   * @memberof FilteringCriteriaRequest\n   */\n  attributeFilters?: Array<AttributeFilter>;\n  /**\n   * A set of relation ids the product must be in.\n   * @type {Array<string>}\n   * @memberof FilteringCriteriaRequest\n   */\n  relations?: Array<string>;\n  /**\n   * A products must be of provided types\n   * @type {Array<ProductType>}\n   * @memberof FilteringCriteriaRequest\n   */\n  productTypes?: Array<ProductType>;\n  /**\n   * Product ids that should be assign to bundles.\n   * @type {Array<string>}\n   * @memberof FilteringCriteriaRequest\n   */\n  bundles?: Array<string>;\n}\n\n/**\n * Check if a given object implements the FilteringCriteriaRequest interface.\n */\nexport function instanceOfFilteringCriteriaRequest(\n  value: object\n): value is FilteringCriteriaRequest {\n  return true;\n}\n\nexport function FilteringCriteriaRequestFromJSON(\n  json: any\n): FilteringCriteriaRequest {\n  return FilteringCriteriaRequestFromJSONTyped(json, false);\n}\n\nexport function FilteringCriteriaRequestFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): FilteringCriteriaRequest {\n  if (json == null) {\n    return json;\n  }\n  return {\n    ids: json[\"ids\"] == null ? undefined : json[\"ids\"],\n    names: json[\"names\"] == null ? undefined : json[\"names\"],\n    numbers: json[\"numbers\"] == null ? undefined : json[\"numbers\"],\n    labels: json[\"labels\"] == null ? undefined : json[\"labels\"],\n    categories: json[\"categories\"] == null ? undefined : json[\"categories\"],\n    attributes: json[\"attributes\"] == null ? undefined : json[\"attributes\"],\n    attributeFilters:\n      json[\"attributeFilters\"] == null\n        ? undefined\n        : (json[\"attributeFilters\"] as Array<any>).map(AttributeFilterFromJSON),\n    relations: json[\"relations\"] == null ? undefined : json[\"relations\"],\n    productTypes:\n      json[\"productTypes\"] == null\n        ? undefined\n        : (json[\"productTypes\"] as Array<any>).map(ProductTypeFromJSON),\n    bundles: json[\"bundles\"] == null ? undefined : json[\"bundles\"],\n  };\n}\n\nexport function FilteringCriteriaRequestToJSON(\n  json: any\n): FilteringCriteriaRequest {\n  return FilteringCriteriaRequestToJSONTyped(json, false);\n}\n\nexport function FilteringCriteriaRequestToJSONTyped(\n  value?: FilteringCriteriaRequest | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    ids: value[\"ids\"],\n    names: value[\"names\"],\n    numbers: value[\"numbers\"],\n    labels: value[\"labels\"],\n    categories: value[\"categories\"],\n    attributes: value[\"attributes\"],\n    attributeFilters:\n      value[\"attributeFilters\"] == null\n        ? undefined\n        : (value[\"attributeFilters\"] as Array<any>).map(AttributeFilterToJSON),\n    relations: value[\"relations\"],\n    productTypes:\n      value[\"productTypes\"] == null\n        ? undefined\n        : (value[\"productTypes\"] as Array<any>).map(ProductTypeToJSON),\n    bundles: value[\"bundles\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface RowAttributeDefinitionValue\n */\nexport interface RowAttributeDefinitionValue {\n  /**\n   *\n   * @type {string}\n   * @memberof RowAttributeDefinitionValue\n   */\n  valueId: string;\n  /**\n   *\n   * @type {string}\n   * @memberof RowAttributeDefinitionValue\n   */\n  value?: string;\n}\n\n/**\n * Check if a given object implements the RowAttributeDefinitionValue interface.\n */\nexport function instanceOfRowAttributeDefinitionValue(\n  value: object\n): value is RowAttributeDefinitionValue {\n  if (!(\"valueId\" in value) || value[\"valueId\"] === undefined) return false;\n  return true;\n}\n\nexport function RowAttributeDefinitionValueFromJSON(\n  json: any\n): RowAttributeDefinitionValue {\n  return RowAttributeDefinitionValueFromJSONTyped(json, false);\n}\n\nexport function RowAttributeDefinitionValueFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): RowAttributeDefinitionValue {\n  if (json == null) {\n    return json;\n  }\n  return {\n    valueId: json[\"valueId\"],\n    value: json[\"value\"] == null ? undefined : json[\"value\"],\n  };\n}\n\nexport function RowAttributeDefinitionValueToJSON(\n  json: any\n): RowAttributeDefinitionValue {\n  return RowAttributeDefinitionValueToJSONTyped(json, false);\n}\n\nexport function RowAttributeDefinitionValueToJSONTyped(\n  value?: RowAttributeDefinitionValue | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    valueId: value[\"valueId\"],\n    value: value[\"value\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { ColumnAttributeDefinitionValue } from \"./ColumnAttributeDefinitionValue\";\nimport {\n  ColumnAttributeDefinitionValueFromJSON,\n  ColumnAttributeDefinitionValueFromJSONTyped,\n  ColumnAttributeDefinitionValueToJSON,\n  ColumnAttributeDefinitionValueToJSONTyped,\n} from \"./ColumnAttributeDefinitionValue\";\nimport type { CompoundAttributeSubDefinition } from \"./CompoundAttributeSubDefinition\";\nimport {\n  CompoundAttributeSubDefinitionFromJSON,\n  CompoundAttributeSubDefinitionFromJSONTyped,\n  CompoundAttributeSubDefinitionToJSON,\n  CompoundAttributeSubDefinitionToJSONTyped,\n} from \"./CompoundAttributeSubDefinition\";\nimport type { RowAttributeDefinitionValue } from \"./RowAttributeDefinitionValue\";\nimport {\n  RowAttributeDefinitionValueFromJSON,\n  RowAttributeDefinitionValueFromJSONTyped,\n  RowAttributeDefinitionValueToJSON,\n  RowAttributeDefinitionValueToJSONTyped,\n} from \"./RowAttributeDefinitionValue\";\n\n/**\n *\n * @export\n * @interface GroupedAttributeDefinition\n */\nexport interface GroupedAttributeDefinition {\n  /**\n   *\n   * @type {string}\n   * @memberof GroupedAttributeDefinition\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof GroupedAttributeDefinition\n   */\n  name: string;\n  /**\n   *\n   * @type {string}\n   * @memberof GroupedAttributeDefinition\n   */\n  number?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof GroupedAttributeDefinition\n   */\n  unit?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof GroupedAttributeDefinition\n   */\n  dataType?: string;\n  /**\n   *\n   * @type {number}\n   * @memberof GroupedAttributeDefinition\n   */\n  sortingOrder: number;\n  /**\n   *\n   * @type {string}\n   * @memberof GroupedAttributeDefinition\n   */\n  groupId: string;\n  /**\n   *\n   * @type {string}\n   * @memberof GroupedAttributeDefinition\n   */\n  groupName: string;\n  /**\n   *\n   * @type {string}\n   * @memberof GroupedAttributeDefinition\n   */\n  groupNumber?: string;\n  /**\n   *\n   * @type {Array<ColumnAttributeDefinitionValue>}\n   * @memberof GroupedAttributeDefinition\n   */\n  columns?: Array<ColumnAttributeDefinitionValue>;\n  /**\n   *\n   * @type {Array<RowAttributeDefinitionValue>}\n   * @memberof GroupedAttributeDefinition\n   */\n  rows?: Array<RowAttributeDefinitionValue>;\n  /**\n   *\n   * @type {boolean}\n   * @memberof GroupedAttributeDefinition\n   */\n  isCompound?: boolean;\n  /**\n   *\n   * @type {Array<CompoundAttributeSubDefinition>}\n   * @memberof GroupedAttributeDefinition\n   */\n  subDefinitions?: Array<CompoundAttributeSubDefinition>;\n  /**\n   *\n   * @type {Array<string>}\n   * @memberof GroupedAttributeDefinition\n   */\n  format?: Array<string>;\n  /**\n   *\n   * @type {string}\n   * @memberof GroupedAttributeDefinition\n   */\n  description?: string;\n  /**\n   *\n   * @type {number}\n   * @memberof GroupedAttributeDefinition\n   */\n  order: number;\n  /**\n   *\n   * @type {number}\n   * @memberof GroupedAttributeDefinition\n   */\n  groupOrder: number;\n}\n\n/**\n * Check if a given object implements the GroupedAttributeDefinition interface.\n */\nexport function instanceOfGroupedAttributeDefinition(\n  value: object\n): value is GroupedAttributeDefinition {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"name\" in value) || value[\"name\"] === undefined) return false;\n  if (!(\"sortingOrder\" in value) || value[\"sortingOrder\"] === undefined)\n    return false;\n  if (!(\"groupId\" in value) || value[\"groupId\"] === undefined) return false;\n  if (!(\"groupName\" in value) || value[\"groupName\"] === undefined) return false;\n  if (!(\"order\" in value) || value[\"order\"] === undefined) return false;\n  if (!(\"groupOrder\" in value) || value[\"groupOrder\"] === undefined)\n    return false;\n  return true;\n}\n\nexport function GroupedAttributeDefinitionFromJSON(\n  json: any\n): GroupedAttributeDefinition {\n  return GroupedAttributeDefinitionFromJSONTyped(json, false);\n}\n\nexport function GroupedAttributeDefinitionFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): GroupedAttributeDefinition {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    name: json[\"name\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    unit: json[\"unit\"] == null ? undefined : json[\"unit\"],\n    dataType: json[\"dataType\"] == null ? undefined : json[\"dataType\"],\n    sortingOrder: json[\"sortingOrder\"],\n    groupId: json[\"groupId\"],\n    groupName: json[\"groupName\"],\n    groupNumber: json[\"groupNumber\"] == null ? undefined : json[\"groupNumber\"],\n    columns:\n      json[\"columns\"] == null\n        ? undefined\n        : (json[\"columns\"] as Array<any>).map(\n            ColumnAttributeDefinitionValueFromJSON\n          ),\n    rows:\n      json[\"rows\"] == null\n        ? undefined\n        : (json[\"rows\"] as Array<any>).map(RowAttributeDefinitionValueFromJSON),\n    isCompound: json[\"isCompound\"] == null ? undefined : json[\"isCompound\"],\n    subDefinitions:\n      json[\"subDefinitions\"] == null\n        ? undefined\n        : (json[\"subDefinitions\"] as Array<any>).map(\n            CompoundAttributeSubDefinitionFromJSON\n          ),\n    format: json[\"format\"] == null ? undefined : json[\"format\"],\n    description: json[\"description\"] == null ? undefined : json[\"description\"],\n    order: json[\"order\"],\n    groupOrder: json[\"groupOrder\"],\n  };\n}\n\nexport function GroupedAttributeDefinitionToJSON(\n  json: any\n): GroupedAttributeDefinition {\n  return GroupedAttributeDefinitionToJSONTyped(json, false);\n}\n\nexport function GroupedAttributeDefinitionToJSONTyped(\n  value?: GroupedAttributeDefinition | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    name: value[\"name\"],\n    number: value[\"number\"],\n    unit: value[\"unit\"],\n    dataType: value[\"dataType\"],\n    sortingOrder: value[\"sortingOrder\"],\n    groupId: value[\"groupId\"],\n    groupName: value[\"groupName\"],\n    groupNumber: value[\"groupNumber\"],\n    columns:\n      value[\"columns\"] == null\n        ? undefined\n        : (value[\"columns\"] as Array<any>).map(\n            ColumnAttributeDefinitionValueToJSON\n          ),\n    rows:\n      value[\"rows\"] == null\n        ? undefined\n        : (value[\"rows\"] as Array<any>).map(RowAttributeDefinitionValueToJSON),\n    isCompound: value[\"isCompound\"],\n    subDefinitions:\n      value[\"subDefinitions\"] == null\n        ? undefined\n        : (value[\"subDefinitions\"] as Array<any>).map(\n            CompoundAttributeSubDefinitionToJSON\n          ),\n    format: value[\"format\"],\n    description: value[\"description\"],\n    order: value[\"order\"],\n    groupOrder: value[\"groupOrder\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { GroupedAttributeDefinition } from \"./GroupedAttributeDefinition\";\nimport {\n  GroupedAttributeDefinitionFromJSON,\n  GroupedAttributeDefinitionFromJSONTyped,\n  GroupedAttributeDefinitionToJSON,\n  GroupedAttributeDefinitionToJSONTyped,\n} from \"./GroupedAttributeDefinition\";\n\n/**\n *\n * @export\n * @interface PaginatedAttribute\n */\nexport interface PaginatedAttribute {\n  /**\n   *\n   * @type {number}\n   * @memberof PaginatedAttribute\n   */\n  totalCount: number;\n  /**\n   *\n   * @type {Array<GroupedAttributeDefinition>}\n   * @memberof PaginatedAttribute\n   */\n  results: Array<GroupedAttributeDefinition>;\n}\n\n/**\n * Check if a given object implements the PaginatedAttribute interface.\n */\nexport function instanceOfPaginatedAttribute(\n  value: object\n): value is PaginatedAttribute {\n  if (!(\"totalCount\" in value) || value[\"totalCount\"] === undefined)\n    return false;\n  if (!(\"results\" in value) || value[\"results\"] === undefined) return false;\n  return true;\n}\n\nexport function PaginatedAttributeFromJSON(json: any): PaginatedAttribute {\n  return PaginatedAttributeFromJSONTyped(json, false);\n}\n\nexport function PaginatedAttributeFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): PaginatedAttribute {\n  if (json == null) {\n    return json;\n  }\n  return {\n    totalCount: json[\"totalCount\"],\n    results: (json[\"results\"] as Array<any>).map(\n      GroupedAttributeDefinitionFromJSON\n    ),\n  };\n}\n\nexport function PaginatedAttributeToJSON(json: any): PaginatedAttribute {\n  return PaginatedAttributeToJSONTyped(json, false);\n}\n\nexport function PaginatedAttributeToJSONTyped(\n  value?: PaginatedAttribute | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    totalCount: value[\"totalCount\"],\n    results: (value[\"results\"] as Array<any>).map(\n      GroupedAttributeDefinitionToJSON\n    ),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { Category } from \"./Category\";\nimport {\n  CategoryFromJSON,\n  CategoryFromJSONTyped,\n  CategoryToJSON,\n  CategoryToJSONTyped,\n} from \"./Category\";\n\n/**\n *\n * @export\n * @interface PaginatedCategory\n */\nexport interface PaginatedCategory {\n  /**\n   *\n   * @type {number}\n   * @memberof PaginatedCategory\n   */\n  totalCount: number;\n  /**\n   *\n   * @type {Array<Category>}\n   * @memberof PaginatedCategory\n   */\n  results: Array<Category>;\n}\n\n/**\n * Check if a given object implements the PaginatedCategory interface.\n */\nexport function instanceOfPaginatedCategory(\n  value: object\n): value is PaginatedCategory {\n  if (!(\"totalCount\" in value) || value[\"totalCount\"] === undefined)\n    return false;\n  if (!(\"results\" in value) || value[\"results\"] === undefined) return false;\n  return true;\n}\n\nexport function PaginatedCategoryFromJSON(json: any): PaginatedCategory {\n  return PaginatedCategoryFromJSONTyped(json, false);\n}\n\nexport function PaginatedCategoryFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): PaginatedCategory {\n  if (json == null) {\n    return json;\n  }\n  return {\n    totalCount: json[\"totalCount\"],\n    results: (json[\"results\"] as Array<any>).map(CategoryFromJSON),\n  };\n}\n\nexport function PaginatedCategoryToJSON(json: any): PaginatedCategory {\n  return PaginatedCategoryToJSONTyped(json, false);\n}\n\nexport function PaginatedCategoryToJSONTyped(\n  value?: PaginatedCategory | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    totalCount: value[\"totalCount\"],\n    results: (value[\"results\"] as Array<any>).map(CategoryToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { Product } from \"./Product\";\nimport {\n  ProductFromJSON,\n  ProductFromJSONTyped,\n  ProductToJSON,\n  ProductToJSONTyped,\n} from \"./Product\";\n\n/**\n *\n * @export\n * @interface PaginatedProduct\n */\nexport interface PaginatedProduct {\n  /**\n   *\n   * @type {number}\n   * @memberof PaginatedProduct\n   */\n  totalCount: number;\n  /**\n   *\n   * @type {Array<Product>}\n   * @memberof PaginatedProduct\n   */\n  results: Array<Product>;\n}\n\n/**\n * Check if a given object implements the PaginatedProduct interface.\n */\nexport function instanceOfPaginatedProduct(\n  value: object\n): value is PaginatedProduct {\n  if (!(\"totalCount\" in value) || value[\"totalCount\"] === undefined)\n    return false;\n  if (!(\"results\" in value) || value[\"results\"] === undefined) return false;\n  return true;\n}\n\nexport function PaginatedProductFromJSON(json: any): PaginatedProduct {\n  return PaginatedProductFromJSONTyped(json, false);\n}\n\nexport function PaginatedProductFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): PaginatedProduct {\n  if (json == null) {\n    return json;\n  }\n  return {\n    totalCount: json[\"totalCount\"],\n    results: (json[\"results\"] as Array<any>).map(ProductFromJSON),\n  };\n}\n\nexport function PaginatedProductToJSON(json: any): PaginatedProduct {\n  return PaginatedProductToJSONTyped(json, false);\n}\n\nexport function PaginatedProductToJSONTyped(\n  value?: PaginatedProduct | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    totalCount: value[\"totalCount\"],\n    results: (value[\"results\"] as Array<any>).map(ProductToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { Attribute } from \"./Attribute\";\nimport {\n  AttributeFromJSON,\n  AttributeFromJSONTyped,\n  AttributeToJSON,\n  AttributeToJSONTyped,\n} from \"./Attribute\";\nimport type { CategoryMediaAsset } from \"./CategoryMediaAsset\";\nimport {\n  CategoryMediaAssetFromJSON,\n  CategoryMediaAssetFromJSONTyped,\n  CategoryMediaAssetToJSON,\n  CategoryMediaAssetToJSONTyped,\n} from \"./CategoryMediaAsset\";\nimport type { MetaData } from \"./MetaData\";\nimport {\n  MetaDataFromJSON,\n  MetaDataFromJSONTyped,\n  MetaDataToJSON,\n  MetaDataToJSONTyped,\n} from \"./MetaData\";\n\n/**\n * The category.\n * @export\n * @interface SimplifiedCategory\n */\nexport interface SimplifiedCategory {\n  /**\n   * id of the category.\n   * @type {string}\n   * @memberof SimplifiedCategory\n   */\n  id: string;\n  /**\n   * id of parent category.\n   * @type {string}\n   * @memberof SimplifiedCategory\n   */\n  parentId?: string;\n  /**\n   * order of category in parent category.\n   * @type {number}\n   * @memberof SimplifiedCategory\n   */\n  order?: number;\n  /**\n   * Category name.\n   * @type {string}\n   * @memberof SimplifiedCategory\n   */\n  name: string;\n  /**\n   * Category number.\n   * @type {string}\n   * @memberof SimplifiedCategory\n   */\n  number?: string;\n  /**\n   * Category description.\n   * @type {string}\n   * @memberof SimplifiedCategory\n   */\n  description?: string;\n  /**\n   * Category media assets.\n   * @type {Array<CategoryMediaAsset>}\n   * @memberof SimplifiedCategory\n   */\n  media?: Array<CategoryMediaAsset>;\n  /**\n   * Category attributes.\n   * @type {Array<Attribute>}\n   * @memberof SimplifiedCategory\n   */\n  attributes?: Array<Attribute>;\n  /**\n   * Any metadata.\n   * @type {Array<MetaData>}\n   * @memberof SimplifiedCategory\n   */\n  metaData?: Array<MetaData>;\n}\n\n/**\n * Check if a given object implements the SimplifiedCategory interface.\n */\nexport function instanceOfSimplifiedCategory(\n  value: object\n): value is SimplifiedCategory {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"name\" in value) || value[\"name\"] === undefined) return false;\n  return true;\n}\n\nexport function SimplifiedCategoryFromJSON(json: any): SimplifiedCategory {\n  return SimplifiedCategoryFromJSONTyped(json, false);\n}\n\nexport function SimplifiedCategoryFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): SimplifiedCategory {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    parentId: json[\"parentId\"] == null ? undefined : json[\"parentId\"],\n    order: json[\"order\"] == null ? undefined : json[\"order\"],\n    name: json[\"name\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    description: json[\"description\"] == null ? undefined : json[\"description\"],\n    media:\n      json[\"media\"] == null\n        ? undefined\n        : (json[\"media\"] as Array<any>).map(CategoryMediaAssetFromJSON),\n    attributes:\n      json[\"attributes\"] == null\n        ? undefined\n        : (json[\"attributes\"] as Array<any>).map(AttributeFromJSON),\n    metaData:\n      json[\"metaData\"] == null\n        ? undefined\n        : (json[\"metaData\"] as Array<any>).map(MetaDataFromJSON),\n  };\n}\n\nexport function SimplifiedCategoryToJSON(json: any): SimplifiedCategory {\n  return SimplifiedCategoryToJSONTyped(json, false);\n}\n\nexport function SimplifiedCategoryToJSONTyped(\n  value?: SimplifiedCategory | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    parentId: value[\"parentId\"],\n    order: value[\"order\"],\n    name: value[\"name\"],\n    number: value[\"number\"],\n    description: value[\"description\"],\n    media:\n      value[\"media\"] == null\n        ? undefined\n        : (value[\"media\"] as Array<any>).map(CategoryMediaAssetToJSON),\n    attributes:\n      value[\"attributes\"] == null\n        ? undefined\n        : (value[\"attributes\"] as Array<any>).map(AttributeToJSON),\n    metaData:\n      value[\"metaData\"] == null\n        ? undefined\n        : (value[\"metaData\"] as Array<any>).map(MetaDataToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { SimplifiedCategory } from \"./SimplifiedCategory\";\nimport {\n  SimplifiedCategoryFromJSON,\n  SimplifiedCategoryFromJSONTyped,\n  SimplifiedCategoryToJSON,\n  SimplifiedCategoryToJSONTyped,\n} from \"./SimplifiedCategory\";\n\n/**\n *\n * @export\n * @interface PaginatedSimplifiedCategory\n */\nexport interface PaginatedSimplifiedCategory {\n  /**\n   *\n   * @type {number}\n   * @memberof PaginatedSimplifiedCategory\n   */\n  totalCount: number;\n  /**\n   *\n   * @type {Array<SimplifiedCategory>}\n   * @memberof PaginatedSimplifiedCategory\n   */\n  results: Array<SimplifiedCategory>;\n}\n\n/**\n * Check if a given object implements the PaginatedSimplifiedCategory interface.\n */\nexport function instanceOfPaginatedSimplifiedCategory(\n  value: object\n): value is PaginatedSimplifiedCategory {\n  if (!(\"totalCount\" in value) || value[\"totalCount\"] === undefined)\n    return false;\n  if (!(\"results\" in value) || value[\"results\"] === undefined) return false;\n  return true;\n}\n\nexport function PaginatedSimplifiedCategoryFromJSON(\n  json: any\n): PaginatedSimplifiedCategory {\n  return PaginatedSimplifiedCategoryFromJSONTyped(json, false);\n}\n\nexport function PaginatedSimplifiedCategoryFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): PaginatedSimplifiedCategory {\n  if (json == null) {\n    return json;\n  }\n  return {\n    totalCount: json[\"totalCount\"],\n    results: (json[\"results\"] as Array<any>).map(SimplifiedCategoryFromJSON),\n  };\n}\n\nexport function PaginatedSimplifiedCategoryToJSON(\n  json: any\n): PaginatedSimplifiedCategory {\n  return PaginatedSimplifiedCategoryToJSONTyped(json, false);\n}\n\nexport function PaginatedSimplifiedCategoryToJSONTyped(\n  value?: PaginatedSimplifiedCategory | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    totalCount: value[\"totalCount\"],\n    results: (value[\"results\"] as Array<any>).map(SimplifiedCategoryToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { StatusPapiError } from \"./StatusPapiError\";\nimport {\n  StatusPapiErrorFromJSON,\n  StatusPapiErrorFromJSONTyped,\n  StatusPapiErrorToJSON,\n  StatusPapiErrorToJSONTyped,\n} from \"./StatusPapiError\";\nimport type { EntitiesPapiError } from \"./EntitiesPapiError\";\nimport {\n  EntitiesPapiErrorFromJSON,\n  EntitiesPapiErrorFromJSONTyped,\n  EntitiesPapiErrorToJSON,\n  EntitiesPapiErrorToJSONTyped,\n} from \"./EntitiesPapiError\";\nimport type { EntityPapiError } from \"./EntityPapiError\";\nimport {\n  EntityPapiErrorFromJSON,\n  EntityPapiErrorFromJSONTyped,\n  EntityPapiErrorToJSON,\n  EntityPapiErrorToJSONTyped,\n} from \"./EntityPapiError\";\n\n/**\n *\n * @export\n * @interface PapiError\n */\nexport interface PapiError {\n  /**\n   *\n   * @type {number}\n   * @memberof PapiError\n   */\n  status: number;\n  /**\n   *\n   * @type {string}\n   * @memberof PapiError\n   */\n  message: string;\n  /**\n   *\n   * @type {Array<string>}\n   * @memberof PapiError\n   */\n  entityIds: Array<string>;\n  /**\n   *\n   * @type {string}\n   * @memberof PapiError\n   */\n  entityId: string;\n}\n\n/**\n * Check if a given object implements the PapiError interface.\n */\nexport function instanceOfPapiError(value: object): value is PapiError {\n  if (!(\"status\" in value) || value[\"status\"] === undefined) return false;\n  if (!(\"message\" in value) || value[\"message\"] === undefined) return false;\n  if (!(\"entityIds\" in value) || value[\"entityIds\"] === undefined) return false;\n  if (!(\"entityId\" in value) || value[\"entityId\"] === undefined) return false;\n  return true;\n}\n\nexport function PapiErrorFromJSON(json: any): PapiError {\n  return PapiErrorFromJSONTyped(json, false);\n}\n\nexport function PapiErrorFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): PapiError {\n  if (json == null) {\n    return json;\n  }\n  return {\n    status: json[\"status\"],\n    message: json[\"message\"],\n    entityIds: json[\"entityIds\"],\n    entityId: json[\"entityId\"],\n  };\n}\n\nexport function PapiErrorToJSON(json: any): PapiError {\n  return PapiErrorToJSONTyped(json, false);\n}\n\nexport function PapiErrorToJSONTyped(\n  value?: PapiError | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    status: value[\"status\"],\n    message: value[\"message\"],\n    entityIds: value[\"entityIds\"],\n    entityId: value[\"entityId\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { Product } from \"./Product\";\nimport {\n  ProductFromJSON,\n  ProductFromJSONTyped,\n  ProductToJSON,\n  ProductToJSONTyped,\n} from \"./Product\";\n\n/**\n *\n * @export\n * @interface ProductResults\n */\nexport interface ProductResults {\n  /**\n   *\n   * @type {Array<Product>}\n   * @memberof ProductResults\n   */\n  results: Array<Product>;\n}\n\n/**\n * Check if a given object implements the ProductResults interface.\n */\nexport function instanceOfProductResults(\n  value: object\n): value is ProductResults {\n  if (!(\"results\" in value) || value[\"results\"] === undefined) return false;\n  return true;\n}\n\nexport function ProductResultsFromJSON(json: any): ProductResults {\n  return ProductResultsFromJSONTyped(json, false);\n}\n\nexport function ProductResultsFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): ProductResults {\n  if (json == null) {\n    return json;\n  }\n  return {\n    results: (json[\"results\"] as Array<any>).map(ProductFromJSON),\n  };\n}\n\nexport function ProductResultsToJSON(json: any): ProductResults {\n  return ProductResultsToJSONTyped(json, false);\n}\n\nexport function ProductResultsToJSONTyped(\n  value?: ProductResults | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    results: (value[\"results\"] as Array<any>).map(ProductToJSON),\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface ProductsByIdsRequest\n */\nexport interface ProductsByIdsRequest {\n  /**\n   * Product ids returned entries must be matched to.\n   * @type {Array<string>}\n   * @memberof ProductsByIdsRequest\n   */\n  ids: Array<string>;\n}\n\n/**\n * Check if a given object implements the ProductsByIdsRequest interface.\n */\nexport function instanceOfProductsByIdsRequest(\n  value: object\n): value is ProductsByIdsRequest {\n  if (!(\"ids\" in value) || value[\"ids\"] === undefined) return false;\n  return true;\n}\n\nexport function ProductsByIdsRequestFromJSON(json: any): ProductsByIdsRequest {\n  return ProductsByIdsRequestFromJSONTyped(json, false);\n}\n\nexport function ProductsByIdsRequestFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): ProductsByIdsRequest {\n  if (json == null) {\n    return json;\n  }\n  return {\n    ids: json[\"ids\"],\n  };\n}\n\nexport function ProductsByIdsRequestToJSON(json: any): ProductsByIdsRequest {\n  return ProductsByIdsRequestToJSONTyped(json, false);\n}\n\nexport function ProductsByIdsRequestToJSONTyped(\n  value?: ProductsByIdsRequest | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    ids: value[\"ids\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface ProductsByNumbersRequest\n */\nexport interface ProductsByNumbersRequest {\n  /**\n   * Product numbers to be returned.\n   * @type {Array<string>}\n   * @memberof ProductsByNumbersRequest\n   */\n  numbers: Array<string>;\n}\n\n/**\n * Check if a given object implements the ProductsByNumbersRequest interface.\n */\nexport function instanceOfProductsByNumbersRequest(\n  value: object\n): value is ProductsByNumbersRequest {\n  if (!(\"numbers\" in value) || value[\"numbers\"] === undefined) return false;\n  return true;\n}\n\nexport function ProductsByNumbersRequestFromJSON(\n  json: any\n): ProductsByNumbersRequest {\n  return ProductsByNumbersRequestFromJSONTyped(json, false);\n}\n\nexport function ProductsByNumbersRequestFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): ProductsByNumbersRequest {\n  if (json == null) {\n    return json;\n  }\n  return {\n    numbers: json[\"numbers\"],\n  };\n}\n\nexport function ProductsByNumbersRequestToJSON(\n  json: any\n): ProductsByNumbersRequest {\n  return ProductsByNumbersRequestToJSONTyped(json, false);\n}\n\nexport function ProductsByNumbersRequestToJSONTyped(\n  value?: ProductsByNumbersRequest | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    numbers: value[\"numbers\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n */\nexport const PublishStateValues = {\n  Initializing: \"INITIALIZING\",\n  Pending: \"PENDING\",\n  Publish: \"PUBLISH\",\n  PublishCleanup: \"PUBLISH_CLEANUP\",\n  Closed: \"CLOSED\",\n  Cancelled: \"CANCELLED\",\n} as const;\nexport type PublishStateValues =\n  (typeof PublishStateValues)[keyof typeof PublishStateValues];\n\nexport function instanceOfPublishStateValues(value: any): boolean {\n  for (const key in PublishStateValues) {\n    if (Object.prototype.hasOwnProperty.call(PublishStateValues, key)) {\n      if (\n        PublishStateValues[key as keyof typeof PublishStateValues] === value\n      ) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\n\nexport function PublishStateValuesFromJSON(json: any): PublishStateValues {\n  return PublishStateValuesFromJSONTyped(json, false);\n}\n\nexport function PublishStateValuesFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): PublishStateValues {\n  return json as PublishStateValues;\n}\n\nexport function PublishStateValuesToJSON(\n  value?: PublishStateValues | null\n): any {\n  return value as any;\n}\n\nexport function PublishStateValuesToJSONTyped(\n  value: any,\n  ignoreDiscriminator: boolean\n): PublishStateValues {\n  return value as PublishStateValues;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\nimport type { PublishStateValues } from \"./PublishStateValues\";\nimport {\n  PublishStateValuesFromJSON,\n  PublishStateValuesFromJSONTyped,\n  PublishStateValuesToJSON,\n  PublishStateValuesToJSONTyped,\n} from \"./PublishStateValues\";\n\n/**\n *\n * @export\n * @interface PublishInfo\n */\nexport interface PublishInfo {\n  /**\n   * mongo identifier of the collection.\n   * @type {string}\n   * @memberof PublishInfo\n   */\n  id: string;\n  /**\n   *\n   * @type {PublishStateValues}\n   * @memberof PublishInfo\n   */\n  state: PublishStateValues;\n  /**\n   *\n   * @type {number}\n   * @memberof PublishInfo\n   */\n  createdAt: number;\n  /**\n   *\n   * @type {number}\n   * @memberof PublishInfo\n   */\n  disposedAt?: number;\n  /**\n   *\n   * @type {number}\n   * @memberof PublishInfo\n   */\n  cleanedAt?: number;\n  /**\n   *\n   * @type {string}\n   * @memberof PublishInfo\n   */\n  contextId: string;\n  /**\n   *\n   * @type {string}\n   * @memberof PublishInfo\n   */\n  contextName: string;\n}\n\n/**\n * Check if a given object implements the PublishInfo interface.\n */\nexport function instanceOfPublishInfo(value: object): value is PublishInfo {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"state\" in value) || value[\"state\"] === undefined) return false;\n  if (!(\"createdAt\" in value) || value[\"createdAt\"] === undefined) return false;\n  if (!(\"contextId\" in value) || value[\"contextId\"] === undefined) return false;\n  if (!(\"contextName\" in value) || value[\"contextName\"] === undefined)\n    return false;\n  return true;\n}\n\nexport function PublishInfoFromJSON(json: any): PublishInfo {\n  return PublishInfoFromJSONTyped(json, false);\n}\n\nexport function PublishInfoFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): PublishInfo {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    state: PublishStateValuesFromJSON(json[\"state\"]),\n    createdAt: json[\"createdAt\"],\n    disposedAt: json[\"disposedAt\"] == null ? undefined : json[\"disposedAt\"],\n    cleanedAt: json[\"cleanedAt\"] == null ? undefined : json[\"cleanedAt\"],\n    contextId: json[\"contextId\"],\n    contextName: json[\"contextName\"],\n  };\n}\n\nexport function PublishInfoToJSON(json: any): PublishInfo {\n  return PublishInfoToJSONTyped(json, false);\n}\n\nexport function PublishInfoToJSONTyped(\n  value?: PublishInfo | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    state: PublishStateValuesToJSON(value[\"state\"]),\n    createdAt: value[\"createdAt\"],\n    disposedAt: value[\"disposedAt\"],\n    cleanedAt: value[\"cleanedAt\"],\n    contextId: value[\"contextId\"],\n    contextName: value[\"contextName\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface RelationDefinition\n */\nexport interface RelationDefinition {\n  /**\n   *\n   * @type {string}\n   * @memberof RelationDefinition\n   */\n  id: string;\n  /**\n   *\n   * @type {string}\n   * @memberof RelationDefinition\n   */\n  number?: string;\n  /**\n   *\n   * @type {string}\n   * @memberof RelationDefinition\n   */\n  name: string;\n  /**\n   *\n   * @type {string}\n   * @memberof RelationDefinition\n   */\n  reverseName?: string;\n  /**\n   *\n   * @type {number}\n   * @memberof RelationDefinition\n   */\n  order?: number;\n}\n\n/**\n * Check if a given object implements the RelationDefinition interface.\n */\nexport function instanceOfRelationDefinition(\n  value: object\n): value is RelationDefinition {\n  if (!(\"id\" in value) || value[\"id\"] === undefined) return false;\n  if (!(\"name\" in value) || value[\"name\"] === undefined) return false;\n  return true;\n}\n\nexport function RelationDefinitionFromJSON(json: any): RelationDefinition {\n  return RelationDefinitionFromJSONTyped(json, false);\n}\n\nexport function RelationDefinitionFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): RelationDefinition {\n  if (json == null) {\n    return json;\n  }\n  return {\n    id: json[\"id\"],\n    number: json[\"number\"] == null ? undefined : json[\"number\"],\n    name: json[\"name\"],\n    reverseName: json[\"reverseName\"] == null ? undefined : json[\"reverseName\"],\n    order: json[\"order\"] == null ? undefined : json[\"order\"],\n  };\n}\n\nexport function RelationDefinitionToJSON(json: any): RelationDefinition {\n  return RelationDefinitionToJSONTyped(json, false);\n}\n\nexport function RelationDefinitionToJSONTyped(\n  value?: RelationDefinition | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    id: value[\"id\"],\n    number: value[\"number\"],\n    name: value[\"name\"],\n    reverseName: value[\"reverseName\"],\n    order: value[\"order\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface SegmentContextRequest\n */\nexport interface SegmentContextRequest {\n  /**\n   * Context id, or 'en' if id is not specified.\n   * @type {string}\n   * @memberof SegmentContextRequest\n   */\n  context?: string;\n  /**\n   * Context name, or 'default' if name is not specified.\n   * @type {string}\n   * @memberof SegmentContextRequest\n   */\n  contextName?: string;\n}\n\n/**\n * Check if a given object implements the SegmentContextRequest interface.\n */\nexport function instanceOfSegmentContextRequest(\n  value: object\n): value is SegmentContextRequest {\n  return true;\n}\n\nexport function SegmentContextRequestFromJSON(\n  json: any\n): SegmentContextRequest {\n  return SegmentContextRequestFromJSONTyped(json, false);\n}\n\nexport function SegmentContextRequestFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): SegmentContextRequest {\n  if (json == null) {\n    return json;\n  }\n  return {\n    context: json[\"context\"] == null ? undefined : json[\"context\"],\n    contextName: json[\"contextName\"] == null ? undefined : json[\"contextName\"],\n  };\n}\n\nexport function SegmentContextRequestToJSON(json: any): SegmentContextRequest {\n  return SegmentContextRequestToJSONTyped(json, false);\n}\n\nexport function SegmentContextRequestToJSONTyped(\n  value?: SegmentContextRequest | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    context: value[\"context\"],\n    contextName: value[\"contextName\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from \"../runtime\";\n/**\n *\n * @export\n * @interface StatusPapiError\n */\nexport interface StatusPapiError {\n  /**\n   *\n   * @type {number}\n   * @memberof StatusPapiError\n   */\n  status: number;\n  /**\n   *\n   * @type {string}\n   * @memberof StatusPapiError\n   */\n  message: string;\n}\n\n/**\n * Check if a given object implements the StatusPapiError interface.\n */\nexport function instanceOfStatusPapiError(\n  value: object\n): value is StatusPapiError {\n  if (!(\"status\" in value) || value[\"status\"] === undefined) return false;\n  if (!(\"message\" in value) || value[\"message\"] === undefined) return false;\n  return true;\n}\n\nexport function StatusPapiErrorFromJSON(json: any): StatusPapiError {\n  return StatusPapiErrorFromJSONTyped(json, false);\n}\n\nexport function StatusPapiErrorFromJSONTyped(\n  json: any,\n  ignoreDiscriminator: boolean\n): StatusPapiError {\n  if (json == null) {\n    return json;\n  }\n  return {\n    status: json[\"status\"],\n    message: json[\"message\"],\n  };\n}\n\nexport function StatusPapiErrorToJSON(json: any): StatusPapiError {\n  return StatusPapiErrorToJSONTyped(json, false);\n}\n\nexport function StatusPapiErrorToJSONTyped(\n  value?: StatusPapiError | null,\n  ignoreDiscriminator: boolean = false\n): any {\n  if (value == null) {\n    return value;\n  }\n\n  return {\n    status: value[\"status\"],\n    message: value[\"message\"],\n  };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport * as runtime from \"../runtime\";\nimport type { PaginatedAttribute } from \"../models/index\";\nimport {\n  PaginatedAttributeFromJSON,\n  PaginatedAttributeToJSON,\n} from \"../models/index\";\n\nexport interface AttributesApiGetAttributesRequest {\n  id?: string;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\n/**\n *\n */\nexport class AttributesApi extends runtime.BaseAPI {\n  /**\n   * Describe the attributes available in the system.  <br><b>id</b> - attribute id.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getAttributesRaw(\n    requestParameters: AttributesApiGetAttributesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<PaginatedAttribute>> {\n    const queryParameters: any = {};\n\n    if (requestParameters[\"id\"] != null) {\n      queryParameters[\"id\"] = requestParameters[\"id\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/attributes`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      PaginatedAttributeFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Describe the attributes available in the system.  <br><b>id</b> - attribute id.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getAttributes(\n    requestParameters: AttributesApiGetAttributesRequest = {},\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<PaginatedAttribute> {\n    const response = await this.getAttributesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport * as runtime from \"../runtime\";\nimport type {\n  Category,\n  PaginatedCategory,\n  PaginatedProduct,\n  PaginatedSimplifiedCategory,\n  PapiError,\n  SimplifiedCategory,\n} from \"../models/index\";\nimport {\n  CategoryFromJSON,\n  CategoryToJSON,\n  PaginatedCategoryFromJSON,\n  PaginatedCategoryToJSON,\n  PaginatedProductFromJSON,\n  PaginatedProductToJSON,\n  PaginatedSimplifiedCategoryFromJSON,\n  PaginatedSimplifiedCategoryToJSON,\n  PapiErrorFromJSON,\n  PapiErrorToJSON,\n  SimplifiedCategoryFromJSON,\n  SimplifiedCategoryToJSON,\n} from \"../models/index\";\n\nexport interface CategoriesApiGetAncestorsRequest {\n  categoryId: string;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\nexport interface CategoriesApiGetCategoriesRequest {\n  name?: string;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\nexport interface CategoriesApiGetCategoryByIdRequest {\n  categoryId: string;\n  deep?: number;\n  context?: string;\n}\n\nexport interface CategoriesApiGetProductsRequest {\n  categoryId: string;\n  subCategories?: boolean;\n  labels?: string;\n  name?: string;\n  number?: string;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\nexport interface CategoriesApiScanRequest {\n  categoryId?: string;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\n/**\n *\n */\nexport class CategoriesApi extends runtime.BaseAPI {\n  /**\n   * Describe categories associated with given category. <br><b>deep</b> - deepness of sub categories to be retrieved. default 10.\n   */\n  async getAncestorsRaw(\n    requestParameters: CategoriesApiGetAncestorsRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<SimplifiedCategory>>> {\n    if (requestParameters[\"categoryId\"] == null) {\n      throw new runtime.RequiredError(\n        \"categoryId\",\n        'Required parameter \"categoryId\" was null or undefined when calling getAncestors().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/categories/{categoryId}/ancestors`.replace(\n          `{${\"categoryId\"}}`,\n          encodeURIComponent(String(requestParameters[\"categoryId\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(SimplifiedCategoryFromJSON)\n    );\n  }\n\n  /**\n   * Describe categories associated with given category. <br><b>deep</b> - deepness of sub categories to be retrieved. default 10.\n   */\n  async getAncestors(\n    requestParameters: CategoriesApiGetAncestorsRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<SimplifiedCategory>> {\n    const response = await this.getAncestorsRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Describe the root categories available in the system.  <br><b>name</b> - category contains a name  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getCategoriesRaw(\n    requestParameters: CategoriesApiGetCategoriesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<PaginatedCategory>> {\n    const queryParameters: any = {};\n\n    if (requestParameters[\"name\"] != null) {\n      queryParameters[\"name\"] = requestParameters[\"name\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/categories`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      PaginatedCategoryFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Describe the root categories available in the system.  <br><b>name</b> - category contains a name  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getCategories(\n    requestParameters: CategoriesApiGetCategoriesRequest = {},\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<PaginatedCategory> {\n    const response = await this.getCategoriesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Describe categories associated with given category. <br><b>deep</b> - deepness of sub categories to be retrieved. default 10.\n   */\n  async getCategoryByIdRaw(\n    requestParameters: CategoriesApiGetCategoryByIdRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Category>> {\n    if (requestParameters[\"categoryId\"] == null) {\n      throw new runtime.RequiredError(\n        \"categoryId\",\n        'Required parameter \"categoryId\" was null or undefined when calling getCategoryById().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    if (requestParameters[\"deep\"] != null) {\n      queryParameters[\"deep\"] = requestParameters[\"deep\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/categories/{categoryId}`.replace(\n          `{${\"categoryId\"}}`,\n          encodeURIComponent(String(requestParameters[\"categoryId\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      CategoryFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Describe categories associated with given category. <br><b>deep</b> - deepness of sub categories to be retrieved. default 10.\n   */\n  async getCategoryById(\n    requestParameters: CategoriesApiGetCategoryByIdRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Category> {\n    const response = await this.getCategoryByIdRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Get a list of products for given category. <br><b>subCategories</b> - default false. Set to true provides products for all sub categories. <br><b>withLabels</b> - format \\\"label1;label2\\\" a set of labels products should contain. <br><b>name</b> - part of the name contained by the product <br><b>itemsOnPage</b> - items to be displayed on page. <br><b>pageNo</b> - page number to display.\n   */\n  async getProductsRaw(\n    requestParameters: CategoriesApiGetProductsRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<PaginatedProduct>> {\n    if (requestParameters[\"categoryId\"] == null) {\n      throw new runtime.RequiredError(\n        \"categoryId\",\n        'Required parameter \"categoryId\" was null or undefined when calling getProducts().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    if (requestParameters[\"subCategories\"] != null) {\n      queryParameters[\"subCategories\"] = requestParameters[\"subCategories\"];\n    }\n\n    if (requestParameters[\"labels\"] != null) {\n      queryParameters[\"labels\"] = requestParameters[\"labels\"];\n    }\n\n    if (requestParameters[\"name\"] != null) {\n      queryParameters[\"name\"] = requestParameters[\"name\"];\n    }\n\n    if (requestParameters[\"number\"] != null) {\n      queryParameters[\"number\"] = requestParameters[\"number\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/categories/{categoryId}/products`.replace(\n          `{${\"categoryId\"}}`,\n          encodeURIComponent(String(requestParameters[\"categoryId\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      PaginatedProductFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Get a list of products for given category. <br><b>subCategories</b> - default false. Set to true provides products for all sub categories. <br><b>withLabels</b> - format \\\"label1;label2\\\" a set of labels products should contain. <br><b>name</b> - part of the name contained by the product <br><b>itemsOnPage</b> - items to be displayed on page. <br><b>pageNo</b> - page number to display.\n   */\n  async getProducts(\n    requestParameters: CategoriesApiGetProductsRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<PaginatedProduct> {\n    const response = await this.getProductsRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Get paginated flat list of categories: given category and its descendants. CategoryId is optional, if not provided all catalogs are listed.\n   */\n  async scanRaw(\n    requestParameters: CategoriesApiScanRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<PaginatedSimplifiedCategory>> {\n    const queryParameters: any = {};\n\n    if (requestParameters[\"categoryId\"] != null) {\n      queryParameters[\"categoryId\"] = requestParameters[\"categoryId\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/categories/scan`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      PaginatedSimplifiedCategoryFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Get paginated flat list of categories: given category and its descendants. CategoryId is optional, if not provided all catalogs are listed.\n   */\n  async scan(\n    requestParameters: CategoriesApiScanRequest = {},\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<PaginatedSimplifiedCategory> {\n    const response = await this.scanRaw(requestParameters, initOverrides);\n    return await response.value();\n  }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport * as runtime from \"../runtime\";\nimport type { SegmentContextRequest } from \"../models/index\";\nimport {\n  SegmentContextRequestFromJSON,\n  SegmentContextRequestToJSON,\n} from \"../models/index\";\n\n/**\n *\n */\nexport class ContextsApi extends runtime.BaseAPI {\n  /**\n   * lists currently available publications\n   */\n  async getSegmentInfoRaw(\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<SegmentContextRequest>>> {\n    const queryParameters: any = {};\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/contexts`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(SegmentContextRequestFromJSON)\n    );\n  }\n\n  /**\n   * lists currently available publications\n   */\n  async getSegmentInfo(\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<SegmentContextRequest>> {\n    const response = await this.getSegmentInfoRaw(initOverrides);\n    return await response.value();\n  }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport * as runtime from \"../runtime\";\nimport type { DiffResponse, DiffType } from \"../models/index\";\nimport {\n  DiffResponseFromJSON,\n  DiffResponseToJSON,\n  DiffTypeFromJSON,\n  DiffTypeToJSON,\n} from \"../models/index\";\n\nexport interface DifferencesApiGetAttributeDifferencesRequest {\n  diffType?: DiffType;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\nexport interface DifferencesApiGetAttributeDifferencesOnSyncDeletesRequest {\n  id: string;\n  diffType?: DiffType;\n  itemsOnPage?: number;\n  pageNo?: number;\n}\n\nexport interface DifferencesApiGetCategoryDifferencesRequest {\n  diffType?: DiffType;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\nexport interface DifferencesApiGetCategoryDifferencesOnSyncDeletesRequest {\n  id: string;\n  diffType?: DiffType;\n  itemsOnPage?: number;\n  pageNo?: number;\n}\n\nexport interface DifferencesApiGetProductDifferencesRequest {\n  diffType?: DiffType;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\nexport interface DifferencesApiGetProductDifferencesOnSyncDeletesRequest {\n  id: string;\n  diffType?: DiffType;\n  itemsOnPage?: number;\n  pageNo?: number;\n}\n\nexport interface DifferencesApiGetRelationDifferencesRequest {\n  diffType?: DiffType;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\nexport interface DifferencesApiGetRelationDifferencesOnSyncDeletesRequest {\n  id: string;\n  diffType?: DiffType;\n  itemsOnPage?: number;\n  pageNo?: number;\n}\n\n/**\n *\n */\nexport class DifferencesApi extends runtime.BaseAPI {\n  /**\n   * Return a set of differences done during last sync operation.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getAttributeDifferencesRaw(\n    requestParameters: DifferencesApiGetAttributeDifferencesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<DiffResponse>>> {\n    const queryParameters: any = {};\n\n    if (requestParameters[\"diffType\"] != null) {\n      queryParameters[\"diffType\"] = requestParameters[\"diffType\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/differences/attributes`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(DiffResponseFromJSON)\n    );\n  }\n\n  /**\n   * Return a set of differences done during last sync operation.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getAttributeDifferences(\n    requestParameters: DifferencesApiGetAttributeDifferencesRequest = {},\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<DiffResponse>> {\n    const response = await this.getAttributeDifferencesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Return a set of changed attributes with given sync  <br><b>id</b> - sync id for which differences should be retrieved.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - amount of items to be retrieved.  <br><b>pageNo</b> - page number.\n   */\n  async getAttributeDifferencesOnSyncDeletesRaw(\n    requestParameters: DifferencesApiGetAttributeDifferencesOnSyncDeletesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<DiffResponse>>> {\n    if (requestParameters[\"id\"] == null) {\n      throw new runtime.RequiredError(\n        \"id\",\n        'Required parameter \"id\" was null or undefined when calling getAttributeDifferencesOnSyncDeletes().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    if (requestParameters[\"diffType\"] != null) {\n      queryParameters[\"diffType\"] = requestParameters[\"diffType\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/differences/sync/{id}/attributes`.replace(\n          `{${\"id\"}}`,\n          encodeURIComponent(String(requestParameters[\"id\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(DiffResponseFromJSON)\n    );\n  }\n\n  /**\n   * Return a set of changed attributes with given sync  <br><b>id</b> - sync id for which differences should be retrieved.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - amount of items to be retrieved.  <br><b>pageNo</b> - page number.\n   */\n  async getAttributeDifferencesOnSyncDeletes(\n    requestParameters: DifferencesApiGetAttributeDifferencesOnSyncDeletesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<DiffResponse>> {\n    const response = await this.getAttributeDifferencesOnSyncDeletesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Return a set of changed categories during last publish  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - amount of items to be retrieved.  <br><b>pageNo</b> - page number.\n   */\n  async getCategoryDifferencesRaw(\n    requestParameters: DifferencesApiGetCategoryDifferencesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<DiffResponse>>> {\n    const queryParameters: any = {};\n\n    if (requestParameters[\"diffType\"] != null) {\n      queryParameters[\"diffType\"] = requestParameters[\"diffType\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/differences/categories`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(DiffResponseFromJSON)\n    );\n  }\n\n  /**\n   * Return a set of changed categories during last publish  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - amount of items to be retrieved.  <br><b>pageNo</b> - page number.\n   */\n  async getCategoryDifferences(\n    requestParameters: DifferencesApiGetCategoryDifferencesRequest = {},\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<DiffResponse>> {\n    const response = await this.getCategoryDifferencesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Return a set of differences done with a given sync.  <br><b>id</b> - sync id for which differences should be retrieved.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getCategoryDifferencesOnSyncDeletesRaw(\n    requestParameters: DifferencesApiGetCategoryDifferencesOnSyncDeletesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<DiffResponse>>> {\n    if (requestParameters[\"id\"] == null) {\n      throw new runtime.RequiredError(\n        \"id\",\n        'Required parameter \"id\" was null or undefined when calling getCategoryDifferencesOnSyncDeletes().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    if (requestParameters[\"diffType\"] != null) {\n      queryParameters[\"diffType\"] = requestParameters[\"diffType\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/differences/sync/{id}/categories`.replace(\n          `{${\"id\"}}`,\n          encodeURIComponent(String(requestParameters[\"id\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(DiffResponseFromJSON)\n    );\n  }\n\n  /**\n   * Return a set of differences done with a given sync.  <br><b>id</b> - sync id for which differences should be retrieved.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getCategoryDifferencesOnSyncDeletes(\n    requestParameters: DifferencesApiGetCategoryDifferencesOnSyncDeletesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<DiffResponse>> {\n    const response = await this.getCategoryDifferencesOnSyncDeletesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Return a set of differences done during last sync operation.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getProductDifferencesRaw(\n    requestParameters: DifferencesApiGetProductDifferencesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<DiffResponse>>> {\n    const queryParameters: any = {};\n\n    if (requestParameters[\"diffType\"] != null) {\n      queryParameters[\"diffType\"] = requestParameters[\"diffType\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/differences/products`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(DiffResponseFromJSON)\n    );\n  }\n\n  /**\n   * Return a set of differences done during last sync operation.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getProductDifferences(\n    requestParameters: DifferencesApiGetProductDifferencesRequest = {},\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<DiffResponse>> {\n    const response = await this.getProductDifferencesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Return a set of changed products with given sync  <br><b>id</b> - sync id for which differences should be retrieved.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - amount of items to be retrieved.  <br><b>pageNo</b> - page number.\n   */\n  async getProductDifferencesOnSyncDeletesRaw(\n    requestParameters: DifferencesApiGetProductDifferencesOnSyncDeletesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<DiffResponse>>> {\n    if (requestParameters[\"id\"] == null) {\n      throw new runtime.RequiredError(\n        \"id\",\n        'Required parameter \"id\" was null or undefined when calling getProductDifferencesOnSyncDeletes().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    if (requestParameters[\"diffType\"] != null) {\n      queryParameters[\"diffType\"] = requestParameters[\"diffType\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/differences/sync/{id}/products`.replace(\n          `{${\"id\"}}`,\n          encodeURIComponent(String(requestParameters[\"id\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(DiffResponseFromJSON)\n    );\n  }\n\n  /**\n   * Return a set of changed products with given sync  <br><b>id</b> - sync id for which differences should be retrieved.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - amount of items to be retrieved.  <br><b>pageNo</b> - page number.\n   */\n  async getProductDifferencesOnSyncDeletes(\n    requestParameters: DifferencesApiGetProductDifferencesOnSyncDeletesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<DiffResponse>> {\n    const response = await this.getProductDifferencesOnSyncDeletesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Return a set of differences done during last sync operation.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getRelationDifferencesRaw(\n    requestParameters: DifferencesApiGetRelationDifferencesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<DiffResponse>>> {\n    const queryParameters: any = {};\n\n    if (requestParameters[\"diffType\"] != null) {\n      queryParameters[\"diffType\"] = requestParameters[\"diffType\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/differences/relations`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(DiffResponseFromJSON)\n    );\n  }\n\n  /**\n   * Return a set of differences done during last sync operation.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - items to be displayed on page.  <br><b>pageNo</b> - page number to display.\n   */\n  async getRelationDifferences(\n    requestParameters: DifferencesApiGetRelationDifferencesRequest = {},\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<DiffResponse>> {\n    const response = await this.getRelationDifferencesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Return a set of changed relations with given sync  <br><b>id</b> - sync id for which differences should be retrieved.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - amount of items to be retrieved.  <br><b>pageNo</b> - page number.\n   */\n  async getRelationDifferencesOnSyncDeletesRaw(\n    requestParameters: DifferencesApiGetRelationDifferencesOnSyncDeletesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<DiffResponse>>> {\n    if (requestParameters[\"id\"] == null) {\n      throw new runtime.RequiredError(\n        \"id\",\n        'Required parameter \"id\" was null or undefined when calling getRelationDifferencesOnSyncDeletes().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    if (requestParameters[\"diffType\"] != null) {\n      queryParameters[\"diffType\"] = requestParameters[\"diffType\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/differences/sync/{id}/relations`.replace(\n          `{${\"id\"}}`,\n          encodeURIComponent(String(requestParameters[\"id\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(DiffResponseFromJSON)\n    );\n  }\n\n  /**\n   * Return a set of changed relations with given sync  <br><b>id</b> - sync id for which differences should be retrieved.  <br><b>diffType</b> - filter returned values on difference type.  <br><b>itemsOnPage</b> - amount of items to be retrieved.  <br><b>pageNo</b> - page number.\n   */\n  async getRelationDifferencesOnSyncDeletes(\n    requestParameters: DifferencesApiGetRelationDifferencesOnSyncDeletesRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<DiffResponse>> {\n    const response = await this.getRelationDifferencesOnSyncDeletesRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport * as runtime from \"../runtime\";\n\n/**\n *\n */\nexport class HealthApi extends runtime.BaseAPI {\n  /**\n   * A Health check for PAPI service.\n   */\n  async getHealthRaw(\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<void>> {\n    const queryParameters: any = {};\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    const response = await this.request(\n      {\n        path: `/health`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.VoidApiResponse(response);\n  }\n\n  /**\n   * A Health check for PAPI service.\n   */\n  async getHealth(\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<void> {\n    await this.getHealthRaw(initOverrides);\n  }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport * as runtime from \"../runtime\";\nimport type {\n  CursorPageProduct,\n  CursorQuery,\n  FilteringCriteriaRequest,\n  PaginatedProduct,\n  PapiError,\n  Product,\n  ProductResults,\n  ProductsByIdsRequest,\n  ProductsByNumbersRequest,\n} from \"../models/index\";\nimport {\n  CursorPageProductFromJSON,\n  CursorPageProductToJSON,\n  CursorQueryFromJSON,\n  CursorQueryToJSON,\n  FilteringCriteriaRequestFromJSON,\n  FilteringCriteriaRequestToJSON,\n  PaginatedProductFromJSON,\n  PaginatedProductToJSON,\n  PapiErrorFromJSON,\n  PapiErrorToJSON,\n  ProductFromJSON,\n  ProductToJSON,\n  ProductResultsFromJSON,\n  ProductResultsToJSON,\n  ProductsByIdsRequestFromJSON,\n  ProductsByIdsRequestToJSON,\n  ProductsByNumbersRequestFromJSON,\n  ProductsByNumbersRequestToJSON,\n} from \"../models/index\";\n\nexport interface ProductsApiFindProductsRequest {\n  filteringCriteriaRequest: FilteringCriteriaRequest;\n  sort?: string;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\nexport interface ProductsApiFindProductsByCursorRequest {\n  cursorQuery: CursorQuery;\n  context?: string;\n}\n\nexport interface ProductsApiFindProductsByIdsRequest {\n  productsByIdsRequest: ProductsByIdsRequest;\n  context?: string;\n}\n\nexport interface ProductsApiFindProductsByNumbersRequest {\n  productsByNumbersRequest: ProductsByNumbersRequest;\n  context?: string;\n}\n\nexport interface ProductsApiGetProductRequest {\n  id: string;\n  context?: string;\n}\n\nexport interface ProductsApiGetProducts0Request {\n  categoryId: string;\n  subCategories?: boolean;\n  labels?: string;\n  name?: string;\n  number?: string;\n  itemsOnPage?: number;\n  pageNo?: number;\n  context?: string;\n}\n\n/**\n *\n */\nexport class ProductsApi extends runtime.BaseAPI {\n  /**\n   * Find products in PAPI\n   */\n  async findProductsRaw(\n    requestParameters: ProductsApiFindProductsRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<PaginatedProduct>> {\n    if (requestParameters[\"filteringCriteriaRequest\"] == null) {\n      throw new runtime.RequiredError(\n        \"filteringCriteriaRequest\",\n        'Required parameter \"filteringCriteriaRequest\" was null or undefined when calling findProducts().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    if (requestParameters[\"sort\"] != null) {\n      queryParameters[\"sort\"] = requestParameters[\"sort\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    headerParameters[\"Content-Type\"] = \"application/json\";\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/products/list`,\n        method: \"POST\",\n        headers: headerParameters,\n        query: queryParameters,\n        body: FilteringCriteriaRequestToJSON(\n          requestParameters[\"filteringCriteriaRequest\"]\n        ),\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      PaginatedProductFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Find products in PAPI\n   */\n  async findProducts(\n    requestParameters: ProductsApiFindProductsRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<PaginatedProduct> {\n    const response = await this.findProductsRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   */\n  async findProductsByCursorRaw(\n    requestParameters: ProductsApiFindProductsByCursorRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<CursorPageProduct>> {\n    if (requestParameters[\"cursorQuery\"] == null) {\n      throw new runtime.RequiredError(\n        \"cursorQuery\",\n        'Required parameter \"cursorQuery\" was null or undefined when calling findProductsByCursor().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    headerParameters[\"Content-Type\"] = \"application/json\";\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/products/cursor/all`,\n        method: \"POST\",\n        headers: headerParameters,\n        query: queryParameters,\n        body: CursorQueryToJSON(requestParameters[\"cursorQuery\"]),\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      CursorPageProductFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   */\n  async findProductsByCursor(\n    requestParameters: ProductsApiFindProductsByCursorRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<CursorPageProduct> {\n    const response = await this.findProductsByCursorRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Show list of products filtered by ids.\n   */\n  async findProductsByIdsRaw(\n    requestParameters: ProductsApiFindProductsByIdsRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<ProductResults>> {\n    if (requestParameters[\"productsByIdsRequest\"] == null) {\n      throw new runtime.RequiredError(\n        \"productsByIdsRequest\",\n        'Required parameter \"productsByIdsRequest\" was null or undefined when calling findProductsByIds().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    headerParameters[\"Content-Type\"] = \"application/json\";\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/products/by-ids`,\n        method: \"POST\",\n        headers: headerParameters,\n        query: queryParameters,\n        body: ProductsByIdsRequestToJSON(\n          requestParameters[\"productsByIdsRequest\"]\n        ),\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      ProductResultsFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Show list of products filtered by ids.\n   */\n  async findProductsByIds(\n    requestParameters: ProductsApiFindProductsByIdsRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<ProductResults> {\n    const response = await this.findProductsByIdsRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Show list of products filtered by numbers.\n   */\n  async findProductsByNumbersRaw(\n    requestParameters: ProductsApiFindProductsByNumbersRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<ProductResults>> {\n    if (requestParameters[\"productsByNumbersRequest\"] == null) {\n      throw new runtime.RequiredError(\n        \"productsByNumbersRequest\",\n        'Required parameter \"productsByNumbersRequest\" was null or undefined when calling findProductsByNumbers().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    headerParameters[\"Content-Type\"] = \"application/json\";\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/products/by-numbers`,\n        method: \"POST\",\n        headers: headerParameters,\n        query: queryParameters,\n        body: ProductsByNumbersRequestToJSON(\n          requestParameters[\"productsByNumbersRequest\"]\n        ),\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      ProductResultsFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Show list of products filtered by numbers.\n   */\n  async findProductsByNumbers(\n    requestParameters: ProductsApiFindProductsByNumbersRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<ProductResults> {\n    const response = await this.findProductsByNumbersRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Get the product with given id\n   */\n  async getProductRaw(\n    requestParameters: ProductsApiGetProductRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Product>> {\n    if (requestParameters[\"id\"] == null) {\n      throw new runtime.RequiredError(\n        \"id\",\n        'Required parameter \"id\" was null or undefined when calling getProduct().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/products/{id}`.replace(\n          `{${\"id\"}}`,\n          encodeURIComponent(String(requestParameters[\"id\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      ProductFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Get the product with given id\n   */\n  async getProduct(\n    requestParameters: ProductsApiGetProductRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Product> {\n    const response = await this.getProductRaw(requestParameters, initOverrides);\n    return await response.value();\n  }\n\n  /**\n   * Get a list of products for given category. <br><b>subCategories</b> - default false. Set to true provides products for all sub categories. <br><b>withLabels</b> - format \\\"label1;label2\\\" a set of labels products should contain. <br><b>name</b> - part of the name contained by the product <br><b>itemsOnPage</b> - items to be displayed on page. <br><b>pageNo</b> - page number to display.\n   */\n  async getProductsRaw(\n    requestParameters: ProductsApiGetProducts0Request,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<PaginatedProduct>> {\n    if (requestParameters[\"categoryId\"] == null) {\n      throw new runtime.RequiredError(\n        \"categoryId\",\n        'Required parameter \"categoryId\" was null or undefined when calling getProducts().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    if (requestParameters[\"subCategories\"] != null) {\n      queryParameters[\"subCategories\"] = requestParameters[\"subCategories\"];\n    }\n\n    if (requestParameters[\"labels\"] != null) {\n      queryParameters[\"labels\"] = requestParameters[\"labels\"];\n    }\n\n    if (requestParameters[\"name\"] != null) {\n      queryParameters[\"name\"] = requestParameters[\"name\"];\n    }\n\n    if (requestParameters[\"number\"] != null) {\n      queryParameters[\"number\"] = requestParameters[\"number\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/categories/{categoryId}/products`.replace(\n          `{${\"categoryId\"}}`,\n          encodeURIComponent(String(requestParameters[\"categoryId\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      PaginatedProductFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Get a list of products for given category. <br><b>subCategories</b> - default false. Set to true provides products for all sub categories. <br><b>withLabels</b> - format \\\"label1;label2\\\" a set of labels products should contain. <br><b>name</b> - part of the name contained by the product <br><b>itemsOnPage</b> - items to be displayed on page. <br><b>pageNo</b> - page number to display.\n   */\n  async getProducts(\n    requestParameters: ProductsApiGetProducts0Request,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<PaginatedProduct> {\n    const response = await this.getProductsRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport * as runtime from \"../runtime\";\nimport type { RelationDefinition } from \"../models/index\";\nimport {\n  RelationDefinitionFromJSON,\n  RelationDefinitionToJSON,\n} from \"../models/index\";\n\nexport interface RelationsApiGetRelationsRequest {\n  context?: string;\n}\n\n/**\n *\n */\nexport class RelationsApi extends runtime.BaseAPI {\n  /**\n   * Describe the relations available in the system.\n   */\n  async getRelationsRaw(\n    requestParameters: RelationsApiGetRelationsRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<RelationDefinition>>> {\n    const queryParameters: any = {};\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (requestParameters[\"context\"] != null) {\n      headerParameters[\"context\"] = String(requestParameters[\"context\"]);\n    }\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/relations`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(RelationDefinitionFromJSON)\n    );\n  }\n\n  /**\n   * Describe the relations available in the system.\n   */\n  async getRelations(\n    requestParameters: RelationsApiGetRelationsRequest = {},\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<RelationDefinition>> {\n    const response = await this.getRelationsRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n *\n * Bluestone Public API  <b><h1>Deprecated endpoints:</h1></b><table border=\\\"1px;\\\"><tr><th style=\\\"text-align: center; vertical-align: middle;\\\"><b><h3>Uri</b></h3></th><th><b>Method</b></th><th><b><h3>Since</h3></b></th><th><b><h3>End of life</h3></b></th></tr></table>\n *\n * The version of the OpenAPI document: 1-core\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport * as runtime from \"../runtime\";\nimport type { PublishInfo } from \"../models/index\";\nimport { PublishInfoFromJSON, PublishInfoToJSON } from \"../models/index\";\n\nexport interface SyncsApiGetPublishInfoRequest {\n  id: string;\n}\n\nexport interface SyncsApiGetPublishInfosRequest {\n  context?: string;\n  sort?: string;\n  publishStates?: string;\n  createdAfter?: number;\n  itemsOnPage?: number;\n  pageNo?: number;\n}\n\n/**\n *\n */\nexport class SyncsApi extends runtime.BaseAPI {\n  /**\n   * Retrieves the information about given PublishInfo environment.\n   */\n  async getPublishInfoRaw(\n    requestParameters: SyncsApiGetPublishInfoRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<PublishInfo>> {\n    if (requestParameters[\"id\"] == null) {\n      throw new runtime.RequiredError(\n        \"id\",\n        'Required parameter \"id\" was null or undefined when calling getPublishInfo().'\n      );\n    }\n\n    const queryParameters: any = {};\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/syncs/{id}`.replace(\n          `{${\"id\"}}`,\n          encodeURIComponent(String(requestParameters[\"id\"]))\n        ),\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      PublishInfoFromJSON(jsonValue)\n    );\n  }\n\n  /**\n   * Retrieves the information about given PublishInfo environment.\n   */\n  async getPublishInfo(\n    requestParameters: SyncsApiGetPublishInfoRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<PublishInfo> {\n    const response = await this.getPublishInfoRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n\n  /**\n   * Retrieves a collection of publish info for given tenant.\n   */\n  async getPublishInfosRaw(\n    requestParameters: SyncsApiGetPublishInfosRequest,\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<runtime.ApiResponse<Array<PublishInfo>>> {\n    const queryParameters: any = {};\n\n    if (requestParameters[\"context\"] != null) {\n      queryParameters[\"context\"] = requestParameters[\"context\"];\n    }\n\n    if (requestParameters[\"sort\"] != null) {\n      queryParameters[\"sort\"] = requestParameters[\"sort\"];\n    }\n\n    if (requestParameters[\"publishStates\"] != null) {\n      queryParameters[\"publishStates\"] = requestParameters[\"publishStates\"];\n    }\n\n    if (requestParameters[\"createdAfter\"] != null) {\n      queryParameters[\"createdAfter\"] = requestParameters[\"createdAfter\"];\n    }\n\n    if (requestParameters[\"itemsOnPage\"] != null) {\n      queryParameters[\"itemsOnPage\"] = requestParameters[\"itemsOnPage\"];\n    }\n\n    if (requestParameters[\"pageNo\"] != null) {\n      queryParameters[\"pageNo\"] = requestParameters[\"pageNo\"];\n    }\n\n    const headerParameters: runtime.HTTPHeaders = {};\n\n    if (this.configuration && this.configuration.apiKey) {\n      headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\n        \"x-api-key\"\n      ); // secured authentication\n    }\n\n    const response = await this.request(\n      {\n        path: `/syncs`,\n        method: \"GET\",\n        headers: headerParameters,\n        query: queryParameters,\n      },\n      initOverrides\n    );\n\n    return new runtime.JSONApiResponse(response, (jsonValue) =>\n      jsonValue.map(PublishInfoFromJSON)\n    );\n  }\n\n  /**\n   * Retrieves a collection of publish info for given tenant.\n   */\n  async getPublishInfos(\n    requestParameters: SyncsApiGetPublishInfosRequest = {},\n    initOverrides?: RequestInit | runtime.InitOverrideFunction\n  ): Promise<Array<PublishInfo>> {\n    const response = await this.getPublishInfosRaw(\n      requestParameters,\n      initOverrides\n    );\n    return await response.value();\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","names":[]}