/* tslint:disable */ /* eslint-disable */ /** * Geins Management API * Geins Management API is a RESTful api that powers your applications and helps you manage your Geins services. Geins provides an easy-to-use and scalable solution for managing all aspects of an online store, from product listings and customer information to order processing and payment transactions. :::tip Tip With this API, you can build custom applications and integrate with third-party systems, feeds, dashboards and other bussiness logic apps. ::: ## Getting started Once you have created an account, you can start using the Management API by creating an `API User`. You can create as many API users as you need. Each `API user` is connected to a specific account so you can keep track of operations and manage keys. You can find all your API credentials in `Geins Merchant Center`. ### Fast track Use one of our [SDKs](https://docs.geins.io/docs/sdk/introduction) to get started quickly. The SDKs are available for the most popular programming languages and frameworks. Or, if you prefer to just take it for a test run: [![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/25895885-aaf6598f-1a7c-4949-85d7-ba846c42d553?action=collection%2Ffork&collection-url=entityId%3D25895885-aaf6598f-1a7c-4949-85d7-ba846c42d553%26entityType%3Dcollection%26workspaceId%3Da2a179ce-158e-46b0-8d06-e9640f45112c) ### Authentication Two authentication methods are required: - `Basic Auth` - `API Key` All API credentials can be found in `Geins Merchant Center`. #### Basic Auth A Basic auth `Authorization` header needs to be included in every request. The value should be `Basic ` where `` is the Base64 encoding of your `API username` and `API password` joined by a single colon `:`. See [Wikipedia](https://en.wikipedia.org/wiki/Basic_access_authentication) for more information on Basic auth. #### API Key An `X-ApiKey` header needs to be included in every request. This header should contain the value of your `API key`. #### Example ```bash curl -X GET \"https://mgmtapi.geins.io/API/Market/List\" \\ -H \"Authorization: Basic [USER-CREDENTIALS-BASE64-ENCODED]\" \\ -H \"X-ApiKey: [API-KEY]\" ``` * * The version of the OpenAPI document: v1.10.1 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { exists, mapValues } from '../runtime'; import type { CategoryModelsReadCategory } from './CategoryModelsReadCategory'; import { CategoryModelsReadCategoryFromJSON, CategoryModelsReadCategoryFromJSONTyped, CategoryModelsReadCategoryToJSON, } from './CategoryModelsReadCategory'; import type { MarketModelsMarket } from './MarketModelsMarket'; import { MarketModelsMarketFromJSON, MarketModelsMarketFromJSONTyped, MarketModelsMarketToJSON, } from './MarketModelsMarket'; import type { PriceListModelsReadPriceListPrice } from './PriceListModelsReadPriceListPrice'; import { PriceListModelsReadPriceListPriceFromJSON, PriceListModelsReadPriceListPriceFromJSONTyped, PriceListModelsReadPriceListPriceToJSON, } from './PriceListModelsReadPriceListPrice'; import type { ProductModelsReadDiscountCampaign } from './ProductModelsReadDiscountCampaign'; import { ProductModelsReadDiscountCampaignFromJSON, ProductModelsReadDiscountCampaignFromJSONTyped, ProductModelsReadDiscountCampaignToJSON, } from './ProductModelsReadDiscountCampaign'; import type { ProductModelsReadFeedMembership } from './ProductModelsReadFeedMembership'; import { ProductModelsReadFeedMembershipFromJSON, ProductModelsReadFeedMembershipFromJSONTyped, ProductModelsReadFeedMembershipToJSON, } from './ProductModelsReadFeedMembership'; import type { ProductModelsReadImage } from './ProductModelsReadImage'; import { ProductModelsReadImageFromJSON, ProductModelsReadImageFromJSONTyped, ProductModelsReadImageToJSON, } from './ProductModelsReadImage'; import type { ProductModelsReadProductItem } from './ProductModelsReadProductItem'; import { ProductModelsReadProductItemFromJSON, ProductModelsReadProductItemFromJSONTyped, ProductModelsReadProductItemToJSON, } from './ProductModelsReadProductItem'; import type { ProductModelsReadProductUrl } from './ProductModelsReadProductUrl'; import { ProductModelsReadProductUrlFromJSON, ProductModelsReadProductUrlFromJSONTyped, ProductModelsReadProductUrlToJSON, } from './ProductModelsReadProductUrl'; import type { ProductModelsReadRelatedProduct } from './ProductModelsReadRelatedProduct'; import { ProductModelsReadRelatedProductFromJSON, ProductModelsReadRelatedProductFromJSONTyped, ProductModelsReadRelatedProductToJSON, } from './ProductModelsReadRelatedProduct'; import type { ProductParameterModelsReadProductParameterValue } from './ProductParameterModelsReadProductParameterValue'; import { ProductParameterModelsReadProductParameterValueFromJSON, ProductParameterModelsReadProductParameterValueFromJSONTyped, ProductParameterModelsReadProductParameterValueToJSON, } from './ProductParameterModelsReadProductParameterValue'; import type { SharedModelsLocalizableContent } from './SharedModelsLocalizableContent'; import { SharedModelsLocalizableContentFromJSON, SharedModelsLocalizableContentFromJSONTyped, SharedModelsLocalizableContentToJSON, } from './SharedModelsLocalizableContent'; import type { VariantModelsReadVariant } from './VariantModelsReadVariant'; import { VariantModelsReadVariantFromJSON, VariantModelsReadVariantFromJSONTyped, VariantModelsReadVariantToJSON, } from './VariantModelsReadVariant'; /** * A product. * @export * @interface ProductModelsReadProduct */ export interface ProductModelsReadProduct { /** * The unique identifier for the product. * @type {number} * @memberof ProductModelsReadProduct */ productId?: number; /** * The article number of the product. * @type {string} * @memberof ProductModelsReadProduct */ articleNumber?: string; /** * The localized names of the product. * @type {Array} * @memberof ProductModelsReadProduct */ names?: Array; /** * The date the product was created. * @type {Date} * @memberof ProductModelsReadProduct */ dateCreated?: Date; /** * The date the product was last updated. * @type {Date} * @memberof ProductModelsReadProduct */ dateUpdated?: Date; /** * The date the product was first available. * @type {Date} * @memberof ProductModelsReadProduct */ dateFirstAvailable?: Date; /** * The current state of the product. * @type {boolean} * @memberof ProductModelsReadProduct */ active?: boolean; /** * The purchase price in the currency defined in PurchasePriceCurrency. * @type {number} * @memberof ProductModelsReadProduct */ purchasePrice?: number; /** * The 3-letter ISO 4217 currency code for the amount given in PurchasePrice. * @type {string} * @memberof ProductModelsReadProduct */ purchasePriceCurrency?: string; /** * Localized short texts for the product. * @type {Array} * @memberof ProductModelsReadProduct */ shortTexts?: Array; /** * Localized long texts for the product. * @type {Array} * @memberof ProductModelsReadProduct */ longTexts?: Array; /** * Localized tech texts for the product. * @type {Array} * @memberof ProductModelsReadProduct */ techTexts?: Array; /** * The items belonging to the product. * @type {Array} * @memberof ProductModelsReadProduct */ items?: Array; /** * The current prices of the product. * @type {Array} * @memberof ProductModelsReadProduct */ prices?: Array; /** * The categories the product belongs to. * @type {Array} * @memberof ProductModelsReadProduct */ categories?: Array; /** * The images for the product * @type {Array} * @memberof ProductModelsReadProduct */ images?: Array; /** * The brand id of the product. * @type {number} * @memberof ProductModelsReadProduct */ brandId?: number; /** * The brand name of the product. * @type {string} * @memberof ProductModelsReadProduct */ brandName?: string; /** * The supplier id of the product. * @type {number} * @memberof ProductModelsReadProduct */ supplierId?: number; /** * The supplier name of the product. * @type {string} * @memberof ProductModelsReadProduct */ supplierName?: string; /** * The parameter values associated with the product. * @type {Array} * @memberof ProductModelsReadProduct */ parameterValues?: Array; /** * The variants for this product. * @type {Array} * @memberof ProductModelsReadProduct */ variants?: Array; /** * The markets for this product * @type {Array} * @memberof ProductModelsReadProduct */ markets?: Array; /** * The vat percent for this product. Eg) 0.25 meaning 25% VAT. * @type {number} * @memberof ProductModelsReadProduct */ vat?: number; /** * The filename of this products primary image. * @type {string} * @memberof ProductModelsReadProduct */ primaryImage?: string; /** * Id of freight class. * @type {number} * @memberof ProductModelsReadProduct */ freightClassId?: number; /** * Intrastat code of the product. * @type {string} * @memberof ProductModelsReadProduct */ intrastatCode?: string; /** * Country of orgin of product. * @type {string} * @memberof ProductModelsReadProduct */ countryOfOrigin?: string; /** * Id of Variant Group to which the product is associated. * @type {number} * @memberof ProductModelsReadProduct */ variantGroupId?: number; /** * Id of VAT. * @type {number} * @memberof ProductModelsReadProduct */ vatId?: number; /** * External Id of the product. * @type {string} * @memberof ProductModelsReadProduct */ externalId?: string; /** * Activation date for the product. * @type {Date} * @memberof ProductModelsReadProduct */ activationDate?: Date; /** * The feeds the product is a member of. * @type {Array} * @memberof ProductModelsReadProduct */ feeds?: Array; /** * All canonical urls for the product. * @type {Array} * @memberof ProductModelsReadProduct */ urls?: Array; /** * The main category id for the product. * @type {number} * @memberof ProductModelsReadProduct */ mainCategoryId?: number; /** * The related products for the product. * @type {Array} * @memberof ProductModelsReadProduct */ relatedProducts?: Array; /** * The discount campaigns for the product. * @type {Array} * @memberof ProductModelsReadProduct */ discountCampaigns?: Array; } /** * Check if a given object implements the ProductModelsReadProduct interface. */ export function instanceOfProductModelsReadProduct(value: object): boolean { let isInstance = true; return isInstance; } export function ProductModelsReadProductFromJSON(json: any): ProductModelsReadProduct { return ProductModelsReadProductFromJSONTyped(json, false); } export function ProductModelsReadProductFromJSONTyped(json: any, ignoreDiscriminator: boolean): ProductModelsReadProduct { if ((json === undefined) || (json === null)) { return json; } return { 'productId': !exists(json, 'ProductId') ? undefined : json['ProductId'], 'articleNumber': !exists(json, 'ArticleNumber') ? undefined : json['ArticleNumber'], 'names': !exists(json, 'Names') ? undefined : ((json['Names'] as Array).map(SharedModelsLocalizableContentFromJSON)), 'dateCreated': !exists(json, 'DateCreated') ? undefined : (new Date(json['DateCreated'])), 'dateUpdated': !exists(json, 'DateUpdated') ? undefined : (new Date(json['DateUpdated'])), 'dateFirstAvailable': !exists(json, 'DateFirstAvailable') ? undefined : (new Date(json['DateFirstAvailable'])), 'active': !exists(json, 'Active') ? undefined : json['Active'], 'purchasePrice': !exists(json, 'PurchasePrice') ? undefined : json['PurchasePrice'], 'purchasePriceCurrency': !exists(json, 'PurchasePriceCurrency') ? undefined : json['PurchasePriceCurrency'], 'shortTexts': !exists(json, 'ShortTexts') ? undefined : ((json['ShortTexts'] as Array).map(SharedModelsLocalizableContentFromJSON)), 'longTexts': !exists(json, 'LongTexts') ? undefined : ((json['LongTexts'] as Array).map(SharedModelsLocalizableContentFromJSON)), 'techTexts': !exists(json, 'TechTexts') ? undefined : ((json['TechTexts'] as Array).map(SharedModelsLocalizableContentFromJSON)), 'items': !exists(json, 'Items') ? undefined : ((json['Items'] as Array).map(ProductModelsReadProductItemFromJSON)), 'prices': !exists(json, 'Prices') ? undefined : ((json['Prices'] as Array).map(PriceListModelsReadPriceListPriceFromJSON)), 'categories': !exists(json, 'Categories') ? undefined : ((json['Categories'] as Array).map(CategoryModelsReadCategoryFromJSON)), 'images': !exists(json, 'Images') ? undefined : ((json['Images'] as Array).map(ProductModelsReadImageFromJSON)), 'brandId': !exists(json, 'BrandId') ? undefined : json['BrandId'], 'brandName': !exists(json, 'BrandName') ? undefined : json['BrandName'], 'supplierId': !exists(json, 'SupplierId') ? undefined : json['SupplierId'], 'supplierName': !exists(json, 'SupplierName') ? undefined : json['SupplierName'], 'parameterValues': !exists(json, 'ParameterValues') ? undefined : ((json['ParameterValues'] as Array).map(ProductParameterModelsReadProductParameterValueFromJSON)), 'variants': !exists(json, 'Variants') ? undefined : ((json['Variants'] as Array).map(VariantModelsReadVariantFromJSON)), 'markets': !exists(json, 'Markets') ? undefined : ((json['Markets'] as Array).map(MarketModelsMarketFromJSON)), 'vat': !exists(json, 'Vat') ? undefined : json['Vat'], 'primaryImage': !exists(json, 'PrimaryImage') ? undefined : json['PrimaryImage'], 'freightClassId': !exists(json, 'FreightClassId') ? undefined : json['FreightClassId'], 'intrastatCode': !exists(json, 'IntrastatCode') ? undefined : json['IntrastatCode'], 'countryOfOrigin': !exists(json, 'CountryOfOrigin') ? undefined : json['CountryOfOrigin'], 'variantGroupId': !exists(json, 'VariantGroupId') ? undefined : json['VariantGroupId'], 'vatId': !exists(json, 'VatId') ? undefined : json['VatId'], 'externalId': !exists(json, 'ExternalId') ? undefined : json['ExternalId'], 'activationDate': !exists(json, 'ActivationDate') ? undefined : (new Date(json['ActivationDate'])), 'feeds': !exists(json, 'Feeds') ? undefined : ((json['Feeds'] as Array).map(ProductModelsReadFeedMembershipFromJSON)), 'urls': !exists(json, 'Urls') ? undefined : ((json['Urls'] as Array).map(ProductModelsReadProductUrlFromJSON)), 'mainCategoryId': !exists(json, 'MainCategoryId') ? undefined : json['MainCategoryId'], 'relatedProducts': !exists(json, 'RelatedProducts') ? undefined : ((json['RelatedProducts'] as Array).map(ProductModelsReadRelatedProductFromJSON)), 'discountCampaigns': !exists(json, 'DiscountCampaigns') ? undefined : ((json['DiscountCampaigns'] as Array).map(ProductModelsReadDiscountCampaignFromJSON)), }; } export function ProductModelsReadProductToJSON(value?: ProductModelsReadProduct | null): any { if (value === undefined) { return undefined; } if (value === null) { return null; } return { 'ProductId': value.productId, 'ArticleNumber': value.articleNumber, 'Names': value.names === undefined ? undefined : ((value.names as Array).map(SharedModelsLocalizableContentToJSON)), 'DateCreated': value.dateCreated === undefined ? undefined : (value.dateCreated.toISOString()), 'DateUpdated': value.dateUpdated === undefined ? undefined : (value.dateUpdated.toISOString()), 'DateFirstAvailable': value.dateFirstAvailable === undefined ? undefined : (value.dateFirstAvailable.toISOString()), 'Active': value.active, 'PurchasePrice': value.purchasePrice, 'PurchasePriceCurrency': value.purchasePriceCurrency, 'ShortTexts': value.shortTexts === undefined ? undefined : ((value.shortTexts as Array).map(SharedModelsLocalizableContentToJSON)), 'LongTexts': value.longTexts === undefined ? undefined : ((value.longTexts as Array).map(SharedModelsLocalizableContentToJSON)), 'TechTexts': value.techTexts === undefined ? undefined : ((value.techTexts as Array).map(SharedModelsLocalizableContentToJSON)), 'Items': value.items === undefined ? undefined : ((value.items as Array).map(ProductModelsReadProductItemToJSON)), 'Prices': value.prices === undefined ? undefined : ((value.prices as Array).map(PriceListModelsReadPriceListPriceToJSON)), 'Categories': value.categories === undefined ? undefined : ((value.categories as Array).map(CategoryModelsReadCategoryToJSON)), 'Images': value.images === undefined ? undefined : ((value.images as Array).map(ProductModelsReadImageToJSON)), 'BrandId': value.brandId, 'BrandName': value.brandName, 'SupplierId': value.supplierId, 'SupplierName': value.supplierName, 'ParameterValues': value.parameterValues === undefined ? undefined : ((value.parameterValues as Array).map(ProductParameterModelsReadProductParameterValueToJSON)), 'Variants': value.variants === undefined ? undefined : ((value.variants as Array).map(VariantModelsReadVariantToJSON)), 'Markets': value.markets === undefined ? undefined : ((value.markets as Array).map(MarketModelsMarketToJSON)), 'Vat': value.vat, 'PrimaryImage': value.primaryImage, 'FreightClassId': value.freightClassId, 'IntrastatCode': value.intrastatCode, 'CountryOfOrigin': value.countryOfOrigin, 'VariantGroupId': value.variantGroupId, 'VatId': value.vatId, 'ExternalId': value.externalId, 'ActivationDate': value.activationDate === undefined ? undefined : (value.activationDate.toISOString()), 'Feeds': value.feeds === undefined ? undefined : ((value.feeds as Array).map(ProductModelsReadFeedMembershipToJSON)), 'Urls': value.urls === undefined ? undefined : ((value.urls as Array).map(ProductModelsReadProductUrlToJSON)), 'MainCategoryId': value.mainCategoryId, 'RelatedProducts': value.relatedProducts === undefined ? undefined : ((value.relatedProducts as Array).map(ProductModelsReadRelatedProductToJSON)), 'DiscountCampaigns': value.discountCampaigns === undefined ? undefined : ((value.discountCampaigns as Array).map(ProductModelsReadDiscountCampaignToJSON)), }; }