@commercelayer/sdk 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/lib/api.d.ts +6 -3
  2. package/lib/commercelayer.d.ts +3 -0
  3. package/lib/index.d.ts +1 -1
  4. package/lib/interceptor.d.ts +2 -1
  5. package/lib/model.d.ts +4 -1
  6. package/lib/resources/addresses.d.ts +2 -1
  7. package/lib/resources/adjustments.d.ts +2 -1
  8. package/lib/resources/adyen_gateways.d.ts +2 -1
  9. package/lib/resources/adyen_payments.d.ts +2 -1
  10. package/lib/resources/application.d.ts +2 -1
  11. package/lib/resources/attachments.d.ts +2 -1
  12. package/lib/resources/authorizations.d.ts +2 -1
  13. package/lib/resources/avalara_accounts.d.ts +2 -1
  14. package/lib/resources/billing_info_validation_rules.d.ts +2 -1
  15. package/lib/resources/bing_geocoders.d.ts +2 -1
  16. package/lib/resources/braintree_gateways.d.ts +2 -1
  17. package/lib/resources/braintree_payments.d.ts +2 -1
  18. package/lib/resources/bundles.d.ts +2 -1
  19. package/lib/resources/captures.d.ts +2 -1
  20. package/lib/resources/carrier_accounts.d.ts +2 -1
  21. package/lib/resources/checkout_com_gateways.d.ts +2 -1
  22. package/lib/resources/checkout_com_payments.d.ts +2 -1
  23. package/lib/resources/coupon_codes_promotion_rules.d.ts +13 -4
  24. package/lib/resources/coupon_recipients.d.ts +46 -0
  25. package/lib/resources/coupons.d.ts +5 -1
  26. package/lib/resources/customer_addresses.d.ts +2 -1
  27. package/lib/resources/customer_groups.d.ts +2 -1
  28. package/lib/resources/customer_password_resets.d.ts +2 -1
  29. package/lib/resources/customer_payment_sources.d.ts +2 -1
  30. package/lib/resources/customer_subscriptions.d.ts +2 -1
  31. package/lib/resources/customers.d.ts +2 -1
  32. package/lib/resources/delivery_lead_times.d.ts +2 -1
  33. package/lib/resources/event_callbacks.d.ts +4 -2
  34. package/lib/resources/external_gateways.d.ts +2 -1
  35. package/lib/resources/external_payments.d.ts +2 -1
  36. package/lib/resources/external_promotions.d.ts +2 -1
  37. package/lib/resources/external_tax_calculators.d.ts +2 -1
  38. package/lib/resources/fixed_amount_promotions.d.ts +2 -1
  39. package/lib/resources/fixed_price_promotions.d.ts +93 -0
  40. package/lib/resources/free_gift_promotions.d.ts +91 -0
  41. package/lib/resources/free_shipping_promotions.d.ts +2 -1
  42. package/lib/resources/geocoders.d.ts +2 -1
  43. package/lib/resources/gift_card_recipients.d.ts +2 -1
  44. package/lib/resources/gift_cards.d.ts +2 -1
  45. package/lib/resources/google_geocoders.d.ts +2 -1
  46. package/lib/resources/imports.d.ts +2 -1
  47. package/lib/resources/in_stock_subscriptions.d.ts +2 -1
  48. package/lib/resources/inventory_models.d.ts +2 -1
  49. package/lib/resources/inventory_return_locations.d.ts +2 -1
  50. package/lib/resources/inventory_stock_locations.d.ts +2 -1
  51. package/lib/resources/line_item_options.d.ts +2 -1
  52. package/lib/resources/line_items.d.ts +2 -1
  53. package/lib/resources/manual_gateways.d.ts +2 -1
  54. package/lib/resources/manual_tax_calculators.d.ts +2 -1
  55. package/lib/resources/markets.d.ts +2 -1
  56. package/lib/resources/merchants.d.ts +2 -1
  57. package/lib/resources/order_amount_promotion_rules.d.ts +13 -4
  58. package/lib/resources/order_copies.d.ts +2 -1
  59. package/lib/resources/order_subscriptions.d.ts +2 -1
  60. package/lib/resources/order_validation_rules.d.ts +2 -1
  61. package/lib/resources/orders.d.ts +2 -1
  62. package/lib/resources/organization.d.ts +2 -1
  63. package/lib/resources/packages.d.ts +2 -1
  64. package/lib/resources/parcel_line_items.d.ts +2 -1
  65. package/lib/resources/parcels.d.ts +2 -1
  66. package/lib/resources/payment_gateways.d.ts +2 -1
  67. package/lib/resources/payment_methods.d.ts +2 -1
  68. package/lib/resources/paypal_gateways.d.ts +2 -1
  69. package/lib/resources/paypal_payments.d.ts +2 -1
  70. package/lib/resources/percentage_discount_promotions.d.ts +2 -1
  71. package/lib/resources/price_lists.d.ts +2 -1
  72. package/lib/resources/prices.d.ts +2 -1
  73. package/lib/resources/promotion_rules.d.ts +5 -2
  74. package/lib/resources/promotions.d.ts +2 -1
  75. package/lib/resources/refunds.d.ts +2 -1
  76. package/lib/resources/return_line_items.d.ts +2 -1
  77. package/lib/resources/returns.d.ts +2 -1
  78. package/lib/resources/shipments.d.ts +2 -1
  79. package/lib/resources/shipping_categories.d.ts +2 -1
  80. package/lib/resources/shipping_methods.d.ts +2 -1
  81. package/lib/resources/shipping_zones.d.ts +2 -1
  82. package/lib/resources/sku_list_items.d.ts +2 -1
  83. package/lib/resources/sku_list_promotion_rules.d.ts +16 -4
  84. package/lib/resources/sku_lists.d.ts +2 -1
  85. package/lib/resources/sku_options.d.ts +2 -1
  86. package/lib/resources/skus.d.ts +2 -1
  87. package/lib/resources/stock_items.d.ts +2 -1
  88. package/lib/resources/stock_line_items.d.ts +2 -1
  89. package/lib/resources/stock_locations.d.ts +2 -1
  90. package/lib/resources/stock_transfers.d.ts +2 -1
  91. package/lib/resources/stripe_gateways.d.ts +2 -1
  92. package/lib/resources/stripe_payments.d.ts +2 -1
  93. package/lib/resources/tax_calculators.d.ts +2 -1
  94. package/lib/resources/tax_categories.d.ts +2 -1
  95. package/lib/resources/tax_rules.d.ts +2 -1
  96. package/lib/resources/taxjar_accounts.d.ts +2 -1
  97. package/lib/resources/transactions.d.ts +2 -1
  98. package/lib/resources/voids.d.ts +2 -1
  99. package/lib/resources/webhooks.d.ts +3 -2
  100. package/lib/resources/wire_transfers.d.ts +2 -1
  101. package/lib/sdk.cjs.development.js +1007 -82
  102. package/lib/sdk.cjs.development.js.map +1 -1
  103. package/lib/sdk.cjs.production.min.js +1 -1
  104. package/lib/sdk.cjs.production.min.js.map +1 -1
  105. package/lib/sdk.esm.js +1007 -82
  106. package/lib/sdk.esm.js.map +1 -1
  107. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.cjs.production.min.js","sources":["../src/error.ts","../node_modules/regenerator-runtime/runtime.js","../src/client.ts","../src/common.ts","../src/jsonapi.ts","../src/query.ts","../src/resource.ts","../src/config.ts","../src/resources/addresses.ts","../src/resources/adjustments.ts","../src/resources/adyen_gateways.ts","../src/resources/adyen_payments.ts","../src/resources/application.ts","../src/resources/attachments.ts","../src/resources/authorizations.ts","../src/resources/avalara_accounts.ts","../src/resources/billing_info_validation_rules.ts","../src/resources/bing_geocoders.ts","../src/resources/braintree_gateways.ts","../src/resources/braintree_payments.ts","../src/resources/bundles.ts","../src/resources/captures.ts","../src/resources/carrier_accounts.ts","../src/resources/checkout_com_gateways.ts","../src/resources/checkout_com_payments.ts","../src/resources/coupon_codes_promotion_rules.ts","../src/resources/coupons.ts","../src/resources/customer_addresses.ts","../src/resources/customer_groups.ts","../src/resources/customer_password_resets.ts","../src/resources/customer_payment_sources.ts","../src/resources/customer_subscriptions.ts","../src/resources/customers.ts","../src/resources/delivery_lead_times.ts","../src/resources/event_callbacks.ts","../src/resources/external_gateways.ts","../src/resources/external_payments.ts","../src/resources/external_promotions.ts","../src/resources/external_tax_calculators.ts","../src/resources/fixed_amount_promotions.ts","../src/resources/free_shipping_promotions.ts","../src/resources/geocoders.ts","../src/resources/gift_card_recipients.ts","../src/resources/gift_cards.ts","../src/resources/google_geocoders.ts","../src/resources/imports.ts","../src/resources/in_stock_subscriptions.ts","../src/resources/inventory_models.ts","../src/resources/inventory_return_locations.ts","../src/resources/inventory_stock_locations.ts","../src/resources/line_item_options.ts","../src/resources/line_items.ts","../src/resources/manual_gateways.ts","../src/resources/manual_tax_calculators.ts","../src/resources/markets.ts","../src/resources/merchants.ts","../src/resources/order_amount_promotion_rules.ts","../src/resources/order_copies.ts","../src/resources/order_subscriptions.ts","../src/resources/order_validation_rules.ts","../src/resources/orders.ts","../src/resources/organization.ts","../src/resources/packages.ts","../src/resources/parcel_line_items.ts","../src/resources/parcels.ts","../src/resources/payment_gateways.ts","../src/resources/payment_methods.ts","../src/resources/paypal_gateways.ts","../src/resources/paypal_payments.ts","../src/resources/percentage_discount_promotions.ts","../src/resources/price_lists.ts","../src/resources/prices.ts","../src/resources/promotion_rules.ts","../src/resources/promotions.ts","../src/resources/refunds.ts","../src/resources/return_line_items.ts","../src/resources/returns.ts","../src/resources/shipments.ts","../src/resources/shipping_categories.ts","../src/resources/shipping_methods.ts","../src/resources/shipping_zones.ts","../src/resources/sku_list_items.ts","../src/resources/sku_list_promotion_rules.ts","../src/resources/sku_lists.ts","../src/resources/sku_options.ts","../src/resources/skus.ts","../src/resources/stock_items.ts","../src/resources/stock_line_items.ts","../src/resources/stock_locations.ts","../src/resources/stock_transfers.ts","../src/resources/stripe_gateways.ts","../src/resources/stripe_payments.ts","../src/resources/tax_calculators.ts","../src/resources/tax_categories.ts","../src/resources/tax_rules.ts","../src/resources/taxjar_accounts.ts","../src/resources/transactions.ts","../src/resources/voids.ts","../src/resources/webhooks.ts","../src/resources/wire_transfers.ts","../src/api.ts","../src/static.ts","../src/commercelayer.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nenum ErrorType {\n\tCLIENT = 'client',\n\tREQUEST = 'request',\n\tRESPONSE = 'response',\n\tGENERIC = 'generic'\n}\n\nclass ApiError extends Error {\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tstatic isApiError(error: any): error is ApiError {\n\t\treturn error && (error.name === 'ApiError') && (error.type === ErrorType.RESPONSE)\n\t}\n\n\ttype: string\n\terrors: any[] = []\n\tstatus?: number\n\tcode?: string\n\n\tconstructor(error: { message: string, type?: ErrorType }) {\n\t\tsuper(error.message)\n\t\tthis.name = this.constructor.name\n\t\tthis.type = error.type || ErrorType.GENERIC\n\t}\n\n\tfirst(): any {\n\t\treturn (this.errors.length > 0) ? this.errors[0] : undefined\n\t}\n\n}\n\n\nexport default ApiError\n\nexport { ErrorType }\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport axios, { AxiosInstance, Method } from 'axios'\nimport { DocWithData as JSONApiDocument, ResourceObject as JSONApiResource } from 'jsonapi-typescript'\nimport ApiError, { ErrorType } from './error'\nimport type { InterceptorManager } from './interceptor'\n\n\nconst baseURL = (organization: string, domain?: string): string => {\n\treturn `https://${organization.toLowerCase()}.${domain ? domain : 'commercelayer.io'}/api`\n}\n\n\nconst handleError = (error: Error) => {\n\n\tconst apiError = new ApiError({ message: error.message, type: ErrorType.GENERIC })\n\n\tif (axios.isAxiosError(error)) {\n\t\tif (error.response) {\n\t\t\t// The request was made and the server responded with a status code that falls out of the range of 2xx\n\t\t\tapiError.type = ErrorType.RESPONSE\n\t\t\tapiError.status = error.response.status\n\t\t\tapiError.code = String(apiError.status)\n\t\t\tapiError.errors = error.response.data.errors\n\t\t} else if (error.request) {\n\t\t\t// The request was made but no response was received\n\t\t\t// `error.request` is an instance of XMLHttpRequest in the browser and an instance of http.ClientRequest in node.js\n\t\t\tapiError.type = ErrorType.REQUEST\n\t\t} else {\n\t\t\t// Something happened in setting up the request that triggered an Error\n\t\t\tapiError.type = ErrorType.CLIENT\n\t\t}\n\t}\n\n\tthrow apiError\n\n}\n\n\n// Subset of AxiosRequestConfig\ntype RequestConfig = {\n\ttimeout?: number\n\tparams?: { [key: string]: string | number | boolean }\n\t// httpAgent\n\t// httpsAgent\n\t// proxy\n}\n\ntype ApiClientInitConfig = { organization: string, domain?: string, accessToken: string } & RequestConfig\ntype ApiClientConfig = { organization?: string, domain?: string, accessToken?: string } & RequestConfig\n\n\nclass ApiClient {\n\n\tstatic create(options: ApiClientInitConfig): ApiClient {\n\t\tif (!options?.organization) throw new Error(\"Undefined 'organization' parameter\")\n\t\tif (!options?.accessToken) throw new Error(\"Undefined 'accessToken' parameter\")\n\t\treturn new ApiClient(options)\n\t}\n\n\tbaseUrl: string\n\t#accessToken: string\n\t#client: AxiosInstance\n\n\tpublic interceptors: InterceptorManager\n\n\tprivate constructor(options: ApiClientInitConfig) {\n\n\t\tthis.baseUrl = baseURL(options.organization, options.domain)\n\t\tthis.#accessToken = options.accessToken\n\n\t\tconst axiosConfig: RequestConfig = {\n\t\t\ttimeout: options.timeout || 3000\n\t\t}\n\n\t\tthis.#client = axios.create({\n\t\t\tbaseURL: this.baseUrl,\n\t\t\ttimeout: 3000,\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/vnd.api+json',\n\t\t\t\t'Content-Type': 'application/vnd.api+json',\n\t\t\t\t'Authorization': 'Bearer ' + this.#accessToken,\n\t\t\t},\n\t\t\t...axiosConfig\n\t\t})\n\n\t\tthis.interceptors = this.#client.interceptors\n\n\t}\n\n\n\tconfig(config: ApiClientConfig): void {\n\n\t\tconst def = this.#client.defaults\n\n\t\t// Axios config\n\t\tif (config.timeout) def.timeout = config.timeout\n\n\t\t// API Client config\n\t\tif (config.organization) this.baseUrl = baseURL(config.organization, config.domain)\n\t\tif (config.accessToken) this.#accessToken = config.accessToken\n\n\t}\n\n\n\tasync request(method: Method, path: string, body?: JSONApiResource, options?: ApiClientConfig): Promise<JSONApiDocument> {\n\n\t\tconst data = body ? { data: body } : undefined\n\t\tconst url = path\n\n\t\t// Runtime request parameters\n\t\tconst baseUrl = options?.organization ? baseURL(options.organization, options.domain) : undefined\n\t\tconst headers = options?.accessToken ? { 'Authorization': 'Bearer ' + options.accessToken } : undefined\n\n\t\t// const start = Date.now()\n\n\t\treturn this.#client.request({ method, baseURL: baseUrl, url, data, headers, ...options })\n\t\t\t.then(response => response.data)\n\t\t\t.catch(error => handleError(error))\n\t\t// .finally(() => console.log(`<<-- ${method} ${path} ${Date.now() - start}`))\n\n\t}\n\n}\n\n\n\nexport default ApiClient\n\nexport { ApiClientInitConfig, ApiClientConfig, RequestConfig }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport type { ResourceId, ResourceType } from './resource'\n\nconst isResourceId = (resource: any): resource is ResourceId => {\n\treturn (resource && resource.type && resource.id)\n}\n\nconst isResourceType = (resource: any): resource is ResourceType => {\n\treturn resource && (typeof resource.type !== 'undefined') && resource.type\n}\n\n\nexport { isResourceId, isResourceType }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Value } from 'json-typescript'\nimport { DocWithData, Included, ResourceIdentifierObject, ResourceObject, AttributesObject, RelationshipsObject } from 'jsonapi-typescript'\nimport type { ResourceCreate, ResourceUpdate, ResourceId, ResourceType, Resource } from './resource'\nimport { isResourceId } from './common'\n\nexport type { DocWithData, Value as JSONValue }\n\n\n\n// DENORMALIZATION\n\nconst denormalize = <R extends Resource>(response: DocWithData): R | R[] => {\n\n\tlet denormalizedResponse\n\n\tif (response.links) delete response.links\n\n\tconst data = response.data\n\tconst included = response.included\n\n\tif (Array.isArray(data)) denormalizedResponse = data.map(res => denormalizeResource(res, included))\n\telse denormalizedResponse = denormalizeResource(data, included)\n\n\treturn denormalizedResponse\n\n}\n\n\nconst findIncluded = (rel: ResourceIdentifierObject, included: Included = []): ResourceObject | undefined => {\n\treturn included.find(inc => {\n\t\treturn (rel.id === inc.id) && (rel.type === inc.type)\n\t})\n}\n\n\nconst denormalizeResource = (res: any, included?: Included): any => {\n\n\tconst resource = {\n\t\tid: res.id,\n\t\ttype: res.type,\n\t\t...res.attributes,\n\t}\n\n\tif (res.relationships) Object.keys(res.relationships).forEach(key => {\n\t\tconst rel = res.relationships[key].data\n\t\tif (rel) {\n\t\t\tif (Array.isArray(rel)) resource[key] = rel.map(r => denormalizeResource(findIncluded(r, included), included))\n\t\t\telse resource[key] = denormalizeResource(findIncluded(rel, included), included)\n\t\t} else if (rel === null) resource[key] = null\n\t})\n\t\n\n\treturn resource\n\n}\n\n\n// NORMALIZATION\n\nconst normalize = (resource: (ResourceCreate & ResourceType) | (ResourceUpdate & ResourceId)): ResourceObject => {\n\n\tconst attributes: AttributesObject = {}\n\tconst relationships: RelationshipsObject = {}\n\n\tfor (const field in resource) {\n\t\tif (['type', 'id'].includes(field)) continue\n\t\tconst value = resource[field as keyof (ResourceCreate | ResourceUpdate)]\n\t\tif (value && (isResourceId(value) || (Array.isArray(value) && isResourceId(value[0])))) {\n\t\t\trelationships[field] = { data: value as ResourceIdentifierObject }\n\t\t}\n\t\telse attributes[field] = value as Value\n\t}\n\n\tconst normalized: ResourceObject = {\n\t\ttype: resource.type,\n\t\tattributes,\n\t\trelationships\n\t}\n\n\tif (isResourceId(resource)) normalized.id = resource.id\n\n\n\treturn normalized\n\n}\n\n\n\nexport { denormalize, normalize }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\ninterface QueryParamsRetrieve {\n\tinclude?: string[]\n\tfields?: { [key: string]: string[] }\n\t// fields?: string[] | { [key: string]: string[] }\n}\n\n\ninterface QueryParamsList extends QueryParamsRetrieve {\n\tsort?: string[] | { [key: string]: 'asc' | 'desc' }\n\tfilters?: { [key: string]: string | number | boolean }\n\tpageNumber?: number\n\tpageSize?: number\n}\n\ntype QueryParams = QueryParamsRetrieve | QueryParamsList\n\nexport { QueryParamsRetrieve, QueryParamsList }\n\n\n\ntype FilterPredicate =\n\t'blank' |\n\t'cont' |\n\t'cont_all' |\n\t'cont_any' |\n\t'does_not_match' |\n\t'does_not_match_all' |\n\t'does_not_match_any' |\n\t'end' |\n\t'end_all' |\n\t'end_any' |\n\t'eq' |\n\t'false' |\n\t'gt' |\n\t'gt_all' |\n\t'gt_any' |\n\t'gteq' |\n\t'gteq_all' |\n\t'gteq_any' |\n\t'in' |\n\t'lt' |\n\t'lt_all' |\n\t'lt_any' |\n\t'lteq' |\n\t'lteq_all' |\n\t'lteq_any' |\n\t'matches' |\n\t'matches_all' |\n\t'matches_any' |\n\t'not_cont' |\n\t'not_cont_all' |\n\t'not_end' |\n\t'not_end_all' |\n\t'not_end_any' |\n\t'not_eq' |\n\t'not_eq_all' |\n\t'not_in' |\n\t'not_null' |\n\t'not_start' |\n\t'not_start_all' |\n\t'not_start_any' |\n\t'null' |\n\t'present' |\n\t'start' |\n\t'start_all' |\n\t'start_any' |\n\t'true'\n\n\n\n\nconst isParamsList = (params: any): params is QueryParamsList => {\n\treturn (params.filters || params.pageNumber || params.pageSize || params.sort)\n}\n\n\nclass QueryBuilderRetrieve {\n\n\t#resource: string\n\n\t#include?: string[]\n\t#fields?: { [key: string]: string[] }\n\n\n\tconstructor(resource?: string) {\n\t\tthis.#resource = resource || ''\n\t}\n\n\n\tinclude(...resources: string[]): QueryBuilderRetrieve {\n\t\tif (!this.#include) this.#include = []\n\t\tthis.#include.push(...resources)\n\t\treturn this\n\t}\n\n\tfield(field: string, resource?: string): QueryBuilderRetrieve {\n\t\tif (!this.#fields) this.#fields = {}\n\t\tif (!resource) resource = this.#resource\n\t\tif (!this.#fields[resource]) this.#fields[resource] = []\n\t\tthis.#fields[resource].push(field)\n\t\treturn this\n\t}\n\n\tfields(fields: string[], resource?: string): QueryBuilderRetrieve {\n\t\tfields.forEach(f => {\n\t\t\tthis.field(f, resource)\n\t\t})\n\t\treturn this\n\t}\n\n\n\tclear(): QueryBuilderRetrieve {\n\t\tthis.#include = undefined\n\t\tthis.#fields = undefined\n\t\treturn this\n\t}\n\n\n\tbuild(): QueryParams {\n\t\treturn {\n\t\t\tinclude: this.#include,\n\t\t\tfields: this.#fields,\n\t\t}\n\t}\n\n\n\tgenerate(): { [key: string]: string } {\n\t\treturn generateQueryStringParams(this.build())\n\t}\n\n}\n\n\nclass QueryBuilderList extends QueryBuilderRetrieve {\n\n\t#sort?: string[]\n\t#filters?: { [key: string]: string | number | boolean }\n\t#pageNumber?: number\n\t#pageSize?: number\n\n\n\tconstructor(resource?: string) {\n\t\tsuper(resource)\n\t}\n\n\tinclude(...resources: string[]): QueryBuilderList {\n\t\treturn super.include(...resources) as QueryBuilderList\n\t}\n\n\tfield(field: string, resource?: string): QueryBuilderList {\n\t\treturn super.field(field, resource) as QueryBuilderList\n\t}\n\n\tfields(fields: string[], resource?: string): QueryBuilderList {\n\t\treturn super.fields(fields, resource) as QueryBuilderList\n\t}\n\n\n\tpageNumber(num: number): QueryBuilderList {\n\t\tthis.#pageNumber = num\n\t\treturn this\n\t}\n\n\tpageSize(size: number): QueryBuilderList {\n\t\tthis.#pageSize = size\n\t\treturn this\n\t}\n\n\tpage(num: number, size: number): QueryBuilderList {\n\t\tthis.#pageNumber = num\n\t\tthis.#pageSize = size\n\t\treturn this\n\t}\n\n\tsort(field: string, descending?: boolean): QueryBuilderList {\n\t\tif (!this.#sort) this.#sort = []\n\t\tthis.#sort.push(`${descending ? '-' : ''}${field}`)\n\t\treturn this\n\t}\n\n\tfilter(field: string | string[], predicate: FilterPredicate, value: string | number | boolean | string[], resource?: string): QueryBuilderList {\n\t\tif (!this.#filters) this.#filters = {}\n\t\tconst r = resource ? `${resource}_` : ''\n\t\tthis.#filters[`${Array.isArray(field) ? field.map(f => `${r}${f}`).join('_or_') : (r + field)}_${predicate}`] = Array.isArray(value) ? value.join(',') : value\n\t\treturn this\n\t}\n\n\n\tclear(): QueryBuilderList {\n\t\tsuper.clear()\n\t\tthis.#sort = undefined\n\t\tthis.#filters = undefined\n\t\tthis.#pageNumber = undefined\n\t\tthis.#pageSize = undefined\n\t\treturn this\n\t}\n\n\n\tbuild(): QueryParams {\n\t\treturn Object.assign(super.build(), {\n\t\t\tsort: this.#sort,\n\t\t\tfilters: this.#filters,\n\t\t\tpageNumber: this.#pageNumber,\n\t\t\tpageSize: this.#pageSize,\n\t\t})\n\t}\n\n\n\tgenerate(): { [key: string]: string } {\n\t\treturn generateQueryStringParams(this.build())\n\t}\n\n}\n\n\nclass QueryBuilder extends QueryBuilderList {\n\n\tconstructor(resource?: string) {\n\t\tsuper(resource)\n\t}\n\n}\n\n\nexport default QueryBuilder\n\nexport { QueryBuilderRetrieve, QueryBuilderList }\n\n\n\nconst generateQueryStringParams = (params: QueryParamsRetrieve | QueryParamsList | undefined): { [key: string]: string } => {\n\n\tconst qp: { [key: string]: string } = {}\n\tif (!params) return qp\n\n\t// Include\n\tif (params.include) qp['include'] = params.include.join(',')\n\t// Fields\n\tif (params.fields) {\n\t\tObject.entries(params.fields).forEach(([p, v]) => {\n\t\t\tqp[`fields[${p}]`] = v.join(',')\n\t\t})\n\t}\n\n\tif (isParamsList(params)) {\n\t\t// Sort\n\t\tif (params.sort) {\n\t\t\tif (Array.isArray(params.sort)) qp['sort'] = params.sort.join(',')\n\t\t\telse qp['sort'] = Object.entries(params.sort).map(([k, v]) => `${v === 'desc' ? '-' : ''}${k}`).join(',')\n\t\t}\n\t\t// Page\n\t\tif (params.pageNumber) qp['page[number]'] = String(params.pageNumber)\n\t\tif (params.pageSize) qp['page[size]'] = String(params.pageSize)\n\t\t// Filters\n\t\tif (params.filters) {\n\t\t\tObject.entries(params.filters).forEach(([p, v]) => {\n\t\t\t\tqp[`filter[q][${p}]`] = String(v)\n\t\t\t})\n\t\t}\n\t}\n\n\treturn qp\n\n}\n\n\nexport { generateQueryStringParams }\n","\nimport ApiClient, { ApiClientConfig, ApiClientInitConfig } from './client'\nimport { denormalize, normalize, JSONValue } from './jsonapi'\nimport { QueryParamsRetrieve, QueryParamsList, generateQueryStringParams } from './query'\nimport { ResourceTypeLock } from './api'\nimport config from './config'\nimport { InterceptorManager } from './interceptor'\n\n\n\ntype Metadata = { [key: string]: JSONValue }\n\n\ninterface ResourceType {\n\treadonly type: ResourceTypeLock\n}\n\n\ninterface ResourceId extends ResourceType {\n\treadonly id: string\n}\n\n\ninterface Resource extends ResourceId {\n\treference?: string;\n\treference_origin?: string;\n\tmetadata?: Metadata\n\treadonly created_at: string\n\treadonly updated_at: string\n}\n\n\ninterface ResourceCreate {\n\treference?: string;\n\treference_origin?: string;\n\tmetadata?: Metadata\n}\n\n\ninterface ResourceUpdate {\n\treadonly id: string\n\treference?: string;\n\treference_origin?: string;\n\tmetadata?: Metadata\n}\n\n\ntype ListMeta = {\n\treadonly pageCount: number\n\treadonly recordCount: number\n\treadonly currentPage: number\n\treadonly recordsPerPage: number\n}\n\nclass ListResponse<R> extends Array<R> {\n\n\treadonly meta: ListMeta\n\n\tconstructor(meta: ListMeta, data: Array<R>) {\n\t\tsuper(...data)\n\t\tthis.meta = meta\n\t}\n\n\tfirst(): R | undefined { return this.length ? this[0] : undefined }\n\tlast(): R | undefined { return this.length ? this[this.length - 1] : undefined }\n\tget(index: number): R | undefined { return (this.length && (index >= 0)) ? this[index] : undefined }\n\t// getMetaInfo(): ListMeta { return this.meta }\n\t// hasNextPage(): boolean { return (this.meta.currentPage < this.meta.pageCount) }\n\t// hasPrevPage(): boolean { return (this.meta.currentPage > 1) }\n\t// recordCount(): number { return this.meta.recordCount }\n\t// pageCount(): number { return this.meta.pageCount }\n\n}\n\n\n\nexport type { Metadata, ResourceType, ResourceId, Resource, ResourceCreate, ResourceUpdate, ListResponse }\n\n\n// Resources adapter local configuration\ntype ResourceAdapterConfig = {\n\t// rawResponse?: boolean\n}\n\ntype ResourcesInitConfig = ResourceAdapterConfig & ApiClientInitConfig\ntype ResourcesConfig = ResourceAdapterConfig & ApiClientConfig\n\n\nclass ResourceAdapter {\n\n\t#client: ApiClient\n\n\t#config: ResourceAdapterConfig = {}\n\n\n\tconstructor(config: ResourcesInitConfig) {\n\t\tthis.#client = ApiClient.create(config)\n\t\tthis.config(config)\n\t}\n\n\n\tget interceptors(): InterceptorManager { return this.#client.interceptors }\n\n\n\tconfig(config: ResourcesConfig): void {\n\n\t\tif (!config) return\n\n\t\t// Client config\n\t\tthis.#client.config(config)\n\n\t\t// Resources config\n\t\t// if (typeof config.rawResponse !== 'undefined') this.#config.rawResponse = config.rawResponse\n\n\t\treturn\n\n\t}\n\t\n\n\t/*\n\tprivate isRawResponse(options?: ResourcesConfig): boolean {\n\t\treturn (typeof options?.rawResponse !== 'undefined') ? (options?.rawResponse === true) : (this.#config.rawResponse === true)\n\t}\n\t*/\n\n\n\tasync singleton<R extends Resource>(resource: ResourceType, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<R> {\n\n\t\tconst queryParams = generateQueryStringParams(params)\n\t\tif (options?.params) Object.assign(queryParams, options?.params)\n\n\t\tconst res = await this.#client.request('get', `${resource.type}`, undefined, { ...options, params: queryParams })\n\t\tconst r = denormalize<R>(res) as R\n\n\t\treturn r\n\n\t}\n\n\n\tasync retrieve<R extends Resource>(resource: ResourceId, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<R> {\n\n\t\tconst queryParams = generateQueryStringParams(params)\n\t\tif (options?.params) Object.assign(queryParams, options?.params)\n\n\t\tconst res = await this.#client.request('get', `${resource.type}/${resource.id}`, undefined, { ...options, params: queryParams })\n\t\tconst r = denormalize<R>(res) as R\n\n\t\treturn r\n\n\t}\n\n\n\tasync list<R extends Resource>(resource: ResourceType, params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<R>> {\n\n\t\tconst queryParams = generateQueryStringParams(params)\n\t\tif (options?.params) Object.assign(queryParams, options?.params)\n\n\t\tconst res = await this.#client.request('get', `${resource.type}`, undefined, { ...options, params: queryParams })\n\t\tconst r = denormalize<R>(res) as R[]\n\n\t\tconst meta: ListMeta = {\n\t\t\tpageCount: Number(res.meta?.page_count),\n\t\t\trecordCount: Number(res.meta?.record_count),\n\t\t\tcurrentPage: params?.pageNumber || config.default.pageNumber,\n\t\t\trecordsPerPage: params?.pageSize || config.default.pageSize\n\t\t}\n\n\t\treturn new ListResponse(meta, r)\n\n\t}\n\n\n\tasync create<C extends ResourceCreate, R extends Resource>(resource: C & ResourceType, options?: ResourcesConfig): Promise<R> {\n\n\t\tconst data = normalize(resource)\n\n\t\tconst res = await this.#client.request('post', resource.type, data, options)\n\t\tconst r = denormalize<R>(res) as R\n\n\t\treturn r\n\n\t}\n\n\n\tasync update<U extends ResourceUpdate, R extends Resource>(resource: U & ResourceId, options?: ResourcesConfig): Promise<R> {\n\n\t\tconst data = normalize(resource)\n\n\t\tconst res = await this.#client.request('patch', `${resource.type}/${resource.id}`, data, options)\n\t\tconst r = denormalize<R>(res) as R\n\n\t\treturn r\n\n\t}\n\n\n\tasync delete(resource: ResourceId, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.#client.request('delete', `${resource.type}/${resource.id}`, undefined, options)\n\t}\n\n\n\t/*\n\tasync rawList(resource: ResourceType, params?: QueryParamsList, options?: ResourcesConfig): Promise<DocWithData> {\n\t\tconst queryParams = generateQueryStringParams(params)\n\t\treturn this.#client.request('get', `${resource.type}`, undefined, { ...options, params: queryParams })\n\t}\n\t*/\n\n}\n\n\n\nabstract class ApiResource {\n\n\tstatic readonly TYPE: ResourceTypeLock\n\t// static readonly PATH: ResourceTypeLock\n\tprotected resources: ResourceAdapter\n\n\tconstructor(adapter: ResourceAdapter) {\n\t\tthis.resources = adapter\n\t}\n\n\tabstract relationship(id: string | ResourceId): ResourceId\n\n\t/*\n\tasync rawList(resource: ResourceType, params?: QueryParamsList, options?: ResourcesConfig): Promise<DocWithData> {\n\t\treturn this.resources.rawList(resource, params, options)\n\t}\n\t*/\n\n}\n\n\n\nexport default ResourceAdapter\n\nexport { ApiResource, ResourcesConfig, ResourcesInitConfig }\n","\nconst config = {\n\tdefault: {\n\t\tpageNumber: 1,\n\t\tpageSize: 10,\n\t}\n}\n\n\nexport default config\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Geocoder } from './geocoders'\n\n\ntype AddressRel = ResourceId & { type: typeof Addresses.TYPE }\ntype GeocoderRel = ResourceId & { type: 'geocoders' }\n\n\ninterface Address extends Resource {\n\t\n\tbusiness?: boolean\n\tfirst_name?: string\n\tlast_name?: string\n\tcompany?: string\n\tfull_name?: string\n\tline_1?: string\n\tline_2?: string\n\tcity?: string\n\tzip_code?: string\n\tstate_code?: string\n\tcountry_code?: string\n\tphone?: string\n\tfull_address?: string\n\tname?: string\n\temail?: string\n\tnotes?: string\n\tlat?: number\n\tlng?: number\n\tis_localized?: boolean\n\tis_geocoded?: boolean\n\tprovider_name?: string\n\tmap_url?: string\n\tstatic_map_url?: string\n\tbilling_info?: string\n\n\tgeocoder?: Geocoder\n\n}\n\n\ninterface AddressCreate extends ResourceCreate {\n\t\n\tbusiness?: boolean\n\tfirst_name?: string\n\tlast_name?: string\n\tcompany?: string\n\tline_1: string\n\tline_2?: string\n\tcity: string\n\tzip_code?: string\n\tstate_code: string\n\tcountry_code: string\n\tphone: string\n\temail?: string\n\tnotes?: string\n\tlat?: number\n\tlng?: number\n\tbilling_info?: string\n\n\tgeocoder?: GeocoderRel\n\n}\n\n\ninterface AddressUpdate extends ResourceUpdate {\n\t\n\tbusiness?: boolean\n\tfirst_name?: string\n\tlast_name?: string\n\tcompany?: string\n\tline_1?: string\n\tline_2?: string\n\tcity?: string\n\tzip_code?: string\n\tstate_code?: string\n\tcountry_code?: string\n\tphone?: string\n\temail?: string\n\tnotes?: string\n\tlat?: number\n\tlng?: number\n\tbilling_info?: string\n\n\tgeocoder?: GeocoderRel\n\n}\n\n\nclass Addresses extends ApiResource {\n\n\tstatic readonly TYPE: 'addresses' = 'addresses'\n\t// static readonly PATH = 'addresses'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Address>> {\n\t\treturn this.resources.list({ type: Addresses.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AddressCreate, options?: ResourcesConfig): Promise<Address> {\n\t\treturn this.resources.create({ ...resource, type: Addresses.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Address> {\n\t\treturn this.resources.retrieve<Address>({ type: Addresses.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AddressUpdate, options?: ResourcesConfig): Promise<Address> {\n\t\treturn this.resources.update({ ...resource, type: Addresses.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Addresses.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAddress(resource: any): resource is Address {\n\t\treturn resource.type && (resource.type === Addresses.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Addresses.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Addresses.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AddressRel {\n\t\treturn (typeof id === 'string') ? { id, type: Addresses.TYPE } : {id: id.id, type: Addresses.TYPE }\n\t}\n\n}\n\n\nexport default Addresses\n\nexport { Address, AddressCreate, AddressUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\n\n\ntype AdjustmentRel = ResourceId & { type: typeof Adjustments.TYPE }\n\n\ninterface Adjustment extends Resource {\n\t\n\tname?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\t\n}\n\n\ninterface AdjustmentCreate extends ResourceCreate {\n\t\n\tname: string\n\tcurrency_code: string\n\tamount_cents: number\n\t\n}\n\n\ninterface AdjustmentUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\t\n}\n\n\nclass Adjustments extends ApiResource {\n\n\tstatic readonly TYPE: 'adjustments' = 'adjustments'\n\t// static readonly PATH = 'adjustments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Adjustment>> {\n\t\treturn this.resources.list({ type: Adjustments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AdjustmentCreate, options?: ResourcesConfig): Promise<Adjustment> {\n\t\treturn this.resources.create({ ...resource, type: Adjustments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Adjustment> {\n\t\treturn this.resources.retrieve<Adjustment>({ type: Adjustments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AdjustmentUpdate, options?: ResourcesConfig): Promise<Adjustment> {\n\t\treturn this.resources.update({ ...resource, type: Adjustments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Adjustments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAdjustment(resource: any): resource is Adjustment {\n\t\treturn resource.type && (resource.type === Adjustments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Adjustments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Adjustments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AdjustmentRel {\n\t\treturn (typeof id === 'string') ? { id, type: Adjustments.TYPE } : {id: id.id, type: Adjustments.TYPE }\n\t}\n\n}\n\n\nexport default Adjustments\n\nexport { Adjustment, AdjustmentCreate, AdjustmentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { AdyenPayment } from './adyen_payments'\n\n\ntype AdyenGatewayRel = ResourceId & { type: typeof AdyenGateways.TYPE }\ntype AdyenPaymentRel = ResourceId & { type: 'adyen_payments' }\n\n\ninterface AdyenGateway extends Resource {\n\t\n\tname?: string\n\tlive_url_prefix?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tadyen_payments?: AdyenPayment[]\n\n}\n\n\ninterface AdyenGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tmerchant_account: string\n\tapi_key: string\n\tpublic_key?: string\n\tlive_url_prefix: string\n\n\tadyen_payments?: AdyenPaymentRel[]\n\n}\n\n\ninterface AdyenGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tmerchant_account?: string\n\tapi_key?: string\n\tpublic_key?: string\n\tlive_url_prefix?: string\n\n\tadyen_payments?: AdyenPaymentRel[]\n\n}\n\n\nclass AdyenGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'adyen_gateways' = 'adyen_gateways'\n\t// static readonly PATH = 'adyen_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<AdyenGateway>> {\n\t\treturn this.resources.list({ type: AdyenGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AdyenGatewayCreate, options?: ResourcesConfig): Promise<AdyenGateway> {\n\t\treturn this.resources.create({ ...resource, type: AdyenGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<AdyenGateway> {\n\t\treturn this.resources.retrieve<AdyenGateway>({ type: AdyenGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AdyenGatewayUpdate, options?: ResourcesConfig): Promise<AdyenGateway> {\n\t\treturn this.resources.update({ ...resource, type: AdyenGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: AdyenGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAdyenGateway(resource: any): resource is AdyenGateway {\n\t\treturn resource.type && (resource.type === AdyenGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(AdyenGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(AdyenGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AdyenGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: AdyenGateways.TYPE } : {id: id.id, type: AdyenGateways.TYPE }\n\t}\n\n}\n\n\nexport default AdyenGateways\n\nexport { AdyenGateway, AdyenGatewayCreate, AdyenGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype AdyenPaymentRel = ResourceId & { type: typeof AdyenPayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface AdyenPayment extends Resource {\n\t\n\tpublic_key?: string\n\tpayment_methods?: object\n\tpayment_request_data?: object\n\tpayment_request_details?: object\n\tpayment_response?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface AdyenPaymentCreate extends ResourceCreate {\n\t\n\torder?: OrderRel\n\n}\n\n\ninterface AdyenPaymentUpdate extends ResourceUpdate {\n\t\n\tpayment_request_data?: object\n\tpayment_request_details?: object\n\tpayment_response?: object\n\t_authorize?: boolean\n\t_details?: boolean\n\n\torder?: OrderRel\n\n}\n\n\nclass AdyenPayments extends ApiResource {\n\n\tstatic readonly TYPE: 'adyen_payments' = 'adyen_payments'\n\t// static readonly PATH = 'adyen_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<AdyenPayment>> {\n\t\treturn this.resources.list({ type: AdyenPayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AdyenPaymentCreate, options?: ResourcesConfig): Promise<AdyenPayment> {\n\t\treturn this.resources.create({ ...resource, type: AdyenPayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<AdyenPayment> {\n\t\treturn this.resources.retrieve<AdyenPayment>({ type: AdyenPayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AdyenPaymentUpdate, options?: ResourcesConfig): Promise<AdyenPayment> {\n\t\treturn this.resources.update({ ...resource, type: AdyenPayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: AdyenPayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAdyenPayment(resource: any): resource is AdyenPayment {\n\t\treturn resource.type && (resource.type === AdyenPayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(AdyenPayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(AdyenPayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AdyenPaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: AdyenPayments.TYPE } : {id: id.id, type: AdyenPayments.TYPE }\n\t}\n\n}\n\n\nexport default AdyenPayments\n\nexport { AdyenPayment, AdyenPaymentCreate, AdyenPaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsRetrieve } from '../query'\n\n\n\ntype ApplicationRel = ResourceId & { type: typeof Applications.TYPE }\n\n\ninterface Application extends Resource {\n\t\n\tname?: string\n\tkind?: string\n\tpublic_access?: string\n\tredirect_uri?: string\n\tscopes?: string\n\t\n}\n\n\nclass Applications extends ApiResource {\n\n\tstatic readonly TYPE: 'application' = 'application'\n\t// static readonly PATH = 'application'\n\n\tasync retrieve(params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Application> {\n\t\treturn this.resources.singleton<Application>({ type: Applications.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisApplication(resource: any): resource is Application {\n\t\treturn resource.type && (resource.type === Applications.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Applications.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Applications.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ApplicationRel {\n\t\treturn (typeof id === 'string') ? { id, type: Applications.TYPE } : {id: id.id, type: Applications.TYPE }\n\t}\n\n}\n\n\nexport default Applications\n\nexport { Application }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Bundle } from './bundles'\nimport { CarrierAccount } from './carrier_accounts'\nimport { CustomerGroup } from './customer_groups'\nimport { Customer } from './customers'\nimport { DeliveryLeadTime } from './delivery_lead_times'\nimport { Geocoder } from './geocoders'\nimport { GiftCardRecipient } from './gift_card_recipients'\nimport { GiftCard } from './gift_cards'\nimport { InventoryModel } from './inventory_models'\nimport { Market } from './markets'\nimport { Merchant } from './merchants'\nimport { BillingInfoValidationRule } from './billing_info_validation_rules'\nimport { Order } from './orders'\nimport { Package } from './packages'\nimport { Parcel } from './parcels'\nimport { PaymentMethod } from './payment_methods'\nimport { PriceList } from './price_lists'\nimport { Price } from './prices'\nimport { Promotion } from './promotions'\nimport { Return } from './returns'\nimport { Shipment } from './shipments'\nimport { ShippingCategory } from './shipping_categories'\nimport { ShippingMethod } from './shipping_methods'\nimport { ShippingZone } from './shipping_zones'\nimport { SkuOption } from './sku_options'\nimport { Sku } from './skus'\nimport { StockItem } from './stock_items'\nimport { StockLocation } from './stock_locations'\nimport { TaxCalculator } from './tax_calculators'\nimport { TaxCategory } from './tax_categories'\n\n\ntype AttachmentRel = ResourceId & { type: typeof Attachments.TYPE }\ntype BundleRel = ResourceId & { type: 'bundles' }\ntype CarrierAccountRel = ResourceId & { type: 'carrier_accounts' }\ntype CustomerGroupRel = ResourceId & { type: 'customer_groups' }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype DeliveryLeadTimeRel = ResourceId & { type: 'delivery_lead_times' }\ntype GeocoderRel = ResourceId & { type: 'geocoders' }\ntype GiftCardRecipientRel = ResourceId & { type: 'gift_card_recipients' }\ntype GiftCardRel = ResourceId & { type: 'gift_cards' }\ntype InventoryModelRel = ResourceId & { type: 'inventory_models' }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype MerchantRel = ResourceId & { type: 'merchants' }\ntype BillingInfoValidationRuleRel = ResourceId & { type: 'billing_info_validation_rules' }\ntype OrderRel = ResourceId & { type: 'orders' }\ntype PackageRel = ResourceId & { type: 'packages' }\ntype ParcelRel = ResourceId & { type: 'parcels' }\ntype PaymentMethodRel = ResourceId & { type: 'payment_methods' }\ntype PriceListRel = ResourceId & { type: 'price_lists' }\ntype PriceRel = ResourceId & { type: 'prices' }\ntype PromotionRel = ResourceId & { type: 'promotions' }\ntype ReturnRel = ResourceId & { type: 'returns' }\ntype ShipmentRel = ResourceId & { type: 'shipments' }\ntype ShippingCategoryRel = ResourceId & { type: 'shipping_categories' }\ntype ShippingMethodRel = ResourceId & { type: 'shipping_methods' }\ntype ShippingZoneRel = ResourceId & { type: 'shipping_zones' }\ntype SkuOptionRel = ResourceId & { type: 'sku_options' }\ntype SkuRel = ResourceId & { type: 'skus' }\ntype StockItemRel = ResourceId & { type: 'stock_items' }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype TaxCalculatorRel = ResourceId & { type: 'tax_calculators' }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\n\n\ninterface Attachment extends Resource {\n\t\n\tname?: string\n\tdescription?: string\n\turl?: string\n\n\tattachable?: Bundle | CarrierAccount | CustomerGroup | Customer | DeliveryLeadTime | Geocoder | GiftCardRecipient | GiftCard | InventoryModel | Market | Merchant | BillingInfoValidationRule | Order | Package | Parcel | PaymentMethod | PriceList | Price | Promotion | Return | Shipment | ShippingCategory | ShippingMethod | ShippingZone | SkuOption | Sku | StockItem | StockLocation | TaxCalculator | TaxCategory\n\n}\n\n\ninterface AttachmentCreate extends ResourceCreate {\n\t\n\tname: string\n\tdescription?: string\n\turl?: string\n\n\tattachable?: BundleRel | CarrierAccountRel | CustomerGroupRel | CustomerRel | DeliveryLeadTimeRel | GeocoderRel | GiftCardRecipientRel | GiftCardRel | InventoryModelRel | MarketRel | MerchantRel | BillingInfoValidationRuleRel | OrderRel | PackageRel | ParcelRel | PaymentMethodRel | PriceListRel | PriceRel | PromotionRel | ReturnRel | ShipmentRel | ShippingCategoryRel | ShippingMethodRel | ShippingZoneRel | SkuOptionRel | SkuRel | StockItemRel | StockLocationRel | TaxCalculatorRel | TaxCategoryRel\n\n}\n\n\ninterface AttachmentUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tdescription?: string\n\turl?: string\n\n\tattachable?: BundleRel | CarrierAccountRel | CustomerGroupRel | CustomerRel | DeliveryLeadTimeRel | GeocoderRel | GiftCardRecipientRel | GiftCardRel | InventoryModelRel | MarketRel | MerchantRel | BillingInfoValidationRuleRel | OrderRel | PackageRel | ParcelRel | PaymentMethodRel | PriceListRel | PriceRel | PromotionRel | ReturnRel | ShipmentRel | ShippingCategoryRel | ShippingMethodRel | ShippingZoneRel | SkuOptionRel | SkuRel | StockItemRel | StockLocationRel | TaxCalculatorRel | TaxCategoryRel\n\n}\n\n\nclass Attachments extends ApiResource {\n\n\tstatic readonly TYPE: 'attachments' = 'attachments'\n\t// static readonly PATH = 'attachments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Attachment>> {\n\t\treturn this.resources.list({ type: Attachments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AttachmentCreate, options?: ResourcesConfig): Promise<Attachment> {\n\t\treturn this.resources.create({ ...resource, type: Attachments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Attachment> {\n\t\treturn this.resources.retrieve<Attachment>({ type: Attachments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AttachmentUpdate, options?: ResourcesConfig): Promise<Attachment> {\n\t\treturn this.resources.update({ ...resource, type: Attachments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Attachments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAttachment(resource: any): resource is Attachment {\n\t\treturn resource.type && (resource.type === Attachments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Attachments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Attachments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AttachmentRel {\n\t\treturn (typeof id === 'string') ? { id, type: Attachments.TYPE } : {id: id.id, type: Attachments.TYPE }\n\t}\n\n}\n\n\nexport default Attachments\n\nexport { Attachment, AttachmentCreate, AttachmentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Capture } from './captures'\nimport { Void } from './voids'\n\n\ntype AuthorizationRel = ResourceId & { type: typeof Authorizations.TYPE }\n\n\ninterface Authorization extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\tcvv_code?: string\n\tcvv_message?: string\n\tavs_code?: string\n\tavs_message?: string\n\tfraud_review?: string\n\tcapture_amount_cents?: number\n\tcapture_amount_float?: number\n\tformatted_capture_amount?: string\n\tcapture_balance_cents?: number\n\tcapture_balance_float?: number\n\tformatted_capture_balance?: string\n\tvoid_balance_cents?: number\n\tvoid_balance_float?: number\n\tformatted_void_balance?: string\n\n\torder?: Order\n\tcaptures?: Capture[]\n\tvoids?: Void[]\n\n}\n\n\ninterface AuthorizationUpdate extends ResourceUpdate {\n\t\n\t_capture?: boolean\n\t_capture_amount_cents?: number\n\t_void?: boolean\n\t\n}\n\n\nclass Authorizations extends ApiResource {\n\n\tstatic readonly TYPE: 'authorizations' = 'authorizations'\n\t// static readonly PATH = 'authorizations'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Authorization>> {\n\t\treturn this.resources.list({ type: Authorizations.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Authorization> {\n\t\treturn this.resources.retrieve<Authorization>({ type: Authorizations.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AuthorizationUpdate, options?: ResourcesConfig): Promise<Authorization> {\n\t\treturn this.resources.update({ ...resource, type: Authorizations.TYPE }, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAuthorization(resource: any): resource is Authorization {\n\t\treturn resource.type && (resource.type === Authorizations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Authorizations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Authorizations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AuthorizationRel {\n\t\treturn (typeof id === 'string') ? { id, type: Authorizations.TYPE } : {id: id.id, type: Authorizations.TYPE }\n\t}\n\n}\n\n\nexport default Authorizations\n\nexport { Authorization, AuthorizationUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype AvalaraAccountRel = ResourceId & { type: typeof AvalaraAccounts.TYPE }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\n\n\ninterface AvalaraAccount extends Resource {\n\t\n\tname?: string\n\tusername?: string\n\tcompany_code?: string\n\tddp?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface AvalaraAccountCreate extends ResourceCreate {\n\t\n\tname: string\n\tusername: string\n\tpassword: string\n\tcompany_code: string\n\tddp?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\ninterface AvalaraAccountUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tusername?: string\n\tpassword?: string\n\tcompany_code?: string\n\tddp?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\nclass AvalaraAccounts extends ApiResource {\n\n\tstatic readonly TYPE: 'avalara_accounts' = 'avalara_accounts'\n\t// static readonly PATH = 'avalara_accounts'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<AvalaraAccount>> {\n\t\treturn this.resources.list({ type: AvalaraAccounts.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AvalaraAccountCreate, options?: ResourcesConfig): Promise<AvalaraAccount> {\n\t\treturn this.resources.create({ ...resource, type: AvalaraAccounts.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<AvalaraAccount> {\n\t\treturn this.resources.retrieve<AvalaraAccount>({ type: AvalaraAccounts.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AvalaraAccountUpdate, options?: ResourcesConfig): Promise<AvalaraAccount> {\n\t\treturn this.resources.update({ ...resource, type: AvalaraAccounts.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: AvalaraAccounts.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAvalaraAccount(resource: any): resource is AvalaraAccount {\n\t\treturn resource.type && (resource.type === AvalaraAccounts.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(AvalaraAccounts.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(AvalaraAccounts.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AvalaraAccountRel {\n\t\treturn (typeof id === 'string') ? { id, type: AvalaraAccounts.TYPE } : {id: id.id, type: AvalaraAccounts.TYPE }\n\t}\n\n}\n\n\nexport default AvalaraAccounts\n\nexport { AvalaraAccount, AvalaraAccountCreate, AvalaraAccountUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\n\n\ntype BillingInfoValidationRuleRel = ResourceId & { type: typeof BillingInfoValidationRules.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\n\n\ninterface BillingInfoValidationRule extends Resource {\n\t\n\tmarket?: Market\n\n}\n\n\ninterface BillingInfoValidationRuleCreate extends ResourceCreate {\n\t\n\tmarket?: MarketRel\n\n}\n\n\ninterface BillingInfoValidationRuleUpdate extends ResourceUpdate {\n\t\n\tmarket?: MarketRel\n\n}\n\n\nclass BillingInfoValidationRules extends ApiResource {\n\n\tstatic readonly TYPE: 'billing_info_validation_rules' = 'billing_info_validation_rules'\n\t// static readonly PATH = 'billing_info_validation_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<BillingInfoValidationRule>> {\n\t\treturn this.resources.list({ type: BillingInfoValidationRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BillingInfoValidationRuleCreate, options?: ResourcesConfig): Promise<BillingInfoValidationRule> {\n\t\treturn this.resources.create({ ...resource, type: BillingInfoValidationRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<BillingInfoValidationRule> {\n\t\treturn this.resources.retrieve<BillingInfoValidationRule>({ type: BillingInfoValidationRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BillingInfoValidationRuleUpdate, options?: ResourcesConfig): Promise<BillingInfoValidationRule> {\n\t\treturn this.resources.update({ ...resource, type: BillingInfoValidationRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: BillingInfoValidationRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBillingInfoValidationRule(resource: any): resource is BillingInfoValidationRule {\n\t\treturn resource.type && (resource.type === BillingInfoValidationRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(BillingInfoValidationRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(BillingInfoValidationRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BillingInfoValidationRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: BillingInfoValidationRules.TYPE } : {id: id.id, type: BillingInfoValidationRules.TYPE }\n\t}\n\n}\n\n\nexport default BillingInfoValidationRules\n\nexport { BillingInfoValidationRule, BillingInfoValidationRuleCreate, BillingInfoValidationRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Address } from './addresses'\nimport { Attachment } from './attachments'\n\n\ntype BingGeocoderRel = ResourceId & { type: typeof BingGeocoders.TYPE }\n\n\ninterface BingGeocoder extends Resource {\n\t\n\tname?: string\n\n\taddresses?: Address[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface BingGeocoderCreate extends ResourceCreate {\n\t\n\tname: string\n\tkey: string\n\t\n}\n\n\ninterface BingGeocoderUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tkey?: string\n\t\n}\n\n\nclass BingGeocoders extends ApiResource {\n\n\tstatic readonly TYPE: 'bing_geocoders' = 'bing_geocoders'\n\t// static readonly PATH = 'bing_geocoders'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<BingGeocoder>> {\n\t\treturn this.resources.list({ type: BingGeocoders.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BingGeocoderCreate, options?: ResourcesConfig): Promise<BingGeocoder> {\n\t\treturn this.resources.create({ ...resource, type: BingGeocoders.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<BingGeocoder> {\n\t\treturn this.resources.retrieve<BingGeocoder>({ type: BingGeocoders.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BingGeocoderUpdate, options?: ResourcesConfig): Promise<BingGeocoder> {\n\t\treturn this.resources.update({ ...resource, type: BingGeocoders.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: BingGeocoders.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBingGeocoder(resource: any): resource is BingGeocoder {\n\t\treturn resource.type && (resource.type === BingGeocoders.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(BingGeocoders.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(BingGeocoders.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BingGeocoderRel {\n\t\treturn (typeof id === 'string') ? { id, type: BingGeocoders.TYPE } : {id: id.id, type: BingGeocoders.TYPE }\n\t}\n\n}\n\n\nexport default BingGeocoders\n\nexport { BingGeocoder, BingGeocoderCreate, BingGeocoderUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { BraintreePayment } from './braintree_payments'\n\n\ntype BraintreeGatewayRel = ResourceId & { type: typeof BraintreeGateways.TYPE }\ntype BraintreePaymentRel = ResourceId & { type: 'braintree_payments' }\n\n\ninterface BraintreeGateway extends Resource {\n\t\n\tname?: string\n\tdescriptor_name?: string\n\tdescriptor_phone?: string\n\tdescriptor_url?: string\n\twebhook_endpoint_url?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tbraintree_payments?: BraintreePayment[]\n\n}\n\n\ninterface BraintreeGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tmerchant_account_id: string\n\tmerchant_id: string\n\tpublic_key: string\n\tprivate_key: string\n\tdescriptor_name?: string\n\tdescriptor_phone?: string\n\tdescriptor_url?: string\n\n\tbraintree_payments?: BraintreePaymentRel[]\n\n}\n\n\ninterface BraintreeGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tmerchant_account_id?: string\n\tmerchant_id?: string\n\tpublic_key?: string\n\tprivate_key?: string\n\tdescriptor_name?: string\n\tdescriptor_phone?: string\n\tdescriptor_url?: string\n\n\tbraintree_payments?: BraintreePaymentRel[]\n\n}\n\n\nclass BraintreeGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'braintree_gateways' = 'braintree_gateways'\n\t// static readonly PATH = 'braintree_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<BraintreeGateway>> {\n\t\treturn this.resources.list({ type: BraintreeGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BraintreeGatewayCreate, options?: ResourcesConfig): Promise<BraintreeGateway> {\n\t\treturn this.resources.create({ ...resource, type: BraintreeGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<BraintreeGateway> {\n\t\treturn this.resources.retrieve<BraintreeGateway>({ type: BraintreeGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BraintreeGatewayUpdate, options?: ResourcesConfig): Promise<BraintreeGateway> {\n\t\treturn this.resources.update({ ...resource, type: BraintreeGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: BraintreeGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBraintreeGateway(resource: any): resource is BraintreeGateway {\n\t\treturn resource.type && (resource.type === BraintreeGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(BraintreeGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(BraintreeGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BraintreeGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: BraintreeGateways.TYPE } : {id: id.id, type: BraintreeGateways.TYPE }\n\t}\n\n}\n\n\nexport default BraintreeGateways\n\nexport { BraintreeGateway, BraintreeGatewayCreate, BraintreeGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype BraintreePaymentRel = ResourceId & { type: typeof BraintreePayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface BraintreePayment extends Resource {\n\t\n\tclient_token?: string\n\tpayment_method_nonce?: string\n\tpayment_id?: string\n\tlocal?: boolean\n\toptions?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface BraintreePaymentCreate extends ResourceCreate {\n\t\n\tpayment_id?: string\n\tlocal?: boolean\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\ninterface BraintreePaymentUpdate extends ResourceUpdate {\n\t\n\tpayment_method_nonce?: string\n\tpayment_id?: string\n\tlocal?: boolean\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\nclass BraintreePayments extends ApiResource {\n\n\tstatic readonly TYPE: 'braintree_payments' = 'braintree_payments'\n\t// static readonly PATH = 'braintree_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<BraintreePayment>> {\n\t\treturn this.resources.list({ type: BraintreePayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BraintreePaymentCreate, options?: ResourcesConfig): Promise<BraintreePayment> {\n\t\treturn this.resources.create({ ...resource, type: BraintreePayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<BraintreePayment> {\n\t\treturn this.resources.retrieve<BraintreePayment>({ type: BraintreePayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BraintreePaymentUpdate, options?: ResourcesConfig): Promise<BraintreePayment> {\n\t\treturn this.resources.update({ ...resource, type: BraintreePayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: BraintreePayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBraintreePayment(resource: any): resource is BraintreePayment {\n\t\treturn resource.type && (resource.type === BraintreePayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(BraintreePayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(BraintreePayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BraintreePaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: BraintreePayments.TYPE } : {id: id.id, type: BraintreePayments.TYPE }\n\t}\n\n}\n\n\nexport default BraintreePayments\n\nexport { BraintreePayment, BraintreePaymentCreate, BraintreePaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\nimport { Attachment } from './attachments'\n\n\ntype BundleRel = ResourceId & { type: typeof Bundles.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\n\n\ninterface Bundle extends Resource {\n\t\n\tcode?: string\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tprice_amount_cents?: number\n\tprice_amount_float?: number\n\tformatted_price_amount?: string\n\tcompare_at_amount_cents?: number\n\tcompare_at_amount_float?: number\n\tformatted_compare_at_amount?: string\n\tskus_count?: number\n\n\tmarket?: Market\n\tsku_list?: SkuList\n\tskus?: Sku[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface BundleCreate extends ResourceCreate {\n\t\n\tcode: string\n\tname: string\n\tdescription?: string\n\timage_url?: string\n\tprice_amount_cents: number\n\tcompare_at_amount_cents: number\n\t_compute_compare_at_amount?: boolean\n\n\tmarket?: MarketRel\n\tsku_list?: SkuListRel\n\n}\n\n\ninterface BundleUpdate extends ResourceUpdate {\n\t\n\tcode?: string\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tprice_amount_cents?: number\n\tcompare_at_amount_cents?: number\n\t_compute_compare_at_amount?: boolean\n\t\n}\n\n\nclass Bundles extends ApiResource {\n\n\tstatic readonly TYPE: 'bundles' = 'bundles'\n\t// static readonly PATH = 'bundles'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Bundle>> {\n\t\treturn this.resources.list({ type: Bundles.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BundleCreate, options?: ResourcesConfig): Promise<Bundle> {\n\t\treturn this.resources.create({ ...resource, type: Bundles.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Bundle> {\n\t\treturn this.resources.retrieve<Bundle>({ type: Bundles.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BundleUpdate, options?: ResourcesConfig): Promise<Bundle> {\n\t\treturn this.resources.update({ ...resource, type: Bundles.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Bundles.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBundle(resource: any): resource is Bundle {\n\t\treturn resource.type && (resource.type === Bundles.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Bundles.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Bundles.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BundleRel {\n\t\treturn (typeof id === 'string') ? { id, type: Bundles.TYPE } : {id: id.id, type: Bundles.TYPE }\n\t}\n\n}\n\n\nexport default Bundles\n\nexport { Bundle, BundleCreate, BundleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Authorization } from './authorizations'\nimport { Refund } from './refunds'\n\n\ntype CaptureRel = ResourceId & { type: typeof Captures.TYPE }\n\n\ninterface Capture extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\trefund_amount_cents?: number\n\trefund_amount_float?: number\n\tformatted_refund_amount?: string\n\trefund_balance_cents?: number\n\trefund_balance_float?: number\n\tformatted_refund_balance?: string\n\n\torder?: Order\n\treference_authorization?: Authorization\n\trefunds?: Refund[]\n\n}\n\n\ninterface CaptureUpdate extends ResourceUpdate {\n\t\n\t_refund?: boolean\n\t_refund_amount_cents?: number\n\t\n}\n\n\nclass Captures extends ApiResource {\n\n\tstatic readonly TYPE: 'captures' = 'captures'\n\t// static readonly PATH = 'captures'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Capture>> {\n\t\treturn this.resources.list({ type: Captures.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Capture> {\n\t\treturn this.resources.retrieve<Capture>({ type: Captures.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CaptureUpdate, options?: ResourcesConfig): Promise<Capture> {\n\t\treturn this.resources.update({ ...resource, type: Captures.TYPE }, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCapture(resource: any): resource is Capture {\n\t\treturn resource.type && (resource.type === Captures.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Captures.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Captures.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CaptureRel {\n\t\treturn (typeof id === 'string') ? { id, type: Captures.TYPE } : {id: id.id, type: Captures.TYPE }\n\t}\n\n}\n\n\nexport default Captures\n\nexport { Capture, CaptureUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype CarrierAccountRel = ResourceId & { type: typeof CarrierAccounts.TYPE }\n\n\ninterface CarrierAccount extends Resource {\n\t\n\tname?: string\n\teasypost_type?: string\n\teasypost_id?: string\n\n\tmarket?: Market\n\tattachments?: Attachment[]\n\n}\n\n\nclass CarrierAccounts extends ApiResource {\n\n\tstatic readonly TYPE: 'carrier_accounts' = 'carrier_accounts'\n\t// static readonly PATH = 'carrier_accounts'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CarrierAccount>> {\n\t\treturn this.resources.list({ type: CarrierAccounts.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CarrierAccount> {\n\t\treturn this.resources.retrieve<CarrierAccount>({ type: CarrierAccounts.TYPE, id }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCarrierAccount(resource: any): resource is CarrierAccount {\n\t\treturn resource.type && (resource.type === CarrierAccounts.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CarrierAccounts.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CarrierAccounts.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CarrierAccountRel {\n\t\treturn (typeof id === 'string') ? { id, type: CarrierAccounts.TYPE } : {id: id.id, type: CarrierAccounts.TYPE }\n\t}\n\n}\n\n\nexport default CarrierAccounts\n\nexport { CarrierAccount }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { CheckoutComPayment } from './checkout_com_payments'\n\n\ntype CheckoutComGatewayRel = ResourceId & { type: typeof CheckoutComGateways.TYPE }\ntype CheckoutComPaymentRel = ResourceId & { type: 'checkout_com_payments' }\n\n\ninterface CheckoutComGateway extends Resource {\n\t\n\tname?: string\n\twebhook_endpoint_id?: string\n\twebhook_endpoint_secret?: string\n\twebhook_endpoint_url?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tcheckout_com_payments?: CheckoutComPayment[]\n\n}\n\n\ninterface CheckoutComGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tsecret_key: string\n\tpublic_key: string\n\n\tcheckout_com_payments?: CheckoutComPaymentRel[]\n\n}\n\n\ninterface CheckoutComGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tsecret_key?: string\n\tpublic_key?: string\n\n\tcheckout_com_payments?: CheckoutComPaymentRel[]\n\n}\n\n\nclass CheckoutComGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'checkout_com_gateways' = 'checkout_com_gateways'\n\t// static readonly PATH = 'checkout_com_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CheckoutComGateway>> {\n\t\treturn this.resources.list({ type: CheckoutComGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CheckoutComGatewayCreate, options?: ResourcesConfig): Promise<CheckoutComGateway> {\n\t\treturn this.resources.create({ ...resource, type: CheckoutComGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CheckoutComGateway> {\n\t\treturn this.resources.retrieve<CheckoutComGateway>({ type: CheckoutComGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CheckoutComGatewayUpdate, options?: ResourcesConfig): Promise<CheckoutComGateway> {\n\t\treturn this.resources.update({ ...resource, type: CheckoutComGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CheckoutComGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCheckoutComGateway(resource: any): resource is CheckoutComGateway {\n\t\treturn resource.type && (resource.type === CheckoutComGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CheckoutComGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CheckoutComGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CheckoutComGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: CheckoutComGateways.TYPE } : {id: id.id, type: CheckoutComGateways.TYPE }\n\t}\n\n}\n\n\nexport default CheckoutComGateways\n\nexport { CheckoutComGateway, CheckoutComGatewayCreate, CheckoutComGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype CheckoutComPaymentRel = ResourceId & { type: typeof CheckoutComPayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface CheckoutComPayment extends Resource {\n\t\n\tpayment_type?: string\n\ttoken?: string\n\tsession_id?: string\n\tsource_id?: string\n\tcustomer_token?: string\n\tredirect_uri?: string\n\tpayment_response?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface CheckoutComPaymentCreate extends ResourceCreate {\n\t\n\tpayment_type: string\n\ttoken: string\n\tsession_id?: string\n\n\torder?: OrderRel\n\n}\n\n\ninterface CheckoutComPaymentUpdate extends ResourceUpdate {\n\t\n\tpayment_type?: string\n\ttoken?: string\n\tsession_id?: string\n\t_authorize?: boolean\n\t_details?: boolean\n\t_refresh?: boolean\n\n\torder?: OrderRel\n\n}\n\n\nclass CheckoutComPayments extends ApiResource {\n\n\tstatic readonly TYPE: 'checkout_com_payments' = 'checkout_com_payments'\n\t// static readonly PATH = 'checkout_com_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CheckoutComPayment>> {\n\t\treturn this.resources.list({ type: CheckoutComPayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CheckoutComPaymentCreate, options?: ResourcesConfig): Promise<CheckoutComPayment> {\n\t\treturn this.resources.create({ ...resource, type: CheckoutComPayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CheckoutComPayment> {\n\t\treturn this.resources.retrieve<CheckoutComPayment>({ type: CheckoutComPayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CheckoutComPaymentUpdate, options?: ResourcesConfig): Promise<CheckoutComPayment> {\n\t\treturn this.resources.update({ ...resource, type: CheckoutComPayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CheckoutComPayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCheckoutComPayment(resource: any): resource is CheckoutComPayment {\n\t\treturn resource.type && (resource.type === CheckoutComPayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CheckoutComPayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CheckoutComPayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CheckoutComPaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: CheckoutComPayments.TYPE } : {id: id.id, type: CheckoutComPayments.TYPE }\n\t}\n\n}\n\n\nexport default CheckoutComPayments\n\nexport { CheckoutComPayment, CheckoutComPaymentCreate, CheckoutComPaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { ExternalPromotion } from './external_promotions'\nimport { Coupon } from './coupons'\n\n\ntype CouponCodesPromotionRuleRel = ResourceId & { type: typeof CouponCodesPromotionRules.TYPE }\ntype PercentageDiscountPromotionRel = ResourceId & { type: 'percentage_discount_promotions' }\ntype FreeShippingPromotionRel = ResourceId & { type: 'free_shipping_promotions' }\ntype FixedAmountPromotionRel = ResourceId & { type: 'fixed_amount_promotions' }\ntype ExternalPromotionRel = ResourceId & { type: 'external_promotions' }\ntype CouponRel = ResourceId & { type: 'coupons' }\n\n\ninterface CouponCodesPromotionRule extends Resource {\n\t\n\tpromotion?: PercentageDiscountPromotion | FreeShippingPromotion | FixedAmountPromotion | ExternalPromotion\n\tcoupons?: Coupon[]\n\n}\n\n\ninterface CouponCodesPromotionRuleCreate extends ResourceCreate {\n\t\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | ExternalPromotionRel\n\tcoupons?: CouponRel[]\n\n}\n\n\ninterface CouponCodesPromotionRuleUpdate extends ResourceUpdate {\n\t\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | ExternalPromotionRel\n\tcoupons?: CouponRel[]\n\n}\n\n\nclass CouponCodesPromotionRules extends ApiResource {\n\n\tstatic readonly TYPE: 'coupon_codes_promotion_rules' = 'coupon_codes_promotion_rules'\n\t// static readonly PATH = 'coupon_codes_promotion_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CouponCodesPromotionRule>> {\n\t\treturn this.resources.list({ type: CouponCodesPromotionRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CouponCodesPromotionRuleCreate, options?: ResourcesConfig): Promise<CouponCodesPromotionRule> {\n\t\treturn this.resources.create({ ...resource, type: CouponCodesPromotionRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CouponCodesPromotionRule> {\n\t\treturn this.resources.retrieve<CouponCodesPromotionRule>({ type: CouponCodesPromotionRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CouponCodesPromotionRuleUpdate, options?: ResourcesConfig): Promise<CouponCodesPromotionRule> {\n\t\treturn this.resources.update({ ...resource, type: CouponCodesPromotionRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CouponCodesPromotionRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCouponCodesPromotionRule(resource: any): resource is CouponCodesPromotionRule {\n\t\treturn resource.type && (resource.type === CouponCodesPromotionRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CouponCodesPromotionRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CouponCodesPromotionRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CouponCodesPromotionRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: CouponCodesPromotionRules.TYPE } : {id: id.id, type: CouponCodesPromotionRules.TYPE }\n\t}\n\n}\n\n\nexport default CouponCodesPromotionRules\n\nexport { CouponCodesPromotionRule, CouponCodesPromotionRuleCreate, CouponCodesPromotionRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\n\n\ntype CouponRel = ResourceId & { type: typeof Coupons.TYPE }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\n\n\ninterface Coupon extends Resource {\n\t\n\tcode?: string\n\tusage_limit?: number\n\tusage_count?: number\n\n\tpromotion_rule?: CouponCodesPromotionRule\n\n}\n\n\ninterface CouponCreate extends ResourceCreate {\n\t\n\tcode: string\n\tusage_limit: number\n\n\tpromotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\ninterface CouponUpdate extends ResourceUpdate {\n\t\n\tcode?: string\n\tusage_limit?: number\n\n\tpromotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\nclass Coupons extends ApiResource {\n\n\tstatic readonly TYPE: 'coupons' = 'coupons'\n\t// static readonly PATH = 'coupons'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Coupon>> {\n\t\treturn this.resources.list({ type: Coupons.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CouponCreate, options?: ResourcesConfig): Promise<Coupon> {\n\t\treturn this.resources.create({ ...resource, type: Coupons.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Coupon> {\n\t\treturn this.resources.retrieve<Coupon>({ type: Coupons.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CouponUpdate, options?: ResourcesConfig): Promise<Coupon> {\n\t\treturn this.resources.update({ ...resource, type: Coupons.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Coupons.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCoupon(resource: any): resource is Coupon {\n\t\treturn resource.type && (resource.type === Coupons.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Coupons.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Coupons.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CouponRel {\n\t\treturn (typeof id === 'string') ? { id, type: Coupons.TYPE } : {id: id.id, type: Coupons.TYPE }\n\t}\n\n}\n\n\nexport default Coupons\n\nexport { Coupon, CouponCreate, CouponUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\nimport { Address } from './addresses'\n\n\ntype CustomerAddressRel = ResourceId & { type: typeof CustomerAddresses.TYPE }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype AddressRel = ResourceId & { type: 'addresses' }\n\n\ninterface CustomerAddress extends Resource {\n\t\n\tname?: string\n\n\tcustomer?: Customer\n\taddress?: Address\n\n}\n\n\ninterface CustomerAddressCreate extends ResourceCreate {\n\t\n\tcustomer?: CustomerRel\n\taddress?: AddressRel\n\n}\n\n\ninterface CustomerAddressUpdate extends ResourceUpdate {\n\t\n\tcustomer?: CustomerRel\n\taddress?: AddressRel\n\n}\n\n\nclass CustomerAddresses extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_addresses' = 'customer_addresses'\n\t// static readonly PATH = 'customer_addresses'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerAddress>> {\n\t\treturn this.resources.list({ type: CustomerAddresses.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerAddressCreate, options?: ResourcesConfig): Promise<CustomerAddress> {\n\t\treturn this.resources.create({ ...resource, type: CustomerAddresses.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerAddress> {\n\t\treturn this.resources.retrieve<CustomerAddress>({ type: CustomerAddresses.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerAddressUpdate, options?: ResourcesConfig): Promise<CustomerAddress> {\n\t\treturn this.resources.update({ ...resource, type: CustomerAddresses.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerAddresses.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerAddress(resource: any): resource is CustomerAddress {\n\t\treturn resource.type && (resource.type === CustomerAddresses.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerAddresses.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerAddresses.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerAddressRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerAddresses.TYPE } : {id: id.id, type: CustomerAddresses.TYPE }\n\t}\n\n}\n\n\nexport default CustomerAddresses\n\nexport { CustomerAddress, CustomerAddressCreate, CustomerAddressUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype CustomerGroupRel = ResourceId & { type: typeof CustomerGroups.TYPE }\n\n\ninterface CustomerGroup extends Resource {\n\t\n\tname?: string\n\n\tcustomers?: Customer[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface CustomerGroupCreate extends ResourceCreate {\n\t\n\tname: string\n\t\n}\n\n\ninterface CustomerGroupUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\t\n}\n\n\nclass CustomerGroups extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_groups' = 'customer_groups'\n\t// static readonly PATH = 'customer_groups'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerGroup>> {\n\t\treturn this.resources.list({ type: CustomerGroups.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerGroupCreate, options?: ResourcesConfig): Promise<CustomerGroup> {\n\t\treturn this.resources.create({ ...resource, type: CustomerGroups.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerGroup> {\n\t\treturn this.resources.retrieve<CustomerGroup>({ type: CustomerGroups.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerGroupUpdate, options?: ResourcesConfig): Promise<CustomerGroup> {\n\t\treturn this.resources.update({ ...resource, type: CustomerGroups.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerGroups.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerGroup(resource: any): resource is CustomerGroup {\n\t\treturn resource.type && (resource.type === CustomerGroups.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerGroups.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerGroups.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerGroupRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerGroups.TYPE } : {id: id.id, type: CustomerGroups.TYPE }\n\t}\n\n}\n\n\nexport default CustomerGroups\n\nexport { CustomerGroup, CustomerGroupCreate, CustomerGroupUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\n\n\ntype CustomerPasswordResetRel = ResourceId & { type: typeof CustomerPasswordResets.TYPE }\n\n\ninterface CustomerPasswordReset extends Resource {\n\t\n\tcustomer_email?: string\n\treset_password_token?: string\n\treset_password_at?: string\n\n\tcustomer?: Customer\n\n}\n\n\ninterface CustomerPasswordResetCreate extends ResourceCreate {\n\t\n\tcustomer_email: string\n\t\n}\n\n\ninterface CustomerPasswordResetUpdate extends ResourceUpdate {\n\t\n\tcustomer_password?: string\n\t_reset_password_token?: string\n\t\n}\n\n\nclass CustomerPasswordResets extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_password_resets' = 'customer_password_resets'\n\t// static readonly PATH = 'customer_password_resets'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerPasswordReset>> {\n\t\treturn this.resources.list({ type: CustomerPasswordResets.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerPasswordResetCreate, options?: ResourcesConfig): Promise<CustomerPasswordReset> {\n\t\treturn this.resources.create({ ...resource, type: CustomerPasswordResets.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerPasswordReset> {\n\t\treturn this.resources.retrieve<CustomerPasswordReset>({ type: CustomerPasswordResets.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerPasswordResetUpdate, options?: ResourcesConfig): Promise<CustomerPasswordReset> {\n\t\treturn this.resources.update({ ...resource, type: CustomerPasswordResets.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerPasswordResets.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerPasswordReset(resource: any): resource is CustomerPasswordReset {\n\t\treturn resource.type && (resource.type === CustomerPasswordResets.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerPasswordResets.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerPasswordResets.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerPasswordResetRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerPasswordResets.TYPE } : {id: id.id, type: CustomerPasswordResets.TYPE }\n\t}\n\n}\n\n\nexport default CustomerPasswordResets\n\nexport { CustomerPasswordReset, CustomerPasswordResetCreate, CustomerPasswordResetUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\nimport { AdyenPayment } from './adyen_payments'\nimport { BraintreePayment } from './braintree_payments'\nimport { CheckoutComPayment } from './checkout_com_payments'\nimport { ExternalPayment } from './external_payments'\nimport { PaypalPayment } from './paypal_payments'\nimport { StripePayment } from './stripe_payments'\nimport { WireTransfer } from './wire_transfers'\n\n\ntype CustomerPaymentSourceRel = ResourceId & { type: typeof CustomerPaymentSources.TYPE }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype AdyenPaymentRel = ResourceId & { type: 'adyen_payments' }\ntype BraintreePaymentRel = ResourceId & { type: 'braintree_payments' }\ntype CheckoutComPaymentRel = ResourceId & { type: 'checkout_com_payments' }\ntype ExternalPaymentRel = ResourceId & { type: 'external_payments' }\ntype PaypalPaymentRel = ResourceId & { type: 'paypal_payments' }\ntype StripePaymentRel = ResourceId & { type: 'stripe_payments' }\ntype WireTransferRel = ResourceId & { type: 'wire_transfers' }\n\n\ninterface CustomerPaymentSource extends Resource {\n\t\n\tname?: string\n\tcustomer_token?: string\n\tpayment_source_token?: string\n\n\tcustomer?: Customer\n\tpayment_source?: AdyenPayment | BraintreePayment | CheckoutComPayment | ExternalPayment | PaypalPayment | StripePayment | WireTransfer\n\n}\n\n\ninterface CustomerPaymentSourceCreate extends ResourceCreate {\n\t\n\tcustomer?: CustomerRel\n\tpayment_source?: AdyenPaymentRel | BraintreePaymentRel | CheckoutComPaymentRel | ExternalPaymentRel | PaypalPaymentRel | StripePaymentRel | WireTransferRel\n\n}\n\n\ninterface CustomerPaymentSourceUpdate extends ResourceUpdate {\n\t\n\tcustomer?: CustomerRel\n\tpayment_source?: AdyenPaymentRel | BraintreePaymentRel | CheckoutComPaymentRel | ExternalPaymentRel | PaypalPaymentRel | StripePaymentRel | WireTransferRel\n\n}\n\n\nclass CustomerPaymentSources extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_payment_sources' = 'customer_payment_sources'\n\t// static readonly PATH = 'customer_payment_sources'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerPaymentSource>> {\n\t\treturn this.resources.list({ type: CustomerPaymentSources.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerPaymentSourceCreate, options?: ResourcesConfig): Promise<CustomerPaymentSource> {\n\t\treturn this.resources.create({ ...resource, type: CustomerPaymentSources.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerPaymentSource> {\n\t\treturn this.resources.retrieve<CustomerPaymentSource>({ type: CustomerPaymentSources.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerPaymentSourceUpdate, options?: ResourcesConfig): Promise<CustomerPaymentSource> {\n\t\treturn this.resources.update({ ...resource, type: CustomerPaymentSources.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerPaymentSources.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerPaymentSource(resource: any): resource is CustomerPaymentSource {\n\t\treturn resource.type && (resource.type === CustomerPaymentSources.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerPaymentSources.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerPaymentSources.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerPaymentSourceRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerPaymentSources.TYPE } : {id: id.id, type: CustomerPaymentSources.TYPE }\n\t}\n\n}\n\n\nexport default CustomerPaymentSources\n\nexport { CustomerPaymentSource, CustomerPaymentSourceCreate, CustomerPaymentSourceUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\n\n\ntype CustomerSubscriptionRel = ResourceId & { type: typeof CustomerSubscriptions.TYPE }\n\n\ninterface CustomerSubscription extends Resource {\n\t\n\tcustomer_email?: string\n\n\tcustomer?: Customer\n\n}\n\n\ninterface CustomerSubscriptionCreate extends ResourceCreate {\n\t\n\tcustomer_email: string\n\t\n}\n\n\ntype CustomerSubscriptionUpdate = ResourceUpdate\n\n\nclass CustomerSubscriptions extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_subscriptions' = 'customer_subscriptions'\n\t// static readonly PATH = 'customer_subscriptions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerSubscription>> {\n\t\treturn this.resources.list({ type: CustomerSubscriptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerSubscriptionCreate, options?: ResourcesConfig): Promise<CustomerSubscription> {\n\t\treturn this.resources.create({ ...resource, type: CustomerSubscriptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerSubscription> {\n\t\treturn this.resources.retrieve<CustomerSubscription>({ type: CustomerSubscriptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerSubscriptionUpdate, options?: ResourcesConfig): Promise<CustomerSubscription> {\n\t\treturn this.resources.update({ ...resource, type: CustomerSubscriptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerSubscriptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerSubscription(resource: any): resource is CustomerSubscription {\n\t\treturn resource.type && (resource.type === CustomerSubscriptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerSubscriptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerSubscriptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerSubscriptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerSubscriptions.TYPE } : {id: id.id, type: CustomerSubscriptions.TYPE }\n\t}\n\n}\n\n\nexport default CustomerSubscriptions\n\nexport { CustomerSubscription, CustomerSubscriptionCreate, CustomerSubscriptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { CustomerGroup } from './customer_groups'\nimport { CustomerAddress } from './customer_addresses'\nimport { CustomerPaymentSource } from './customer_payment_sources'\nimport { CustomerSubscription } from './customer_subscriptions'\nimport { Order } from './orders'\nimport { OrderSubscription } from './order_subscriptions'\nimport { Return } from './returns'\nimport { Attachment } from './attachments'\n\n\ntype CustomerRel = ResourceId & { type: typeof Customers.TYPE }\ntype CustomerGroupRel = ResourceId & { type: 'customer_groups' }\n\n\ninterface Customer extends Resource {\n\t\n\temail?: string\n\tstatus?: string\n\thas_password?: boolean\n\n\tcustomer_group?: CustomerGroup\n\tcustomer_addresses?: CustomerAddress[]\n\tcustomer_payment_sources?: CustomerPaymentSource[]\n\tcustomer_subscriptions?: CustomerSubscription[]\n\torders?: Order[]\n\torder_subscriptions?: OrderSubscription[]\n\treturns?: Return[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface CustomerCreate extends ResourceCreate {\n\t\n\temail: string\n\tpassword?: string\n\n\tcustomer_group?: CustomerGroupRel\n\n}\n\n\ninterface CustomerUpdate extends ResourceUpdate {\n\t\n\temail?: string\n\tpassword?: string\n\n\tcustomer_group?: CustomerGroupRel\n\n}\n\n\nclass Customers extends ApiResource {\n\n\tstatic readonly TYPE: 'customers' = 'customers'\n\t// static readonly PATH = 'customers'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Customer>> {\n\t\treturn this.resources.list({ type: Customers.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerCreate, options?: ResourcesConfig): Promise<Customer> {\n\t\treturn this.resources.create({ ...resource, type: Customers.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Customer> {\n\t\treturn this.resources.retrieve<Customer>({ type: Customers.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerUpdate, options?: ResourcesConfig): Promise<Customer> {\n\t\treturn this.resources.update({ ...resource, type: Customers.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Customers.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomer(resource: any): resource is Customer {\n\t\treturn resource.type && (resource.type === Customers.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Customers.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Customers.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerRel {\n\t\treturn (typeof id === 'string') ? { id, type: Customers.TYPE } : {id: id.id, type: Customers.TYPE }\n\t}\n\n}\n\n\nexport default Customers\n\nexport { Customer, CustomerCreate, CustomerUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { ShippingMethod } from './shipping_methods'\nimport { Attachment } from './attachments'\n\n\ntype DeliveryLeadTimeRel = ResourceId & { type: typeof DeliveryLeadTimes.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype ShippingMethodRel = ResourceId & { type: 'shipping_methods' }\n\n\ninterface DeliveryLeadTime extends Resource {\n\t\n\tmin_hours?: number\n\tmax_hours?: number\n\tmin_days?: number\n\tmax_days?: number\n\n\tstock_location?: StockLocation\n\tshipping_method?: ShippingMethod\n\tattachments?: Attachment[]\n\n}\n\n\ninterface DeliveryLeadTimeCreate extends ResourceCreate {\n\t\n\tmin_hours: number\n\tmax_hours: number\n\n\tstock_location?: StockLocationRel\n\tshipping_method?: ShippingMethodRel\n\n}\n\n\ninterface DeliveryLeadTimeUpdate extends ResourceUpdate {\n\t\n\tmin_hours?: number\n\tmax_hours?: number\n\n\tstock_location?: StockLocationRel\n\tshipping_method?: ShippingMethodRel\n\n}\n\n\nclass DeliveryLeadTimes extends ApiResource {\n\n\tstatic readonly TYPE: 'delivery_lead_times' = 'delivery_lead_times'\n\t// static readonly PATH = 'delivery_lead_times'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<DeliveryLeadTime>> {\n\t\treturn this.resources.list({ type: DeliveryLeadTimes.TYPE }, params, options)\n\t}\n\n\tasync create(resource: DeliveryLeadTimeCreate, options?: ResourcesConfig): Promise<DeliveryLeadTime> {\n\t\treturn this.resources.create({ ...resource, type: DeliveryLeadTimes.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<DeliveryLeadTime> {\n\t\treturn this.resources.retrieve<DeliveryLeadTime>({ type: DeliveryLeadTimes.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: DeliveryLeadTimeUpdate, options?: ResourcesConfig): Promise<DeliveryLeadTime> {\n\t\treturn this.resources.update({ ...resource, type: DeliveryLeadTimes.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: DeliveryLeadTimes.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisDeliveryLeadTime(resource: any): resource is DeliveryLeadTime {\n\t\treturn resource.type && (resource.type === DeliveryLeadTimes.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(DeliveryLeadTimes.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(DeliveryLeadTimes.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): DeliveryLeadTimeRel {\n\t\treturn (typeof id === 'string') ? { id, type: DeliveryLeadTimes.TYPE } : {id: id.id, type: DeliveryLeadTimes.TYPE }\n\t}\n\n}\n\n\nexport default DeliveryLeadTimes\n\nexport { DeliveryLeadTime, DeliveryLeadTimeCreate, DeliveryLeadTimeUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { Webhook } from './webhooks'\n\n\ntype EventCallbackRel = ResourceId & { type: typeof EventCallbacks.TYPE }\n\n\ninterface EventCallback extends Resource {\n\t\n\tcallback_url?: string\n\tpayload?: object\n\tresponse_code?: string\n\tresponse_message?: string\n\n\twebhook?: Webhook\n\n}\n\n\nclass EventCallbacks extends ApiResource {\n\n\tstatic readonly TYPE: 'event_callbacks' = 'event_callbacks'\n\t// static readonly PATH = 'event_callbacks'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<EventCallback>> {\n\t\treturn this.resources.list({ type: EventCallbacks.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisEventCallback(resource: any): resource is EventCallback {\n\t\treturn resource.type && (resource.type === EventCallbacks.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(EventCallbacks.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(EventCallbacks.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): EventCallbackRel {\n\t\treturn (typeof id === 'string') ? { id, type: EventCallbacks.TYPE } : {id: id.id, type: EventCallbacks.TYPE }\n\t}\n\n}\n\n\nexport default EventCallbacks\n\nexport { EventCallback }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { ExternalPayment } from './external_payments'\n\n\ntype ExternalGatewayRel = ResourceId & { type: typeof ExternalGateways.TYPE }\n\n\ninterface ExternalGateway extends Resource {\n\t\n\tname?: string\n\tshared_secret?: string\n\tauthorize_url?: string\n\tcapture_url?: string\n\tvoid_url?: string\n\trefund_url?: string\n\n\tpayment_methods?: PaymentMethod[]\n\texternal_payments?: ExternalPayment[]\n\n}\n\n\ninterface ExternalGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tauthorize_url?: string\n\tcapture_url?: string\n\tvoid_url?: string\n\trefund_url?: string\n\t\n}\n\n\ninterface ExternalGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tauthorize_url?: string\n\tcapture_url?: string\n\tvoid_url?: string\n\trefund_url?: string\n\t\n}\n\n\nclass ExternalGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'external_gateways' = 'external_gateways'\n\t// static readonly PATH = 'external_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ExternalGateway>> {\n\t\treturn this.resources.list({ type: ExternalGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ExternalGatewayCreate, options?: ResourcesConfig): Promise<ExternalGateway> {\n\t\treturn this.resources.create({ ...resource, type: ExternalGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ExternalGateway> {\n\t\treturn this.resources.retrieve<ExternalGateway>({ type: ExternalGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ExternalGatewayUpdate, options?: ResourcesConfig): Promise<ExternalGateway> {\n\t\treturn this.resources.update({ ...resource, type: ExternalGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ExternalGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisExternalGateway(resource: any): resource is ExternalGateway {\n\t\treturn resource.type && (resource.type === ExternalGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ExternalGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ExternalGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ExternalGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: ExternalGateways.TYPE } : {id: id.id, type: ExternalGateways.TYPE }\n\t}\n\n}\n\n\nexport default ExternalGateways\n\nexport { ExternalGateway, ExternalGatewayCreate, ExternalGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype ExternalPaymentRel = ResourceId & { type: typeof ExternalPayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface ExternalPayment extends Resource {\n\t\n\tpayment_source_token?: string\n\toptions?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface ExternalPaymentCreate extends ResourceCreate {\n\t\n\tpayment_source_token: string\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\ninterface ExternalPaymentUpdate extends ResourceUpdate {\n\t\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\nclass ExternalPayments extends ApiResource {\n\n\tstatic readonly TYPE: 'external_payments' = 'external_payments'\n\t// static readonly PATH = 'external_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ExternalPayment>> {\n\t\treturn this.resources.list({ type: ExternalPayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ExternalPaymentCreate, options?: ResourcesConfig): Promise<ExternalPayment> {\n\t\treturn this.resources.create({ ...resource, type: ExternalPayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ExternalPayment> {\n\t\treturn this.resources.retrieve<ExternalPayment>({ type: ExternalPayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ExternalPaymentUpdate, options?: ResourcesConfig): Promise<ExternalPayment> {\n\t\treturn this.resources.update({ ...resource, type: ExternalPayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ExternalPayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisExternalPayment(resource: any): resource is ExternalPayment {\n\t\treturn resource.type && (resource.type === ExternalPayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ExternalPayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ExternalPayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ExternalPaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: ExternalPayments.TYPE } : {id: id.id, type: ExternalPayments.TYPE }\n\t}\n\n}\n\n\nexport default ExternalPayments\n\nexport { ExternalPayment, ExternalPaymentCreate, ExternalPaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\n\n\ntype ExternalPromotionRel = ResourceId & { type: typeof ExternalPromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\n\n\ninterface ExternalPromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\tpromotion_url?: string\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ExternalPromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\tpromotion_url: string\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\ninterface ExternalPromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\tpromotion_url?: string\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\nclass ExternalPromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'external_promotions' = 'external_promotions'\n\t// static readonly PATH = 'external_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ExternalPromotion>> {\n\t\treturn this.resources.list({ type: ExternalPromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ExternalPromotionCreate, options?: ResourcesConfig): Promise<ExternalPromotion> {\n\t\treturn this.resources.create({ ...resource, type: ExternalPromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ExternalPromotion> {\n\t\treturn this.resources.retrieve<ExternalPromotion>({ type: ExternalPromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ExternalPromotionUpdate, options?: ResourcesConfig): Promise<ExternalPromotion> {\n\t\treturn this.resources.update({ ...resource, type: ExternalPromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ExternalPromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisExternalPromotion(resource: any): resource is ExternalPromotion {\n\t\treturn resource.type && (resource.type === ExternalPromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ExternalPromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ExternalPromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ExternalPromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: ExternalPromotions.TYPE } : {id: id.id, type: ExternalPromotions.TYPE }\n\t}\n\n}\n\n\nexport default ExternalPromotions\n\nexport { ExternalPromotion, ExternalPromotionCreate, ExternalPromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype ExternalTaxCalculatorRel = ResourceId & { type: typeof ExternalTaxCalculators.TYPE }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\n\n\ninterface ExternalTaxCalculator extends Resource {\n\t\n\tname?: string\n\ttax_calculator_url?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ExternalTaxCalculatorCreate extends ResourceCreate {\n\t\n\tname: string\n\ttax_calculator_url: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\ninterface ExternalTaxCalculatorUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\ttax_calculator_url?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\nclass ExternalTaxCalculators extends ApiResource {\n\n\tstatic readonly TYPE: 'external_tax_calculators' = 'external_tax_calculators'\n\t// static readonly PATH = 'external_tax_calculators'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ExternalTaxCalculator>> {\n\t\treturn this.resources.list({ type: ExternalTaxCalculators.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ExternalTaxCalculatorCreate, options?: ResourcesConfig): Promise<ExternalTaxCalculator> {\n\t\treturn this.resources.create({ ...resource, type: ExternalTaxCalculators.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ExternalTaxCalculator> {\n\t\treturn this.resources.retrieve<ExternalTaxCalculator>({ type: ExternalTaxCalculators.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ExternalTaxCalculatorUpdate, options?: ResourcesConfig): Promise<ExternalTaxCalculator> {\n\t\treturn this.resources.update({ ...resource, type: ExternalTaxCalculators.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ExternalTaxCalculators.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisExternalTaxCalculator(resource: any): resource is ExternalTaxCalculator {\n\t\treturn resource.type && (resource.type === ExternalTaxCalculators.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ExternalTaxCalculators.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ExternalTaxCalculators.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ExternalTaxCalculatorRel {\n\t\treturn (typeof id === 'string') ? { id, type: ExternalTaxCalculators.TYPE } : {id: id.id, type: ExternalTaxCalculators.TYPE }\n\t}\n\n}\n\n\nexport default ExternalTaxCalculators\n\nexport { ExternalTaxCalculator, ExternalTaxCalculatorCreate, ExternalTaxCalculatorUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\n\n\ntype FixedAmountPromotionRel = ResourceId & { type: typeof FixedAmountPromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\n\n\ninterface FixedAmountPromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\tfixed_amount_cents?: number\n\tfixed_amount_float?: number\n\tformatted_fixed_amount?: string\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\n}\n\n\ninterface FixedAmountPromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\tfixed_amount_cents: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\ninterface FixedAmountPromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\tfixed_amount_cents?: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\nclass FixedAmountPromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'fixed_amount_promotions' = 'fixed_amount_promotions'\n\t// static readonly PATH = 'fixed_amount_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<FixedAmountPromotion>> {\n\t\treturn this.resources.list({ type: FixedAmountPromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: FixedAmountPromotionCreate, options?: ResourcesConfig): Promise<FixedAmountPromotion> {\n\t\treturn this.resources.create({ ...resource, type: FixedAmountPromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<FixedAmountPromotion> {\n\t\treturn this.resources.retrieve<FixedAmountPromotion>({ type: FixedAmountPromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: FixedAmountPromotionUpdate, options?: ResourcesConfig): Promise<FixedAmountPromotion> {\n\t\treturn this.resources.update({ ...resource, type: FixedAmountPromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: FixedAmountPromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisFixedAmountPromotion(resource: any): resource is FixedAmountPromotion {\n\t\treturn resource.type && (resource.type === FixedAmountPromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(FixedAmountPromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(FixedAmountPromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): FixedAmountPromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: FixedAmountPromotions.TYPE } : {id: id.id, type: FixedAmountPromotions.TYPE }\n\t}\n\n}\n\n\nexport default FixedAmountPromotions\n\nexport { FixedAmountPromotion, FixedAmountPromotionCreate, FixedAmountPromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\n\n\ntype FreeShippingPromotionRel = ResourceId & { type: typeof FreeShippingPromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\n\n\ninterface FreeShippingPromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\n}\n\n\ninterface FreeShippingPromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\ninterface FreeShippingPromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\nclass FreeShippingPromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'free_shipping_promotions' = 'free_shipping_promotions'\n\t// static readonly PATH = 'free_shipping_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<FreeShippingPromotion>> {\n\t\treturn this.resources.list({ type: FreeShippingPromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: FreeShippingPromotionCreate, options?: ResourcesConfig): Promise<FreeShippingPromotion> {\n\t\treturn this.resources.create({ ...resource, type: FreeShippingPromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<FreeShippingPromotion> {\n\t\treturn this.resources.retrieve<FreeShippingPromotion>({ type: FreeShippingPromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: FreeShippingPromotionUpdate, options?: ResourcesConfig): Promise<FreeShippingPromotion> {\n\t\treturn this.resources.update({ ...resource, type: FreeShippingPromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: FreeShippingPromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisFreeShippingPromotion(resource: any): resource is FreeShippingPromotion {\n\t\treturn resource.type && (resource.type === FreeShippingPromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(FreeShippingPromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(FreeShippingPromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): FreeShippingPromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: FreeShippingPromotions.TYPE } : {id: id.id, type: FreeShippingPromotions.TYPE }\n\t}\n\n}\n\n\nexport default FreeShippingPromotions\n\nexport { FreeShippingPromotion, FreeShippingPromotionCreate, FreeShippingPromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { Address } from './addresses'\nimport { Attachment } from './attachments'\n\n\ntype GeocoderRel = ResourceId & { type: typeof Geocoders.TYPE }\n\n\ninterface Geocoder extends Resource {\n\t\n\tname?: string\n\n\taddresses?: Address[]\n\tattachments?: Attachment[]\n\n}\n\n\nclass Geocoders extends ApiResource {\n\n\tstatic readonly TYPE: 'geocoders' = 'geocoders'\n\t// static readonly PATH = 'geocoders'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Geocoder>> {\n\t\treturn this.resources.list({ type: Geocoders.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisGeocoder(resource: any): resource is Geocoder {\n\t\treturn resource.type && (resource.type === Geocoders.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Geocoders.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Geocoders.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): GeocoderRel {\n\t\treturn (typeof id === 'string') ? { id, type: Geocoders.TYPE } : {id: id.id, type: Geocoders.TYPE }\n\t}\n\n}\n\n\nexport default Geocoders\n\nexport { Geocoder }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\nimport { Attachment } from './attachments'\n\n\ntype GiftCardRecipientRel = ResourceId & { type: typeof GiftCardRecipients.TYPE }\ntype CustomerRel = ResourceId & { type: 'customers' }\n\n\ninterface GiftCardRecipient extends Resource {\n\t\n\temail?: string\n\tfirst_name?: string\n\tlast_name?: string\n\n\tcustomer?: Customer\n\tattachments?: Attachment[]\n\n}\n\n\ninterface GiftCardRecipientCreate extends ResourceCreate {\n\t\n\temail: string\n\tfirst_name?: string\n\tlast_name?: string\n\n\tcustomer?: CustomerRel\n\n}\n\n\ninterface GiftCardRecipientUpdate extends ResourceUpdate {\n\t\n\temail?: string\n\tfirst_name?: string\n\tlast_name?: string\n\n\tcustomer?: CustomerRel\n\n}\n\n\nclass GiftCardRecipients extends ApiResource {\n\n\tstatic readonly TYPE: 'gift_card_recipients' = 'gift_card_recipients'\n\t// static readonly PATH = 'gift_card_recipients'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<GiftCardRecipient>> {\n\t\treturn this.resources.list({ type: GiftCardRecipients.TYPE }, params, options)\n\t}\n\n\tasync create(resource: GiftCardRecipientCreate, options?: ResourcesConfig): Promise<GiftCardRecipient> {\n\t\treturn this.resources.create({ ...resource, type: GiftCardRecipients.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<GiftCardRecipient> {\n\t\treturn this.resources.retrieve<GiftCardRecipient>({ type: GiftCardRecipients.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: GiftCardRecipientUpdate, options?: ResourcesConfig): Promise<GiftCardRecipient> {\n\t\treturn this.resources.update({ ...resource, type: GiftCardRecipients.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: GiftCardRecipients.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisGiftCardRecipient(resource: any): resource is GiftCardRecipient {\n\t\treturn resource.type && (resource.type === GiftCardRecipients.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(GiftCardRecipients.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(GiftCardRecipients.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): GiftCardRecipientRel {\n\t\treturn (typeof id === 'string') ? { id, type: GiftCardRecipients.TYPE } : {id: id.id, type: GiftCardRecipients.TYPE }\n\t}\n\n}\n\n\nexport default GiftCardRecipients\n\nexport { GiftCardRecipient, GiftCardRecipientCreate, GiftCardRecipientUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { GiftCardRecipient } from './gift_card_recipients'\nimport { Attachment } from './attachments'\n\n\ntype GiftCardRel = ResourceId & { type: typeof GiftCards.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype GiftCardRecipientRel = ResourceId & { type: 'gift_card_recipients' }\n\n\ninterface GiftCard extends Resource {\n\t\n\tstatus?: string\n\tcode?: string\n\tcurrency_code?: string\n\tinitial_balance_cents?: number\n\tinitial_balance_float?: number\n\tformatted_initial_balance?: string\n\tbalance_cents?: number\n\tbalance_float?: number\n\tformatted_balance?: string\n\tbalance_max_cents?: string\n\tbalance_max_float?: number\n\tformatted_balance_max?: string\n\tbalance_log?: object[]\n\tsingle_use?: boolean\n\trechargeable?: boolean\n\timage_url?: string\n\texpires_at?: string\n\trecipient_email?: string\n\t_balance_change_cents?: number\n\n\tmarket?: Market\n\tgift_card_recipient?: GiftCardRecipient\n\tattachments?: Attachment[]\n\n}\n\n\ninterface GiftCardCreate extends ResourceCreate {\n\t\n\tcode?: string\n\tcurrency_code: string\n\tbalance_cents: number\n\tbalance_max_cents?: string\n\tsingle_use?: boolean\n\trechargeable?: boolean\n\timage_url?: string\n\texpires_at?: string\n\trecipient_email?: string\n\n\tmarket?: MarketRel\n\tgift_card_recipient?: GiftCardRecipientRel\n\n}\n\n\ninterface GiftCardUpdate extends ResourceUpdate {\n\t\n\tcurrency_code?: string\n\tbalance_cents?: number\n\tbalance_max_cents?: string\n\tsingle_use?: boolean\n\trechargeable?: boolean\n\timage_url?: string\n\texpires_at?: string\n\trecipient_email?: string\n\t_purchase?: boolean\n\t_activate?: boolean\n\t_deactivate?: boolean\n\t_balance_change_cents?: number\n\n\tmarket?: MarketRel\n\tgift_card_recipient?: GiftCardRecipientRel\n\n}\n\n\nclass GiftCards extends ApiResource {\n\n\tstatic readonly TYPE: 'gift_cards' = 'gift_cards'\n\t// static readonly PATH = 'gift_cards'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<GiftCard>> {\n\t\treturn this.resources.list({ type: GiftCards.TYPE }, params, options)\n\t}\n\n\tasync create(resource: GiftCardCreate, options?: ResourcesConfig): Promise<GiftCard> {\n\t\treturn this.resources.create({ ...resource, type: GiftCards.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<GiftCard> {\n\t\treturn this.resources.retrieve<GiftCard>({ type: GiftCards.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: GiftCardUpdate, options?: ResourcesConfig): Promise<GiftCard> {\n\t\treturn this.resources.update({ ...resource, type: GiftCards.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: GiftCards.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisGiftCard(resource: any): resource is GiftCard {\n\t\treturn resource.type && (resource.type === GiftCards.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(GiftCards.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(GiftCards.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): GiftCardRel {\n\t\treturn (typeof id === 'string') ? { id, type: GiftCards.TYPE } : {id: id.id, type: GiftCards.TYPE }\n\t}\n\n}\n\n\nexport default GiftCards\n\nexport { GiftCard, GiftCardCreate, GiftCardUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Address } from './addresses'\nimport { Attachment } from './attachments'\n\n\ntype GoogleGeocoderRel = ResourceId & { type: typeof GoogleGeocoders.TYPE }\n\n\ninterface GoogleGeocoder extends Resource {\n\t\n\tname?: string\n\n\taddresses?: Address[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface GoogleGeocoderCreate extends ResourceCreate {\n\t\n\tname: string\n\tapi_key: string\n\t\n}\n\n\ninterface GoogleGeocoderUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tapi_key?: string\n\t\n}\n\n\nclass GoogleGeocoders extends ApiResource {\n\n\tstatic readonly TYPE: 'google_geocoders' = 'google_geocoders'\n\t// static readonly PATH = 'google_geocoders'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<GoogleGeocoder>> {\n\t\treturn this.resources.list({ type: GoogleGeocoders.TYPE }, params, options)\n\t}\n\n\tasync create(resource: GoogleGeocoderCreate, options?: ResourcesConfig): Promise<GoogleGeocoder> {\n\t\treturn this.resources.create({ ...resource, type: GoogleGeocoders.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<GoogleGeocoder> {\n\t\treturn this.resources.retrieve<GoogleGeocoder>({ type: GoogleGeocoders.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: GoogleGeocoderUpdate, options?: ResourcesConfig): Promise<GoogleGeocoder> {\n\t\treturn this.resources.update({ ...resource, type: GoogleGeocoders.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: GoogleGeocoders.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisGoogleGeocoder(resource: any): resource is GoogleGeocoder {\n\t\treturn resource.type && (resource.type === GoogleGeocoders.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(GoogleGeocoders.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(GoogleGeocoders.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): GoogleGeocoderRel {\n\t\treturn (typeof id === 'string') ? { id, type: GoogleGeocoders.TYPE } : {id: id.id, type: GoogleGeocoders.TYPE }\n\t}\n\n}\n\n\nexport default GoogleGeocoders\n\nexport { GoogleGeocoder, GoogleGeocoderCreate, GoogleGeocoderUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\n\n\ntype ImportRel = ResourceId & { type: typeof Imports.TYPE }\n\n\ninterface Import extends Resource {\n\t\n\tresource_type?: string\n\tparent_resource_id?: string\n\tstatus?: string\n\tstarted_at?: string\n\tcompleted_at?: string\n\tinterrupted_at?: string\n\tinputs?: object[]\n\tinputs_size?: number\n\terrors_count?: number\n\twarnings_count?: number\n\tdestroyed_count?: number\n\tprocessed_count?: number\n\terrors_log?: object\n\twarnings_log?: object\n\tcleanup_records?: boolean\n\t\n}\n\n\ninterface ImportCreate extends ResourceCreate {\n\t\n\tresource_type: string\n\tparent_resource_id?: string\n\tinputs: object[]\n\tcleanup_records?: boolean\n\t\n}\n\n\nclass Imports extends ApiResource {\n\n\tstatic readonly TYPE: 'imports' = 'imports'\n\t// static readonly PATH = 'imports'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Import>> {\n\t\treturn this.resources.list({ type: Imports.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ImportCreate, options?: ResourcesConfig): Promise<Import> {\n\t\treturn this.resources.create({ ...resource, type: Imports.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Import> {\n\t\treturn this.resources.retrieve<Import>({ type: Imports.TYPE, id }, params, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Imports.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisImport(resource: any): resource is Import {\n\t\treturn resource.type && (resource.type === Imports.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Imports.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Imports.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ImportRel {\n\t\treturn (typeof id === 'string') ? { id, type: Imports.TYPE } : {id: id.id, type: Imports.TYPE }\n\t}\n\n}\n\n\nexport default Imports\n\nexport { Import, ImportCreate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Customer } from './customers'\nimport { Sku } from './skus'\n\n\ntype InStockSubscriptionRel = ResourceId & { type: typeof InStockSubscriptions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface InStockSubscription extends Resource {\n\t\n\tstatus?: string\n\tcustomer_email?: string\n\tsku_code?: string\n\tstock_threshold?: number\n\n\tmarket?: Market\n\tcustomer?: Customer\n\tsku?: Sku\n\n}\n\n\ninterface InStockSubscriptionCreate extends ResourceCreate {\n\t\n\tcustomer_email?: string\n\tsku_code?: string\n\tstock_threshold?: number\n\n\tmarket?: MarketRel\n\tcustomer?: CustomerRel\n\tsku?: SkuRel\n\n}\n\n\ninterface InStockSubscriptionUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\tstock_threshold?: number\n\t_activate?: boolean\n\t_deactivate?: boolean\n\n\tmarket?: MarketRel\n\tcustomer?: CustomerRel\n\tsku?: SkuRel\n\n}\n\n\nclass InStockSubscriptions extends ApiResource {\n\n\tstatic readonly TYPE: 'in_stock_subscriptions' = 'in_stock_subscriptions'\n\t// static readonly PATH = 'in_stock_subscriptions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<InStockSubscription>> {\n\t\treturn this.resources.list({ type: InStockSubscriptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: InStockSubscriptionCreate, options?: ResourcesConfig): Promise<InStockSubscription> {\n\t\treturn this.resources.create({ ...resource, type: InStockSubscriptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<InStockSubscription> {\n\t\treturn this.resources.retrieve<InStockSubscription>({ type: InStockSubscriptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: InStockSubscriptionUpdate, options?: ResourcesConfig): Promise<InStockSubscription> {\n\t\treturn this.resources.update({ ...resource, type: InStockSubscriptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: InStockSubscriptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisInStockSubscription(resource: any): resource is InStockSubscription {\n\t\treturn resource.type && (resource.type === InStockSubscriptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(InStockSubscriptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(InStockSubscriptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): InStockSubscriptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: InStockSubscriptions.TYPE } : {id: id.id, type: InStockSubscriptions.TYPE }\n\t}\n\n}\n\n\nexport default InStockSubscriptions\n\nexport { InStockSubscription, InStockSubscriptionCreate, InStockSubscriptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { InventoryStockLocation } from './inventory_stock_locations'\nimport { InventoryReturnLocation } from './inventory_return_locations'\nimport { Attachment } from './attachments'\n\n\ntype InventoryModelRel = ResourceId & { type: typeof InventoryModels.TYPE }\n\n\ninterface InventoryModel extends Resource {\n\t\n\tname?: string\n\tstrategy?: string\n\tstock_locations_cutoff?: number\n\n\tinventory_stock_locations?: InventoryStockLocation[]\n\tinventory_return_locations?: InventoryReturnLocation[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface InventoryModelCreate extends ResourceCreate {\n\t\n\tname: string\n\tstrategy: string\n\tstock_locations_cutoff?: number\n\t\n}\n\n\ninterface InventoryModelUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstrategy?: string\n\tstock_locations_cutoff?: number\n\t\n}\n\n\nclass InventoryModels extends ApiResource {\n\n\tstatic readonly TYPE: 'inventory_models' = 'inventory_models'\n\t// static readonly PATH = 'inventory_models'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<InventoryModel>> {\n\t\treturn this.resources.list({ type: InventoryModels.TYPE }, params, options)\n\t}\n\n\tasync create(resource: InventoryModelCreate, options?: ResourcesConfig): Promise<InventoryModel> {\n\t\treturn this.resources.create({ ...resource, type: InventoryModels.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<InventoryModel> {\n\t\treturn this.resources.retrieve<InventoryModel>({ type: InventoryModels.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: InventoryModelUpdate, options?: ResourcesConfig): Promise<InventoryModel> {\n\t\treturn this.resources.update({ ...resource, type: InventoryModels.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: InventoryModels.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisInventoryModel(resource: any): resource is InventoryModel {\n\t\treturn resource.type && (resource.type === InventoryModels.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(InventoryModels.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(InventoryModels.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): InventoryModelRel {\n\t\treturn (typeof id === 'string') ? { id, type: InventoryModels.TYPE } : {id: id.id, type: InventoryModels.TYPE }\n\t}\n\n}\n\n\nexport default InventoryModels\n\nexport { InventoryModel, InventoryModelCreate, InventoryModelUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { InventoryModel } from './inventory_models'\n\n\ntype InventoryReturnLocationRel = ResourceId & { type: typeof InventoryReturnLocations.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype InventoryModelRel = ResourceId & { type: 'inventory_models' }\n\n\ninterface InventoryReturnLocation extends Resource {\n\t\n\tpriority?: number\n\n\tstock_location?: StockLocation\n\tinventory_model?: InventoryModel\n\n}\n\n\ninterface InventoryReturnLocationCreate extends ResourceCreate {\n\t\n\tpriority: number\n\n\tstock_location?: StockLocationRel\n\tinventory_model?: InventoryModelRel\n\n}\n\n\ninterface InventoryReturnLocationUpdate extends ResourceUpdate {\n\t\n\tpriority?: number\n\n\tstock_location?: StockLocationRel\n\tinventory_model?: InventoryModelRel\n\n}\n\n\nclass InventoryReturnLocations extends ApiResource {\n\n\tstatic readonly TYPE: 'inventory_return_locations' = 'inventory_return_locations'\n\t// static readonly PATH = 'inventory_return_locations'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<InventoryReturnLocation>> {\n\t\treturn this.resources.list({ type: InventoryReturnLocations.TYPE }, params, options)\n\t}\n\n\tasync create(resource: InventoryReturnLocationCreate, options?: ResourcesConfig): Promise<InventoryReturnLocation> {\n\t\treturn this.resources.create({ ...resource, type: InventoryReturnLocations.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<InventoryReturnLocation> {\n\t\treturn this.resources.retrieve<InventoryReturnLocation>({ type: InventoryReturnLocations.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: InventoryReturnLocationUpdate, options?: ResourcesConfig): Promise<InventoryReturnLocation> {\n\t\treturn this.resources.update({ ...resource, type: InventoryReturnLocations.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: InventoryReturnLocations.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisInventoryReturnLocation(resource: any): resource is InventoryReturnLocation {\n\t\treturn resource.type && (resource.type === InventoryReturnLocations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(InventoryReturnLocations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(InventoryReturnLocations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): InventoryReturnLocationRel {\n\t\treturn (typeof id === 'string') ? { id, type: InventoryReturnLocations.TYPE } : {id: id.id, type: InventoryReturnLocations.TYPE }\n\t}\n\n}\n\n\nexport default InventoryReturnLocations\n\nexport { InventoryReturnLocation, InventoryReturnLocationCreate, InventoryReturnLocationUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { InventoryModel } from './inventory_models'\n\n\ntype InventoryStockLocationRel = ResourceId & { type: typeof InventoryStockLocations.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype InventoryModelRel = ResourceId & { type: 'inventory_models' }\n\n\ninterface InventoryStockLocation extends Resource {\n\t\n\tpriority?: number\n\ton_hold?: boolean\n\n\tstock_location?: StockLocation\n\tinventory_model?: InventoryModel\n\n}\n\n\ninterface InventoryStockLocationCreate extends ResourceCreate {\n\t\n\tpriority: number\n\ton_hold?: boolean\n\n\tstock_location?: StockLocationRel\n\tinventory_model?: InventoryModelRel\n\n}\n\n\ninterface InventoryStockLocationUpdate extends ResourceUpdate {\n\t\n\tpriority?: number\n\ton_hold?: boolean\n\n\tstock_location?: StockLocationRel\n\tinventory_model?: InventoryModelRel\n\n}\n\n\nclass InventoryStockLocations extends ApiResource {\n\n\tstatic readonly TYPE: 'inventory_stock_locations' = 'inventory_stock_locations'\n\t// static readonly PATH = 'inventory_stock_locations'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<InventoryStockLocation>> {\n\t\treturn this.resources.list({ type: InventoryStockLocations.TYPE }, params, options)\n\t}\n\n\tasync create(resource: InventoryStockLocationCreate, options?: ResourcesConfig): Promise<InventoryStockLocation> {\n\t\treturn this.resources.create({ ...resource, type: InventoryStockLocations.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<InventoryStockLocation> {\n\t\treturn this.resources.retrieve<InventoryStockLocation>({ type: InventoryStockLocations.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: InventoryStockLocationUpdate, options?: ResourcesConfig): Promise<InventoryStockLocation> {\n\t\treturn this.resources.update({ ...resource, type: InventoryStockLocations.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: InventoryStockLocations.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisInventoryStockLocation(resource: any): resource is InventoryStockLocation {\n\t\treturn resource.type && (resource.type === InventoryStockLocations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(InventoryStockLocations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(InventoryStockLocations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): InventoryStockLocationRel {\n\t\treturn (typeof id === 'string') ? { id, type: InventoryStockLocations.TYPE } : {id: id.id, type: InventoryStockLocations.TYPE }\n\t}\n\n}\n\n\nexport default InventoryStockLocations\n\nexport { InventoryStockLocation, InventoryStockLocationCreate, InventoryStockLocationUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { LineItem } from './line_items'\nimport { SkuOption } from './sku_options'\n\n\ntype LineItemOptionRel = ResourceId & { type: typeof LineItemOptions.TYPE }\ntype LineItemRel = ResourceId & { type: 'line_items' }\ntype SkuOptionRel = ResourceId & { type: 'sku_options' }\n\n\ninterface LineItemOption extends Resource {\n\t\n\tname?: string\n\tquantity?: number\n\tcurrency_code?: string\n\tunit_amount_cents?: number\n\tunit_amount_float?: number\n\tformatted_unit_amount?: string\n\ttotal_amount_cents?: number\n\ttotal_amount_float?: number\n\tformatted_total_amount?: string\n\tdelay_hours?: number\n\tdelay_days?: number\n\toptions?: object\n\n\tline_item?: LineItem\n\tsku_option?: SkuOption\n\n}\n\n\ninterface LineItemOptionCreate extends ResourceCreate {\n\t\n\tname?: string\n\tquantity: number\n\toptions: object\n\n\tline_item?: LineItemRel\n\tsku_option?: SkuOptionRel\n\n}\n\n\ninterface LineItemOptionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tquantity?: number\n\toptions?: object\n\n\tsku_option?: SkuOptionRel\n\n}\n\n\nclass LineItemOptions extends ApiResource {\n\n\tstatic readonly TYPE: 'line_item_options' = 'line_item_options'\n\t// static readonly PATH = 'line_item_options'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<LineItemOption>> {\n\t\treturn this.resources.list({ type: LineItemOptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: LineItemOptionCreate, options?: ResourcesConfig): Promise<LineItemOption> {\n\t\treturn this.resources.create({ ...resource, type: LineItemOptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<LineItemOption> {\n\t\treturn this.resources.retrieve<LineItemOption>({ type: LineItemOptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: LineItemOptionUpdate, options?: ResourcesConfig): Promise<LineItemOption> {\n\t\treturn this.resources.update({ ...resource, type: LineItemOptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: LineItemOptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisLineItemOption(resource: any): resource is LineItemOption {\n\t\treturn resource.type && (resource.type === LineItemOptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(LineItemOptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(LineItemOptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): LineItemOptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: LineItemOptions.TYPE } : {id: id.id, type: LineItemOptions.TYPE }\n\t}\n\n}\n\n\nexport default LineItemOptions\n\nexport { LineItemOption, LineItemOptionCreate, LineItemOptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Adjustment } from './adjustments'\nimport { Bundle } from './bundles'\nimport { ExternalPromotion } from './external_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { GiftCard } from './gift_cards'\nimport { PaymentMethod } from './payment_methods'\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { Shipment } from './shipments'\nimport { Sku } from './skus'\nimport { LineItemOption } from './line_item_options'\nimport { StockLineItem } from './stock_line_items'\nimport { StockTransfer } from './stock_transfers'\n\n\ntype LineItemRel = ResourceId & { type: typeof LineItems.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\ntype AdjustmentRel = ResourceId & { type: 'adjustments' }\ntype BundleRel = ResourceId & { type: 'bundles' }\ntype ExternalPromotionRel = ResourceId & { type: 'external_promotions' }\ntype FixedAmountPromotionRel = ResourceId & { type: 'fixed_amount_promotions' }\ntype FreeShippingPromotionRel = ResourceId & { type: 'free_shipping_promotions' }\ntype GiftCardRel = ResourceId & { type: 'gift_cards' }\ntype PaymentMethodRel = ResourceId & { type: 'payment_methods' }\ntype PercentageDiscountPromotionRel = ResourceId & { type: 'percentage_discount_promotions' }\ntype ShipmentRel = ResourceId & { type: 'shipments' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface LineItem extends Resource {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tquantity?: number\n\tcurrency_code?: string\n\tunit_amount_cents?: number\n\tunit_amount_float?: number\n\tformatted_unit_amount?: string\n\toptions_amount_cents?: number\n\toptions_amount_float?: number\n\tformatted_options_amount?: string\n\tdiscount_cents?: number\n\tdiscount_float?: number\n\tformatted_discount?: string\n\ttotal_amount_cents?: number\n\ttotal_amount_float?: number\n\tformatted_total_amount?: string\n\ttax_amount_cents?: number\n\ttax_amount_float?: number\n\tformatted_tax_amount?: string\n\tname?: string\n\timage_url?: string\n\tdiscount_breakdown?: object\n\ttax_rate?: number\n\ttax_breakdown?: object\n\titem_type?: string\n\n\torder?: Order\n\titem?: Adjustment | Bundle | ExternalPromotion | FixedAmountPromotion | FreeShippingPromotion | GiftCard | PaymentMethod | PercentageDiscountPromotion | Shipment | Sku\n\tline_item_options?: LineItemOption[]\n\t/**\n\t* @deprecated This field should not be used as it may be removed in the future without notice\n\t*/\n\tshipment_line_items?: object[]\n\tstock_line_items?: StockLineItem[]\n\tstock_transfers?: StockTransfer[]\n\n}\n\n\ninterface LineItemCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tquantity: number\n\t_external_price?: boolean\n\t_update_quantity?: boolean\n\tunit_amount_cents?: number\n\tname?: string\n\timage_url?: string\n\titem_type?: string\n\n\torder?: OrderRel\n\titem?: AdjustmentRel | BundleRel | ExternalPromotionRel | FixedAmountPromotionRel | FreeShippingPromotionRel | GiftCardRel | PaymentMethodRel | PercentageDiscountPromotionRel | ShipmentRel | SkuRel\n\n}\n\n\ninterface LineItemUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tquantity?: number\n\tname?: string\n\timage_url?: string\n\t\n}\n\n\nclass LineItems extends ApiResource {\n\n\tstatic readonly TYPE: 'line_items' = 'line_items'\n\t// static readonly PATH = 'line_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<LineItem>> {\n\t\treturn this.resources.list({ type: LineItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: LineItemCreate, options?: ResourcesConfig): Promise<LineItem> {\n\t\treturn this.resources.create({ ...resource, type: LineItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<LineItem> {\n\t\treturn this.resources.retrieve<LineItem>({ type: LineItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: LineItemUpdate, options?: ResourcesConfig): Promise<LineItem> {\n\t\treturn this.resources.update({ ...resource, type: LineItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: LineItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisLineItem(resource: any): resource is LineItem {\n\t\treturn resource.type && (resource.type === LineItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(LineItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(LineItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): LineItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: LineItems.TYPE } : {id: id.id, type: LineItems.TYPE }\n\t}\n\n}\n\n\nexport default LineItems\n\nexport { LineItem, LineItemCreate, LineItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\n\n\ntype ManualGatewayRel = ResourceId & { type: typeof ManualGateways.TYPE }\n\n\ninterface ManualGateway extends Resource {\n\t\n\tname?: string\n\trequire_capture?: boolean\n\n\tpayment_methods?: PaymentMethod[]\n\n}\n\n\ninterface ManualGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\trequire_capture?: boolean\n\t\n}\n\n\ninterface ManualGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\trequire_capture?: boolean\n\t\n}\n\n\nclass ManualGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'manual_gateways' = 'manual_gateways'\n\t// static readonly PATH = 'manual_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ManualGateway>> {\n\t\treturn this.resources.list({ type: ManualGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ManualGatewayCreate, options?: ResourcesConfig): Promise<ManualGateway> {\n\t\treturn this.resources.create({ ...resource, type: ManualGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ManualGateway> {\n\t\treturn this.resources.retrieve<ManualGateway>({ type: ManualGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ManualGatewayUpdate, options?: ResourcesConfig): Promise<ManualGateway> {\n\t\treturn this.resources.update({ ...resource, type: ManualGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ManualGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisManualGateway(resource: any): resource is ManualGateway {\n\t\treturn resource.type && (resource.type === ManualGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ManualGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ManualGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ManualGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: ManualGateways.TYPE } : {id: id.id, type: ManualGateways.TYPE }\n\t}\n\n}\n\n\nexport default ManualGateways\n\nexport { ManualGateway, ManualGatewayCreate, ManualGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\nimport { TaxRule } from './tax_rules'\n\n\ntype ManualTaxCalculatorRel = ResourceId & { type: typeof ManualTaxCalculators.TYPE }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\ntype TaxRuleRel = ResourceId & { type: 'tax_rules' }\n\n\ninterface ManualTaxCalculator extends Resource {\n\t\n\tname?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\ttax_rules?: TaxRule[]\n\n}\n\n\ninterface ManualTaxCalculatorCreate extends ResourceCreate {\n\t\n\tname: string\n\n\ttax_categories?: TaxCategoryRel[]\n\ttax_rules?: TaxRuleRel[]\n\n}\n\n\ninterface ManualTaxCalculatorUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\ttax_rules?: TaxRuleRel[]\n\n}\n\n\nclass ManualTaxCalculators extends ApiResource {\n\n\tstatic readonly TYPE: 'manual_tax_calculators' = 'manual_tax_calculators'\n\t// static readonly PATH = 'manual_tax_calculators'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ManualTaxCalculator>> {\n\t\treturn this.resources.list({ type: ManualTaxCalculators.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ManualTaxCalculatorCreate, options?: ResourcesConfig): Promise<ManualTaxCalculator> {\n\t\treturn this.resources.create({ ...resource, type: ManualTaxCalculators.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ManualTaxCalculator> {\n\t\treturn this.resources.retrieve<ManualTaxCalculator>({ type: ManualTaxCalculators.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ManualTaxCalculatorUpdate, options?: ResourcesConfig): Promise<ManualTaxCalculator> {\n\t\treturn this.resources.update({ ...resource, type: ManualTaxCalculators.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ManualTaxCalculators.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisManualTaxCalculator(resource: any): resource is ManualTaxCalculator {\n\t\treturn resource.type && (resource.type === ManualTaxCalculators.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ManualTaxCalculators.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ManualTaxCalculators.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ManualTaxCalculatorRel {\n\t\treturn (typeof id === 'string') ? { id, type: ManualTaxCalculators.TYPE } : {id: id.id, type: ManualTaxCalculators.TYPE }\n\t}\n\n}\n\n\nexport default ManualTaxCalculators\n\nexport { ManualTaxCalculator, ManualTaxCalculatorCreate, ManualTaxCalculatorUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Merchant } from './merchants'\nimport { PriceList } from './price_lists'\nimport { InventoryModel } from './inventory_models'\nimport { TaxCalculator } from './tax_calculators'\nimport { CustomerGroup } from './customer_groups'\nimport { Attachment } from './attachments'\n\n\ntype MarketRel = ResourceId & { type: typeof Markets.TYPE }\ntype MerchantRel = ResourceId & { type: 'merchants' }\ntype PriceListRel = ResourceId & { type: 'price_lists' }\ntype InventoryModelRel = ResourceId & { type: 'inventory_models' }\ntype TaxCalculatorRel = ResourceId & { type: 'tax_calculators' }\ntype CustomerGroupRel = ResourceId & { type: 'customer_groups' }\n\n\ninterface Market extends Resource {\n\t\n\tnumber?: number\n\tname?: string\n\tfacebook_pixel_id?: string\n\tcheckout_url?: string\n\texternal_prices_url?: string\n\tprivate?: boolean\n\n\tmerchant?: Merchant\n\tprice_list?: PriceList\n\tinventory_model?: InventoryModel\n\ttax_calculator?: TaxCalculator\n\tcustomer_group?: CustomerGroup\n\tattachments?: Attachment[]\n\n}\n\n\ninterface MarketCreate extends ResourceCreate {\n\t\n\tname: string\n\tfacebook_pixel_id?: string\n\tcheckout_url?: string\n\texternal_prices_url?: string\n\n\tmerchant?: MerchantRel\n\tprice_list?: PriceListRel\n\tinventory_model?: InventoryModelRel\n\ttax_calculator?: TaxCalculatorRel\n\tcustomer_group?: CustomerGroupRel\n\n}\n\n\ninterface MarketUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tfacebook_pixel_id?: string\n\tcheckout_url?: string\n\texternal_prices_url?: string\n\n\tmerchant?: MerchantRel\n\tprice_list?: PriceListRel\n\tinventory_model?: InventoryModelRel\n\ttax_calculator?: TaxCalculatorRel\n\tcustomer_group?: CustomerGroupRel\n\n}\n\n\nclass Markets extends ApiResource {\n\n\tstatic readonly TYPE: 'markets' = 'markets'\n\t// static readonly PATH = 'markets'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Market>> {\n\t\treturn this.resources.list({ type: Markets.TYPE }, params, options)\n\t}\n\n\tasync create(resource: MarketCreate, options?: ResourcesConfig): Promise<Market> {\n\t\treturn this.resources.create({ ...resource, type: Markets.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Market> {\n\t\treturn this.resources.retrieve<Market>({ type: Markets.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: MarketUpdate, options?: ResourcesConfig): Promise<Market> {\n\t\treturn this.resources.update({ ...resource, type: Markets.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Markets.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisMarket(resource: any): resource is Market {\n\t\treturn resource.type && (resource.type === Markets.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Markets.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Markets.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): MarketRel {\n\t\treturn (typeof id === 'string') ? { id, type: Markets.TYPE } : {id: id.id, type: Markets.TYPE }\n\t}\n\n}\n\n\nexport default Markets\n\nexport { Market, MarketCreate, MarketUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Address } from './addresses'\nimport { Attachment } from './attachments'\n\n\ntype MerchantRel = ResourceId & { type: typeof Merchants.TYPE }\ntype AddressRel = ResourceId & { type: 'addresses' }\n\n\ninterface Merchant extends Resource {\n\t\n\tname?: string\n\n\taddress?: Address\n\tattachments?: Attachment[]\n\n}\n\n\ninterface MerchantCreate extends ResourceCreate {\n\t\n\tname: string\n\n\taddress?: AddressRel\n\n}\n\n\ninterface MerchantUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\n\taddress?: AddressRel\n\n}\n\n\nclass Merchants extends ApiResource {\n\n\tstatic readonly TYPE: 'merchants' = 'merchants'\n\t// static readonly PATH = 'merchants'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Merchant>> {\n\t\treturn this.resources.list({ type: Merchants.TYPE }, params, options)\n\t}\n\n\tasync create(resource: MerchantCreate, options?: ResourcesConfig): Promise<Merchant> {\n\t\treturn this.resources.create({ ...resource, type: Merchants.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Merchant> {\n\t\treturn this.resources.retrieve<Merchant>({ type: Merchants.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: MerchantUpdate, options?: ResourcesConfig): Promise<Merchant> {\n\t\treturn this.resources.update({ ...resource, type: Merchants.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Merchants.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisMerchant(resource: any): resource is Merchant {\n\t\treturn resource.type && (resource.type === Merchants.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Merchants.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Merchants.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): MerchantRel {\n\t\treturn (typeof id === 'string') ? { id, type: Merchants.TYPE } : {id: id.id, type: Merchants.TYPE }\n\t}\n\n}\n\n\nexport default Merchants\n\nexport { Merchant, MerchantCreate, MerchantUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { ExternalPromotion } from './external_promotions'\n\n\ntype OrderAmountPromotionRuleRel = ResourceId & { type: typeof OrderAmountPromotionRules.TYPE }\ntype PercentageDiscountPromotionRel = ResourceId & { type: 'percentage_discount_promotions' }\ntype FreeShippingPromotionRel = ResourceId & { type: 'free_shipping_promotions' }\ntype FixedAmountPromotionRel = ResourceId & { type: 'fixed_amount_promotions' }\ntype ExternalPromotionRel = ResourceId & { type: 'external_promotions' }\n\n\ninterface OrderAmountPromotionRule extends Resource {\n\t\n\torder_amount_cents?: number\n\torder_amount_float?: number\n\tformatted_order_amount?: string\n\n\tpromotion?: PercentageDiscountPromotion | FreeShippingPromotion | FixedAmountPromotion | ExternalPromotion\n\n}\n\n\ninterface OrderAmountPromotionRuleCreate extends ResourceCreate {\n\t\n\torder_amount_cents?: number\n\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | ExternalPromotionRel\n\n}\n\n\ninterface OrderAmountPromotionRuleUpdate extends ResourceUpdate {\n\t\n\torder_amount_cents?: number\n\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | ExternalPromotionRel\n\n}\n\n\nclass OrderAmountPromotionRules extends ApiResource {\n\n\tstatic readonly TYPE: 'order_amount_promotion_rules' = 'order_amount_promotion_rules'\n\t// static readonly PATH = 'order_amount_promotion_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<OrderAmountPromotionRule>> {\n\t\treturn this.resources.list({ type: OrderAmountPromotionRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: OrderAmountPromotionRuleCreate, options?: ResourcesConfig): Promise<OrderAmountPromotionRule> {\n\t\treturn this.resources.create({ ...resource, type: OrderAmountPromotionRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<OrderAmountPromotionRule> {\n\t\treturn this.resources.retrieve<OrderAmountPromotionRule>({ type: OrderAmountPromotionRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: OrderAmountPromotionRuleUpdate, options?: ResourcesConfig): Promise<OrderAmountPromotionRule> {\n\t\treturn this.resources.update({ ...resource, type: OrderAmountPromotionRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: OrderAmountPromotionRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrderAmountPromotionRule(resource: any): resource is OrderAmountPromotionRule {\n\t\treturn resource.type && (resource.type === OrderAmountPromotionRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(OrderAmountPromotionRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(OrderAmountPromotionRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderAmountPromotionRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: OrderAmountPromotionRules.TYPE } : {id: id.id, type: OrderAmountPromotionRules.TYPE }\n\t}\n\n}\n\n\nexport default OrderAmountPromotionRules\n\nexport { OrderAmountPromotionRule, OrderAmountPromotionRuleCreate, OrderAmountPromotionRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { OrderSubscription } from './order_subscriptions'\n\n\ntype OrderCopyRel = ResourceId & { type: typeof OrderCopies.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface OrderCopy extends Resource {\n\t\n\tstatus?: string\n\tstarted_at?: string\n\tcompleted_at?: string\n\tfailed_at?: string\n\tplace_target_order?: boolean\n\tcancel_source_order?: boolean\n\treuse_wallet?: boolean\n\terrors_log?: object\n\terrors_count?: number\n\n\tsource_order?: Order\n\ttarget_order?: Order\n\torder_subscription?: OrderSubscription\n\n}\n\n\ninterface OrderCopyCreate extends ResourceCreate {\n\t\n\tplace_target_order?: boolean\n\tcancel_source_order?: boolean\n\treuse_wallet?: boolean\n\n\tsource_order?: OrderRel\n\n}\n\n\nclass OrderCopies extends ApiResource {\n\n\tstatic readonly TYPE: 'order_copies' = 'order_copies'\n\t// static readonly PATH = 'order_copies'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<OrderCopy>> {\n\t\treturn this.resources.list({ type: OrderCopies.TYPE }, params, options)\n\t}\n\n\tasync create(resource: OrderCopyCreate, options?: ResourcesConfig): Promise<OrderCopy> {\n\t\treturn this.resources.create({ ...resource, type: OrderCopies.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<OrderCopy> {\n\t\treturn this.resources.retrieve<OrderCopy>({ type: OrderCopies.TYPE, id }, params, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: OrderCopies.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrderCopy(resource: any): resource is OrderCopy {\n\t\treturn resource.type && (resource.type === OrderCopies.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(OrderCopies.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(OrderCopies.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderCopyRel {\n\t\treturn (typeof id === 'string') ? { id, type: OrderCopies.TYPE } : {id: id.id, type: OrderCopies.TYPE }\n\t}\n\n}\n\n\nexport default OrderCopies\n\nexport { OrderCopy, OrderCopyCreate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Order } from './orders'\nimport { Customer } from './customers'\nimport { OrderCopy } from './order_copies'\n\n\ntype OrderSubscriptionRel = ResourceId & { type: typeof OrderSubscriptions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface OrderSubscription extends Resource {\n\t\n\tnumber?: string\n\tstatus?: string\n\tfrequency?: string\n\tactivate_by_source_order?: boolean\n\tcustomer_email?: string\n\tstarts_at?: string\n\texpires_at?: string\n\tnext_run_at?: string\n\toccurrencies?: number\n\terrors_count?: number\n\tsucceeded_on_last_run?: boolean\n\toptions?: object\n\n\tmarket?: Market\n\tsource_order?: Order\n\tcustomer?: Customer\n\torder_copies?: OrderCopy[]\n\torders?: Order[]\n\n}\n\n\ninterface OrderSubscriptionCreate extends ResourceCreate {\n\t\n\tfrequency?: string\n\tactivate_by_source_order?: boolean\n\tstarts_at?: string\n\texpires_at?: string\n\toptions?: object\n\n\tmarket?: MarketRel\n\tsource_order?: OrderRel\n\n}\n\n\ninterface OrderSubscriptionUpdate extends ResourceUpdate {\n\t\n\texpires_at?: string\n\t_activate?: boolean\n\t_deactivate?: boolean\n\t_cancel?: boolean\n\t\n}\n\n\nclass OrderSubscriptions extends ApiResource {\n\n\tstatic readonly TYPE: 'order_subscriptions' = 'order_subscriptions'\n\t// static readonly PATH = 'order_subscriptions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<OrderSubscription>> {\n\t\treturn this.resources.list({ type: OrderSubscriptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: OrderSubscriptionCreate, options?: ResourcesConfig): Promise<OrderSubscription> {\n\t\treturn this.resources.create({ ...resource, type: OrderSubscriptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<OrderSubscription> {\n\t\treturn this.resources.retrieve<OrderSubscription>({ type: OrderSubscriptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: OrderSubscriptionUpdate, options?: ResourcesConfig): Promise<OrderSubscription> {\n\t\treturn this.resources.update({ ...resource, type: OrderSubscriptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: OrderSubscriptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrderSubscription(resource: any): resource is OrderSubscription {\n\t\treturn resource.type && (resource.type === OrderSubscriptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(OrderSubscriptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(OrderSubscriptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderSubscriptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: OrderSubscriptions.TYPE } : {id: id.id, type: OrderSubscriptions.TYPE }\n\t}\n\n}\n\n\nexport default OrderSubscriptions\n\nexport { OrderSubscription, OrderSubscriptionCreate, OrderSubscriptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { Market } from './markets'\n\n\ntype OrderValidationRuleRel = ResourceId & { type: typeof OrderValidationRules.TYPE }\n\n\ninterface OrderValidationRule extends Resource {\n\t\n\tmarket?: Market\n\n}\n\n\nclass OrderValidationRules extends ApiResource {\n\n\tstatic readonly TYPE: 'order_validation_rules' = 'order_validation_rules'\n\t// static readonly PATH = 'order_validation_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<OrderValidationRule>> {\n\t\treturn this.resources.list({ type: OrderValidationRules.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrderValidationRule(resource: any): resource is OrderValidationRule {\n\t\treturn resource.type && (resource.type === OrderValidationRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(OrderValidationRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(OrderValidationRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderValidationRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: OrderValidationRules.TYPE } : {id: id.id, type: OrderValidationRules.TYPE }\n\t}\n\n}\n\n\nexport default OrderValidationRules\n\nexport { OrderValidationRule }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Customer } from './customers'\nimport { Address } from './addresses'\nimport { PaymentMethod } from './payment_methods'\nimport { CustomerPaymentSource } from './customer_payment_sources'\nimport { AdyenPayment } from './adyen_payments'\nimport { BraintreePayment } from './braintree_payments'\nimport { CheckoutComPayment } from './checkout_com_payments'\nimport { ExternalPayment } from './external_payments'\nimport { PaypalPayment } from './paypal_payments'\nimport { StripePayment } from './stripe_payments'\nimport { WireTransfer } from './wire_transfers'\nimport { LineItem } from './line_items'\nimport { Shipment } from './shipments'\nimport { Authorization } from './authorizations'\nimport { Void } from './voids'\nimport { Capture } from './captures'\nimport { Refund } from './refunds'\nimport { OrderSubscription } from './order_subscriptions'\nimport { OrderCopy } from './order_copies'\nimport { Attachment } from './attachments'\n\n\ntype OrderRel = ResourceId & { type: typeof Orders.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype AddressRel = ResourceId & { type: 'addresses' }\ntype PaymentMethodRel = ResourceId & { type: 'payment_methods' }\ntype AdyenPaymentRel = ResourceId & { type: 'adyen_payments' }\ntype BraintreePaymentRel = ResourceId & { type: 'braintree_payments' }\ntype CheckoutComPaymentRel = ResourceId & { type: 'checkout_com_payments' }\ntype ExternalPaymentRel = ResourceId & { type: 'external_payments' }\ntype PaypalPaymentRel = ResourceId & { type: 'paypal_payments' }\ntype StripePaymentRel = ResourceId & { type: 'stripe_payments' }\ntype WireTransferRel = ResourceId & { type: 'wire_transfers' }\n\n\ninterface Order extends Resource {\n\t\n\tnumber?: number\n\tautorefresh?: boolean\n\tstatus?: string\n\tpayment_status?: string\n\tfulfillment_status?: string\n\tguest?: boolean\n\teditable?: boolean\n\tcustomer_email?: string\n\tlanguage_code?: string\n\tcurrency_code?: string\n\ttax_included?: boolean\n\ttax_rate?: number\n\tfreight_taxable?: boolean\n\trequires_billing_info?: boolean\n\tcountry_code?: string\n\tshipping_country_code_lock?: string\n\tcoupon_code?: string\n\tgift_card_code?: string\n\tgift_card_or_coupon_code?: string\n\tsubtotal_amount_cents?: number\n\tsubtotal_amount_float?: number\n\tformatted_subtotal_amount?: string\n\tshipping_amount_cents?: number\n\tshipping_amount_float?: number\n\tformatted_shipping_amount?: string\n\tpayment_method_amount_cents?: number\n\tpayment_method_amount_float?: number\n\tformatted_payment_method_amount?: string\n\tdiscount_amount_cents?: number\n\tdiscount_amount_float?: number\n\tformatted_discount_amount?: string\n\tadjustment_amount_cents?: number\n\tadjustment_amount_float?: number\n\tformatted_adjustment_amount?: string\n\tgift_card_amount_cents?: number\n\tgift_card_amount_float?: number\n\tformatted_gift_card_amount?: string\n\ttotal_tax_amount_cents?: number\n\ttotal_tax_amount_float?: number\n\tformatted_total_tax_amount?: string\n\tsubtotal_tax_amount_cents?: number\n\tsubtotal_tax_amount_float?: number\n\tformatted_subtotal_tax_amount?: string\n\tshipping_tax_amount_cents?: number\n\tshipping_tax_amount_float?: number\n\tformatted_shipping_tax_amount?: string\n\tpayment_method_tax_amount_cents?: number\n\tpayment_method_tax_amount_float?: number\n\tformatted_payment_method_tax_amount?: string\n\tadjustment_tax_amount_cents?: number\n\tadjustment_tax_amount_float?: number\n\tformatted_adjustment_tax_amount?: string\n\ttotal_amount_cents?: number\n\ttotal_amount_float?: number\n\tformatted_total_amount?: string\n\ttotal_taxable_amount_cents?: number\n\ttotal_taxable_amount_float?: number\n\tformatted_total_taxable_amount?: string\n\tsubtotal_taxable_amount_cents?: number\n\tsubtotal_taxable_amount_float?: number\n\tformatted_subtotal_taxable_amount?: string\n\tshipping_taxable_amount_cents?: number\n\tshipping_taxable_amount_float?: number\n\tformatted_shipping_taxable_amount?: string\n\tpayment_method_taxable_amount_cents?: number\n\tpayment_method_taxable_amount_float?: number\n\tformatted_payment_method_taxable_amount?: string\n\tadjustment_taxable_amount_cents?: number\n\tadjustment_taxable_amount_float?: number\n\tformatted_adjustment_taxable_amount?: string\n\ttotal_amount_with_taxes_cents?: number\n\ttotal_amount_with_taxes_float?: number\n\tformatted_total_amount_with_taxes?: string\n\tfees_amount_cents?: number\n\tfees_amount_float?: number\n\tformatted_fees_amount?: string\n\tduty_amount_cents?: number\n\tduty_amount_float?: number\n\tformatted_duty_amount?: string\n\tskus_count?: number\n\tline_item_options_count?: number\n\tshipments_count?: number\n\tpayment_source_details?: object\n\ttoken?: string\n\tcart_url?: string\n\treturn_url?: string\n\tterms_url?: string\n\tprivacy_url?: string\n\tcheckout_url?: string\n\tplaced_at?: string\n\tapproved_at?: string\n\tcancelled_at?: string\n\tpayment_updated_at?: string\n\tfulfillment_updated_at?: string\n\trefreshed_at?: string\n\tarchived_at?: string\n\texpires_at?: string\n\n\tmarket?: Market\n\tcustomer?: Customer\n\tshipping_address?: Address\n\tbilling_address?: Address\n\tavailable_payment_methods?: PaymentMethod[]\n\tavailable_customer_payment_sources?: CustomerPaymentSource[]\n\tpayment_method?: PaymentMethod\n\tpayment_source?: AdyenPayment | BraintreePayment | CheckoutComPayment | ExternalPayment | PaypalPayment | StripePayment | WireTransfer\n\tline_items?: LineItem[]\n\tshipments?: Shipment[]\n\ttransactions?: (Authorization | Void | Capture | Refund)[]\n\tauthorizations?: Authorization[]\n\tcaptures?: Capture[]\n\tvoids?: Void[]\n\trefunds?: Refund[]\n\torder_subscriptions?: OrderSubscription[]\n\torder_copies?: OrderCopy[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface OrderCreate extends ResourceCreate {\n\t\n\tautorefresh?: boolean\n\tguest?: boolean\n\tcustomer_email?: string\n\tcustomer_password?: string\n\tlanguage_code?: string\n\tshipping_country_code_lock?: string\n\tcoupon_code?: string\n\tgift_card_code?: string\n\tgift_card_or_coupon_code?: string\n\tcart_url?: string\n\treturn_url?: string\n\tterms_url?: string\n\tprivacy_url?: string\n\n\tmarket?: MarketRel\n\tcustomer?: CustomerRel\n\tshipping_address?: AddressRel\n\tbilling_address?: AddressRel\n\tpayment_method?: PaymentMethodRel\n\tpayment_source?: AdyenPaymentRel | BraintreePaymentRel | CheckoutComPaymentRel | ExternalPaymentRel | PaypalPaymentRel | StripePaymentRel | WireTransferRel\n\n}\n\n\ninterface OrderUpdate extends ResourceUpdate {\n\t\n\tautorefresh?: boolean\n\tguest?: boolean\n\tcustomer_email?: string\n\tcustomer_password?: string\n\tlanguage_code?: string\n\tshipping_country_code_lock?: string\n\tcoupon_code?: string\n\tgift_card_code?: string\n\tgift_card_or_coupon_code?: string\n\tcart_url?: string\n\treturn_url?: string\n\tterms_url?: string\n\tprivacy_url?: string\n\t_archive?: boolean\n\t_unarchive?: boolean\n\t_place?: boolean\n\t_cancel?: boolean\n\t_approve?: boolean\n\t_approve_and_capture?: boolean\n\t_authorize?: boolean\n\t_authorization_amount_cents?: number\n\t_capture?: boolean\n\t_refund?: boolean\n\t_update_taxes?: boolean\n\t_billing_address_clone_id?: string\n\t_shipping_address_clone_id?: string\n\t_customer_payment_source_id?: string\n\t_shipping_address_same_as_billing?: boolean\n\t_billing_address_same_as_shipping?: boolean\n\t_save_payment_source_to_customer_wallet?: boolean\n\t_save_shipping_address_to_customer_address_book?: boolean\n\t_save_billing_address_to_customer_address_book?: boolean\n\t_refresh?: boolean\n\n\tmarket?: MarketRel\n\tcustomer?: CustomerRel\n\tshipping_address?: AddressRel\n\tbilling_address?: AddressRel\n\tpayment_method?: PaymentMethodRel\n\tpayment_source?: AdyenPaymentRel | BraintreePaymentRel | CheckoutComPaymentRel | ExternalPaymentRel | PaypalPaymentRel | StripePaymentRel | WireTransferRel\n\n}\n\n\nclass Orders extends ApiResource {\n\n\tstatic readonly TYPE: 'orders' = 'orders'\n\t// static readonly PATH = 'orders'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Order>> {\n\t\treturn this.resources.list({ type: Orders.TYPE }, params, options)\n\t}\n\n\tasync create(resource: OrderCreate, options?: ResourcesConfig): Promise<Order> {\n\t\treturn this.resources.create({ ...resource, type: Orders.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Order> {\n\t\treturn this.resources.retrieve<Order>({ type: Orders.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: OrderUpdate, options?: ResourcesConfig): Promise<Order> {\n\t\treturn this.resources.update({ ...resource, type: Orders.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Orders.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrder(resource: any): resource is Order {\n\t\treturn resource.type && (resource.type === Orders.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Orders.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Orders.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderRel {\n\t\treturn (typeof id === 'string') ? { id, type: Orders.TYPE } : {id: id.id, type: Orders.TYPE }\n\t}\n\n}\n\n\nexport default Orders\n\nexport { Order, OrderCreate, OrderUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsRetrieve } from '../query'\n\n\n\ntype OrganizationRel = ResourceId & { type: typeof Organizations.TYPE }\n\n\ninterface Organization extends Resource {\n\t\n\tname?: string\n\tslug?: string\n\tdomain?: string\n\tsupport_phone?: string\n\tsupport_email?: string\n\tlogo_url?: string\n\tfavicon_url?: string\n\tprimary_color?: string\n\tcontrast_color?: string\n\tgtm_id?: string\n\tgtm_id_test?: string\n\tdiscount_disabled?: boolean\n\taccount_disabled?: boolean\n\tacceptance_disabled?: boolean\n\t\n}\n\n\nclass Organizations extends ApiResource {\n\n\tstatic readonly TYPE: 'organization' = 'organization'\n\t// static readonly PATH = 'organization'\n\n\tasync retrieve(params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Organization> {\n\t\treturn this.resources.singleton<Organization>({ type: Organizations.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrganization(resource: any): resource is Organization {\n\t\treturn resource.type && (resource.type === Organizations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Organizations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Organizations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrganizationRel {\n\t\treturn (typeof id === 'string') ? { id, type: Organizations.TYPE } : {id: id.id, type: Organizations.TYPE }\n\t}\n\n}\n\n\nexport default Organizations\n\nexport { Organization }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { Parcel } from './parcels'\nimport { Attachment } from './attachments'\n\n\ntype PackageRel = ResourceId & { type: typeof Packages.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\n\n\ninterface Package extends Resource {\n\t\n\tname?: string\n\tcode?: string\n\tlength?: number\n\twidth?: number\n\theight?: number\n\tunit_of_length?: string\n\n\tstock_location?: StockLocation\n\tparcels?: Parcel[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface PackageCreate extends ResourceCreate {\n\t\n\tname?: string\n\tcode?: string\n\tlength?: number\n\twidth?: number\n\theight?: number\n\tunit_of_length?: string\n\n\tstock_location?: StockLocationRel\n\n}\n\n\ninterface PackageUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tcode?: string\n\tlength?: number\n\twidth?: number\n\theight?: number\n\tunit_of_length?: string\n\n\tstock_location?: StockLocationRel\n\n}\n\n\nclass Packages extends ApiResource {\n\n\tstatic readonly TYPE: 'packages' = 'packages'\n\t// static readonly PATH = 'packages'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Package>> {\n\t\treturn this.resources.list({ type: Packages.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PackageCreate, options?: ResourcesConfig): Promise<Package> {\n\t\treturn this.resources.create({ ...resource, type: Packages.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Package> {\n\t\treturn this.resources.retrieve<Package>({ type: Packages.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PackageUpdate, options?: ResourcesConfig): Promise<Package> {\n\t\treturn this.resources.update({ ...resource, type: Packages.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Packages.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPackage(resource: any): resource is Package {\n\t\treturn resource.type && (resource.type === Packages.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Packages.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Packages.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PackageRel {\n\t\treturn (typeof id === 'string') ? { id, type: Packages.TYPE } : {id: id.id, type: Packages.TYPE }\n\t}\n\n}\n\n\nexport default Packages\n\nexport { Package, PackageCreate, PackageUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Parcel } from './parcels'\nimport { StockLineItem } from './stock_line_items'\n\n\ntype ParcelLineItemRel = ResourceId & { type: typeof ParcelLineItems.TYPE }\ntype ParcelRel = ResourceId & { type: 'parcels' }\ntype StockLineItemRel = ResourceId & { type: 'stock_line_items' }\n\n\ninterface ParcelLineItem extends Resource {\n\t\n\tsku_code?: string\n\tquantity?: number\n\n\tparcel?: Parcel\n\tstock_line_item?: StockLineItem\n\t/**\n\t* @deprecated This field should not be used as it may be removed in the future without notice\n\t*/\n\tshipment_line_item?: object\n\n}\n\n\ninterface ParcelLineItemCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tquantity: number\n\n\tparcel?: ParcelRel\n\tstock_line_item?: StockLineItemRel\n\t/**\n\t* @deprecated This field should not be used as it may be removed in the future without notice\n\t*/\n\tshipment_line_item?: object\n\n}\n\n\ntype ParcelLineItemUpdate = ResourceUpdate\n\n\nclass ParcelLineItems extends ApiResource {\n\n\tstatic readonly TYPE: 'parcel_line_items' = 'parcel_line_items'\n\t// static readonly PATH = 'parcel_line_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ParcelLineItem>> {\n\t\treturn this.resources.list({ type: ParcelLineItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ParcelLineItemCreate, options?: ResourcesConfig): Promise<ParcelLineItem> {\n\t\treturn this.resources.create({ ...resource, type: ParcelLineItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ParcelLineItem> {\n\t\treturn this.resources.retrieve<ParcelLineItem>({ type: ParcelLineItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ParcelLineItemUpdate, options?: ResourcesConfig): Promise<ParcelLineItem> {\n\t\treturn this.resources.update({ ...resource, type: ParcelLineItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ParcelLineItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisParcelLineItem(resource: any): resource is ParcelLineItem {\n\t\treturn resource.type && (resource.type === ParcelLineItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ParcelLineItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ParcelLineItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ParcelLineItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: ParcelLineItems.TYPE } : {id: id.id, type: ParcelLineItems.TYPE }\n\t}\n\n}\n\n\nexport default ParcelLineItems\n\nexport { ParcelLineItem, ParcelLineItemCreate, ParcelLineItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Shipment } from './shipments'\nimport { Package } from './packages'\nimport { ParcelLineItem } from './parcel_line_items'\nimport { Attachment } from './attachments'\n\n\ntype ParcelRel = ResourceId & { type: typeof Parcels.TYPE }\ntype ShipmentRel = ResourceId & { type: 'shipments' }\ntype PackageRel = ResourceId & { type: 'packages' }\n\n\ninterface Parcel extends Resource {\n\t\n\tnumber?: string\n\tweight?: number\n\tunit_of_weight?: string\n\teel_pfc?: string\n\tcontents_type?: string\n\tcontents_explanation?: string\n\tcustoms_certify?: boolean\n\tcustoms_signer?: string\n\tnon_delivery_option?: string\n\trestriction_type?: string\n\trestriction_comments?: string\n\tcustoms_info_required?: boolean\n\tshipping_label_url?: string\n\tshipping_label_file_type?: string\n\tshipping_label_size?: string\n\tshipping_label_resolution?: string\n\ttracking_number?: string\n\ttracking_status?: string\n\ttracking_status_detail?: string\n\ttracking_status_updated_at?: string\n\ttracking_details?: string\n\tcarrier_weight_oz?: string\n\tsigned_by?: string\n\tincoterm?: string\n\n\tshipment?: Shipment\n\tpackage?: Package\n\tparcel_line_items?: ParcelLineItem[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ParcelCreate extends ResourceCreate {\n\t\n\tweight?: number\n\tunit_of_weight?: string\n\teel_pfc?: string\n\tcontents_type?: string\n\tcontents_explanation?: string\n\tcustoms_certify?: boolean\n\tcustoms_signer?: string\n\tnon_delivery_option?: string\n\trestriction_type?: string\n\trestriction_comments?: string\n\tcustoms_info_required?: boolean\n\ttracking_number?: string\n\ttracking_status?: string\n\ttracking_status_detail?: string\n\ttracking_status_updated_at?: string\n\ttracking_details?: string\n\tcarrier_weight_oz?: string\n\tsigned_by?: string\n\tincoterm?: string\n\n\tshipment?: ShipmentRel\n\tpackage?: PackageRel\n\n}\n\n\ninterface ParcelUpdate extends ResourceUpdate {\n\t\n\tweight?: number\n\tunit_of_weight?: string\n\teel_pfc?: string\n\tcontents_type?: string\n\tcontents_explanation?: string\n\tcustoms_certify?: boolean\n\tcustoms_signer?: string\n\tnon_delivery_option?: string\n\trestriction_type?: string\n\trestriction_comments?: string\n\tcustoms_info_required?: boolean\n\ttracking_number?: string\n\ttracking_status?: string\n\ttracking_status_detail?: string\n\ttracking_status_updated_at?: string\n\ttracking_details?: string\n\tcarrier_weight_oz?: string\n\tsigned_by?: string\n\tincoterm?: string\n\n\tshipment?: ShipmentRel\n\tpackage?: PackageRel\n\n}\n\n\nclass Parcels extends ApiResource {\n\n\tstatic readonly TYPE: 'parcels' = 'parcels'\n\t// static readonly PATH = 'parcels'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Parcel>> {\n\t\treturn this.resources.list({ type: Parcels.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ParcelCreate, options?: ResourcesConfig): Promise<Parcel> {\n\t\treturn this.resources.create({ ...resource, type: Parcels.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Parcel> {\n\t\treturn this.resources.retrieve<Parcel>({ type: Parcels.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ParcelUpdate, options?: ResourcesConfig): Promise<Parcel> {\n\t\treturn this.resources.update({ ...resource, type: Parcels.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Parcels.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisParcel(resource: any): resource is Parcel {\n\t\treturn resource.type && (resource.type === Parcels.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Parcels.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Parcels.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ParcelRel {\n\t\treturn (typeof id === 'string') ? { id, type: Parcels.TYPE } : {id: id.id, type: Parcels.TYPE }\n\t}\n\n}\n\n\nexport default Parcels\n\nexport { Parcel, ParcelCreate, ParcelUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\n\n\ntype PaymentGatewayRel = ResourceId & { type: typeof PaymentGateways.TYPE }\n\n\ninterface PaymentGateway extends Resource {\n\t\n\tname?: string\n\n\tpayment_methods?: PaymentMethod[]\n\n}\n\n\ninterface PaymentGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\t\n}\n\n\ninterface PaymentGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\t\n}\n\n\nclass PaymentGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'payment_gateways' = 'payment_gateways'\n\t// static readonly PATH = 'payment_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PaymentGateway>> {\n\t\treturn this.resources.list({ type: PaymentGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PaymentGatewayCreate, options?: ResourcesConfig): Promise<PaymentGateway> {\n\t\treturn this.resources.create({ ...resource, type: PaymentGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PaymentGateway> {\n\t\treturn this.resources.retrieve<PaymentGateway>({ type: PaymentGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PaymentGatewayUpdate, options?: ResourcesConfig): Promise<PaymentGateway> {\n\t\treturn this.resources.update({ ...resource, type: PaymentGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PaymentGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPaymentGateway(resource: any): resource is PaymentGateway {\n\t\treturn resource.type && (resource.type === PaymentGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PaymentGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PaymentGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PaymentGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: PaymentGateways.TYPE } : {id: id.id, type: PaymentGateways.TYPE }\n\t}\n\n}\n\n\nexport default PaymentGateways\n\nexport { PaymentGateway, PaymentGatewayCreate, PaymentGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PaymentGateway } from './payment_gateways'\nimport { Attachment } from './attachments'\n\n\ntype PaymentMethodRel = ResourceId & { type: typeof PaymentMethods.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PaymentGatewayRel = ResourceId & { type: 'payment_gateways' }\n\n\ninterface PaymentMethod extends Resource {\n\t\n\tpayment_source_type?: string\n\tname?: string\n\tdisabled_at?: string\n\tprice_amount_cents?: number\n\tprice_amount_float?: number\n\tformatted_price_amount?: string\n\n\tmarket?: Market\n\tpayment_gateway?: PaymentGateway\n\tattachments?: Attachment[]\n\n}\n\n\ninterface PaymentMethodCreate extends ResourceCreate {\n\t\n\tpayment_source_type: string\n\tprice_amount_cents: number\n\n\tmarket?: MarketRel\n\tpayment_gateway?: PaymentGatewayRel\n\n}\n\n\ninterface PaymentMethodUpdate extends ResourceUpdate {\n\t\n\tpayment_source_type?: string\n\tprice_amount_cents?: number\n\n\tmarket?: MarketRel\n\tpayment_gateway?: PaymentGatewayRel\n\n}\n\n\nclass PaymentMethods extends ApiResource {\n\n\tstatic readonly TYPE: 'payment_methods' = 'payment_methods'\n\t// static readonly PATH = 'payment_methods'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PaymentMethod>> {\n\t\treturn this.resources.list({ type: PaymentMethods.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PaymentMethodCreate, options?: ResourcesConfig): Promise<PaymentMethod> {\n\t\treturn this.resources.create({ ...resource, type: PaymentMethods.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PaymentMethod> {\n\t\treturn this.resources.retrieve<PaymentMethod>({ type: PaymentMethods.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PaymentMethodUpdate, options?: ResourcesConfig): Promise<PaymentMethod> {\n\t\treturn this.resources.update({ ...resource, type: PaymentMethods.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PaymentMethods.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPaymentMethod(resource: any): resource is PaymentMethod {\n\t\treturn resource.type && (resource.type === PaymentMethods.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PaymentMethods.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PaymentMethods.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PaymentMethodRel {\n\t\treturn (typeof id === 'string') ? { id, type: PaymentMethods.TYPE } : {id: id.id, type: PaymentMethods.TYPE }\n\t}\n\n}\n\n\nexport default PaymentMethods\n\nexport { PaymentMethod, PaymentMethodCreate, PaymentMethodUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { PaypalPayment } from './paypal_payments'\n\n\ntype PaypalGatewayRel = ResourceId & { type: typeof PaypalGateways.TYPE }\n\n\ninterface PaypalGateway extends Resource {\n\t\n\tname?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tpaypal_payments?: PaypalPayment[]\n\n}\n\n\ninterface PaypalGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tclient_id: string\n\tclient_secret: string\n\tmode: string\n\t\n}\n\n\ninterface PaypalGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tclient_id?: string\n\tclient_secret?: string\n\tmode?: string\n\t\n}\n\n\nclass PaypalGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'paypal_gateways' = 'paypal_gateways'\n\t// static readonly PATH = 'paypal_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PaypalGateway>> {\n\t\treturn this.resources.list({ type: PaypalGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PaypalGatewayCreate, options?: ResourcesConfig): Promise<PaypalGateway> {\n\t\treturn this.resources.create({ ...resource, type: PaypalGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PaypalGateway> {\n\t\treturn this.resources.retrieve<PaypalGateway>({ type: PaypalGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PaypalGatewayUpdate, options?: ResourcesConfig): Promise<PaypalGateway> {\n\t\treturn this.resources.update({ ...resource, type: PaypalGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PaypalGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPaypalGateway(resource: any): resource is PaypalGateway {\n\t\treturn resource.type && (resource.type === PaypalGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PaypalGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PaypalGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PaypalGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: PaypalGateways.TYPE } : {id: id.id, type: PaypalGateways.TYPE }\n\t}\n\n}\n\n\nexport default PaypalGateways\n\nexport { PaypalGateway, PaypalGatewayCreate, PaypalGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype PaypalPaymentRel = ResourceId & { type: typeof PaypalPayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface PaypalPayment extends Resource {\n\t\n\treturn_url?: string\n\tcancel_url?: string\n\tnote_to_payer?: string\n\tpaypal_payer_id?: string\n\tname?: string\n\tpaypal_id?: string\n\tstatus?: string\n\tapproval_url?: string\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface PaypalPaymentCreate extends ResourceCreate {\n\t\n\treturn_url: string\n\tcancel_url: string\n\tnote_to_payer?: string\n\n\torder?: OrderRel\n\n}\n\n\ninterface PaypalPaymentUpdate extends ResourceUpdate {\n\t\n\tpaypal_payer_id?: string\n\n\torder?: OrderRel\n\n}\n\n\nclass PaypalPayments extends ApiResource {\n\n\tstatic readonly TYPE: 'paypal_payments' = 'paypal_payments'\n\t// static readonly PATH = 'paypal_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PaypalPayment>> {\n\t\treturn this.resources.list({ type: PaypalPayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PaypalPaymentCreate, options?: ResourcesConfig): Promise<PaypalPayment> {\n\t\treturn this.resources.create({ ...resource, type: PaypalPayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PaypalPayment> {\n\t\treturn this.resources.retrieve<PaypalPayment>({ type: PaypalPayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PaypalPaymentUpdate, options?: ResourcesConfig): Promise<PaypalPayment> {\n\t\treturn this.resources.update({ ...resource, type: PaypalPayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PaypalPayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPaypalPayment(resource: any): resource is PaypalPayment {\n\t\treturn resource.type && (resource.type === PaypalPayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PaypalPayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PaypalPayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PaypalPaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: PaypalPayments.TYPE } : {id: id.id, type: PaypalPayments.TYPE }\n\t}\n\n}\n\n\nexport default PaypalPayments\n\nexport { PaypalPayment, PaypalPaymentCreate, PaypalPaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\n\n\ntype PercentageDiscountPromotionRel = ResourceId & { type: typeof PercentageDiscountPromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\n\n\ninterface PercentageDiscountPromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\tpercentage?: number\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\tsku_list?: SkuList\n\tskus?: Sku[]\n\n}\n\n\ninterface PercentageDiscountPromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\tpercentage: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\tsku_list?: SkuListRel\n\n}\n\n\ninterface PercentageDiscountPromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\tpercentage?: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\tsku_list?: SkuListRel\n\n}\n\n\nclass PercentageDiscountPromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'percentage_discount_promotions' = 'percentage_discount_promotions'\n\t// static readonly PATH = 'percentage_discount_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PercentageDiscountPromotion>> {\n\t\treturn this.resources.list({ type: PercentageDiscountPromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PercentageDiscountPromotionCreate, options?: ResourcesConfig): Promise<PercentageDiscountPromotion> {\n\t\treturn this.resources.create({ ...resource, type: PercentageDiscountPromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PercentageDiscountPromotion> {\n\t\treturn this.resources.retrieve<PercentageDiscountPromotion>({ type: PercentageDiscountPromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PercentageDiscountPromotionUpdate, options?: ResourcesConfig): Promise<PercentageDiscountPromotion> {\n\t\treturn this.resources.update({ ...resource, type: PercentageDiscountPromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PercentageDiscountPromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPercentageDiscountPromotion(resource: any): resource is PercentageDiscountPromotion {\n\t\treturn resource.type && (resource.type === PercentageDiscountPromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PercentageDiscountPromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PercentageDiscountPromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PercentageDiscountPromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: PercentageDiscountPromotions.TYPE } : {id: id.id, type: PercentageDiscountPromotions.TYPE }\n\t}\n\n}\n\n\nexport default PercentageDiscountPromotions\n\nexport { PercentageDiscountPromotion, PercentageDiscountPromotionCreate, PercentageDiscountPromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Price } from './prices'\nimport { Attachment } from './attachments'\n\n\ntype PriceListRel = ResourceId & { type: typeof PriceLists.TYPE }\n\n\ninterface PriceList extends Resource {\n\t\n\tname?: string\n\tcurrency_code?: string\n\ttax_included?: boolean\n\n\tprices?: Price[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface PriceListCreate extends ResourceCreate {\n\t\n\tname: string\n\tcurrency_code: string\n\ttax_included?: boolean\n\t\n}\n\n\ninterface PriceListUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tcurrency_code?: string\n\ttax_included?: boolean\n\t\n}\n\n\nclass PriceLists extends ApiResource {\n\n\tstatic readonly TYPE: 'price_lists' = 'price_lists'\n\t// static readonly PATH = 'price_lists'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PriceList>> {\n\t\treturn this.resources.list({ type: PriceLists.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PriceListCreate, options?: ResourcesConfig): Promise<PriceList> {\n\t\treturn this.resources.create({ ...resource, type: PriceLists.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PriceList> {\n\t\treturn this.resources.retrieve<PriceList>({ type: PriceLists.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PriceListUpdate, options?: ResourcesConfig): Promise<PriceList> {\n\t\treturn this.resources.update({ ...resource, type: PriceLists.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PriceLists.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPriceList(resource: any): resource is PriceList {\n\t\treturn resource.type && (resource.type === PriceLists.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PriceLists.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PriceLists.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PriceListRel {\n\t\treturn (typeof id === 'string') ? { id, type: PriceLists.TYPE } : {id: id.id, type: PriceLists.TYPE }\n\t}\n\n}\n\n\nexport default PriceLists\n\nexport { PriceList, PriceListCreate, PriceListUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PriceList } from './price_lists'\nimport { Sku } from './skus'\nimport { Attachment } from './attachments'\n\n\ntype PriceRel = ResourceId & { type: typeof Prices.TYPE }\ntype PriceListRel = ResourceId & { type: 'price_lists' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface Price extends Resource {\n\t\n\tcurrency_code?: string\n\tsku_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tcompare_at_amount_cents?: number\n\tcompare_at_amount_float?: number\n\tformatted_compare_at_amount?: string\n\n\tprice_list?: PriceList\n\tsku?: Sku\n\tattachments?: Attachment[]\n\n}\n\n\ninterface PriceCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tamount_cents: number\n\tcompare_at_amount_cents: number\n\n\tprice_list?: PriceListRel\n\tsku?: SkuRel\n\n}\n\n\ninterface PriceUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\tamount_cents?: number\n\tcompare_at_amount_cents?: number\n\n\tprice_list?: PriceListRel\n\tsku?: SkuRel\n\n}\n\n\nclass Prices extends ApiResource {\n\n\tstatic readonly TYPE: 'prices' = 'prices'\n\t// static readonly PATH = 'prices'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Price>> {\n\t\treturn this.resources.list({ type: Prices.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PriceCreate, options?: ResourcesConfig): Promise<Price> {\n\t\treturn this.resources.create({ ...resource, type: Prices.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Price> {\n\t\treturn this.resources.retrieve<Price>({ type: Prices.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PriceUpdate, options?: ResourcesConfig): Promise<Price> {\n\t\treturn this.resources.update({ ...resource, type: Prices.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Prices.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPrice(resource: any): resource is Price {\n\t\treturn resource.type && (resource.type === Prices.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Prices.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Prices.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PriceRel {\n\t\treturn (typeof id === 'string') ? { id, type: Prices.TYPE } : {id: id.id, type: Prices.TYPE }\n\t}\n\n}\n\n\nexport default Prices\n\nexport { Price, PriceCreate, PriceUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { ExternalPromotion } from './external_promotions'\n\n\ntype PromotionRuleRel = ResourceId & { type: typeof PromotionRules.TYPE }\n\n\ninterface PromotionRule extends Resource {\n\t\n\tpromotion?: PercentageDiscountPromotion | FreeShippingPromotion | FixedAmountPromotion | ExternalPromotion\n\n}\n\n\nclass PromotionRules extends ApiResource {\n\n\tstatic readonly TYPE: 'promotion_rules' = 'promotion_rules'\n\t// static readonly PATH = 'promotion_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PromotionRule>> {\n\t\treturn this.resources.list({ type: PromotionRules.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPromotionRule(resource: any): resource is PromotionRule {\n\t\treturn resource.type && (resource.type === PromotionRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PromotionRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PromotionRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PromotionRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: PromotionRules.TYPE } : {id: id.id, type: PromotionRules.TYPE }\n\t}\n\n}\n\n\nexport default PromotionRules\n\nexport { PromotionRule }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\n\n\ntype PromotionRel = ResourceId & { type: typeof Promotions.TYPE }\n\n\ninterface Promotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\n}\n\n\nclass Promotions extends ApiResource {\n\n\tstatic readonly TYPE: 'promotions' = 'promotions'\n\t// static readonly PATH = 'promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Promotion>> {\n\t\treturn this.resources.list({ type: Promotions.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPromotion(resource: any): resource is Promotion {\n\t\treturn resource.type && (resource.type === Promotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Promotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Promotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: Promotions.TYPE } : {id: id.id, type: Promotions.TYPE }\n\t}\n\n}\n\n\nexport default Promotions\n\nexport { Promotion }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Capture } from './captures'\n\n\ntype RefundRel = ResourceId & { type: typeof Refunds.TYPE }\n\n\ninterface Refund extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\n\torder?: Order\n\treference_capture?: Capture\n\n}\n\n\nclass Refunds extends ApiResource {\n\n\tstatic readonly TYPE: 'refunds' = 'refunds'\n\t// static readonly PATH = 'refunds'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Refund>> {\n\t\treturn this.resources.list({ type: Refunds.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Refund> {\n\t\treturn this.resources.retrieve<Refund>({ type: Refunds.TYPE, id }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisRefund(resource: any): resource is Refund {\n\t\treturn resource.type && (resource.type === Refunds.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Refunds.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Refunds.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): RefundRel {\n\t\treturn (typeof id === 'string') ? { id, type: Refunds.TYPE } : {id: id.id, type: Refunds.TYPE }\n\t}\n\n}\n\n\nexport default Refunds\n\nexport { Refund }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Return } from './returns'\nimport { LineItem } from './line_items'\n\n\ntype ReturnLineItemRel = ResourceId & { type: typeof ReturnLineItems.TYPE }\ntype ReturnRel = ResourceId & { type: 'returns' }\ntype LineItemRel = ResourceId & { type: 'line_items' }\n\n\ninterface ReturnLineItem extends Resource {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tname?: string\n\tquantity?: number\n\treturn_reason?: object\n\trestocked_at?: string\n\n\treturn?: Return\n\tline_item?: LineItem\n\n}\n\n\ninterface ReturnLineItemCreate extends ResourceCreate {\n\t\n\tquantity: number\n\treturn_reason?: object\n\n\treturn?: ReturnRel\n\tline_item?: LineItemRel\n\n}\n\n\ninterface ReturnLineItemUpdate extends ResourceUpdate {\n\t\n\tquantity?: number\n\t_restock?: boolean\n\treturn_reason?: object\n\t\n}\n\n\nclass ReturnLineItems extends ApiResource {\n\n\tstatic readonly TYPE: 'return_line_items' = 'return_line_items'\n\t// static readonly PATH = 'return_line_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ReturnLineItem>> {\n\t\treturn this.resources.list({ type: ReturnLineItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ReturnLineItemCreate, options?: ResourcesConfig): Promise<ReturnLineItem> {\n\t\treturn this.resources.create({ ...resource, type: ReturnLineItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ReturnLineItem> {\n\t\treturn this.resources.retrieve<ReturnLineItem>({ type: ReturnLineItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ReturnLineItemUpdate, options?: ResourcesConfig): Promise<ReturnLineItem> {\n\t\treturn this.resources.update({ ...resource, type: ReturnLineItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ReturnLineItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisReturnLineItem(resource: any): resource is ReturnLineItem {\n\t\treturn resource.type && (resource.type === ReturnLineItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ReturnLineItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ReturnLineItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ReturnLineItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: ReturnLineItems.TYPE } : {id: id.id, type: ReturnLineItems.TYPE }\n\t}\n\n}\n\n\nexport default ReturnLineItems\n\nexport { ReturnLineItem, ReturnLineItemCreate, ReturnLineItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Customer } from './customers'\nimport { StockLocation } from './stock_locations'\nimport { Address } from './addresses'\nimport { ReturnLineItem } from './return_line_items'\nimport { Attachment } from './attachments'\n\n\ntype ReturnRel = ResourceId & { type: typeof Returns.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\n\n\ninterface Return extends Resource {\n\t\n\tnumber?: string\n\tstatus?: string\n\tcustomer_email?: string\n\tskus_count?: number\n\tapproved_at?: string\n\tcancelled_at?: string\n\tshipped_at?: string\n\trejected_at?: string\n\treceived_at?: string\n\tarchived_at?: string\n\n\torder?: Order\n\tcustomer?: Customer\n\tstock_location?: StockLocation\n\torigin_address?: Address\n\tdestination_address?: Address\n\treturn_line_items?: ReturnLineItem[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ReturnCreate extends ResourceCreate {\n\t\n\torder?: OrderRel\n\tstock_location?: StockLocationRel\n\n}\n\n\ninterface ReturnUpdate extends ResourceUpdate {\n\t\n\t_request?: boolean\n\t_approve?: boolean\n\t_cancel?: boolean\n\t_ship?: boolean\n\t_reject?: boolean\n\t_receive?: boolean\n\t_restock?: boolean\n\t_archive?: boolean\n\t_unarchive?: boolean\n\n\tstock_location?: StockLocationRel\n\n}\n\n\nclass Returns extends ApiResource {\n\n\tstatic readonly TYPE: 'returns' = 'returns'\n\t// static readonly PATH = 'returns'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Return>> {\n\t\treturn this.resources.list({ type: Returns.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ReturnCreate, options?: ResourcesConfig): Promise<Return> {\n\t\treturn this.resources.create({ ...resource, type: Returns.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Return> {\n\t\treturn this.resources.retrieve<Return>({ type: Returns.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ReturnUpdate, options?: ResourcesConfig): Promise<Return> {\n\t\treturn this.resources.update({ ...resource, type: Returns.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Returns.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisReturn(resource: any): resource is Return {\n\t\treturn resource.type && (resource.type === Returns.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Returns.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Returns.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ReturnRel {\n\t\treturn (typeof id === 'string') ? { id, type: Returns.TYPE } : {id: id.id, type: Returns.TYPE }\n\t}\n\n}\n\n\nexport default Returns\n\nexport { Return, ReturnCreate, ReturnUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { ShippingCategory } from './shipping_categories'\nimport { StockLocation } from './stock_locations'\nimport { Address } from './addresses'\nimport { ShippingMethod } from './shipping_methods'\nimport { DeliveryLeadTime } from './delivery_lead_times'\nimport { StockLineItem } from './stock_line_items'\nimport { StockTransfer } from './stock_transfers'\nimport { CarrierAccount } from './carrier_accounts'\nimport { Parcel } from './parcels'\nimport { Attachment } from './attachments'\n\n\ntype ShipmentRel = ResourceId & { type: typeof Shipments.TYPE }\ntype ShippingMethodRel = ResourceId & { type: 'shipping_methods' }\n\n\ninterface Shipment extends Resource {\n\t\n\tnumber?: string\n\tstatus?: string\n\tcurrency_code?: string\n\tcost_amount_cents?: number\n\tcost_amount_float?: number\n\tformatted_cost_amount?: string\n\tskus_count?: number\n\tselected_rate_id?: string\n\trates?: object[]\n\tpurchase_error_code?: string\n\tpurchase_error_message?: string\n\tget_rates_started_at?: string\n\tget_rates_completed_at?: string\n\tpurchase_started_at?: string\n\tpurchase_completed_at?: string\n\tpurchase_failed_at?: string\n\n\torder?: Order\n\tshipping_category?: ShippingCategory\n\tstock_location?: StockLocation\n\torigin_address?: Address\n\tshipping_address?: Address\n\tshipping_method?: ShippingMethod\n\tdelivery_lead_time?: DeliveryLeadTime\n\t/**\n\t* @deprecated This field should not be used as it may be removed in the future without notice\n\t*/\n\tshipment_line_items?: object[]\n\tstock_line_items?: StockLineItem[]\n\tstock_transfers?: StockTransfer[]\n\tavailable_shipping_methods?: ShippingMethod[]\n\tcarrier_accounts?: CarrierAccount[]\n\tparcels?: Parcel[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ShipmentUpdate extends ResourceUpdate {\n\t\n\t_on_hold?: boolean\n\t_picking?: boolean\n\t_packing?: boolean\n\t_ready_to_ship?: boolean\n\t_ship?: boolean\n\t_get_rates?: boolean\n\tselected_rate_id?: string\n\t_purchase?: boolean\n\n\tshipping_method?: ShippingMethodRel\n\n}\n\n\nclass Shipments extends ApiResource {\n\n\tstatic readonly TYPE: 'shipments' = 'shipments'\n\t// static readonly PATH = 'shipments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Shipment>> {\n\t\treturn this.resources.list({ type: Shipments.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Shipment> {\n\t\treturn this.resources.retrieve<Shipment>({ type: Shipments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ShipmentUpdate, options?: ResourcesConfig): Promise<Shipment> {\n\t\treturn this.resources.update({ ...resource, type: Shipments.TYPE }, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisShipment(resource: any): resource is Shipment {\n\t\treturn resource.type && (resource.type === Shipments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Shipments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Shipments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ShipmentRel {\n\t\treturn (typeof id === 'string') ? { id, type: Shipments.TYPE } : {id: id.id, type: Shipments.TYPE }\n\t}\n\n}\n\n\nexport default Shipments\n\nexport { Shipment, ShipmentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Sku } from './skus'\nimport { Attachment } from './attachments'\n\n\ntype ShippingCategoryRel = ResourceId & { type: typeof ShippingCategories.TYPE }\n\n\ninterface ShippingCategory extends Resource {\n\t\n\tname?: string\n\n\tskus?: Sku[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ShippingCategoryCreate extends ResourceCreate {\n\t\n\tname: string\n\t\n}\n\n\ninterface ShippingCategoryUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\t\n}\n\n\nclass ShippingCategories extends ApiResource {\n\n\tstatic readonly TYPE: 'shipping_categories' = 'shipping_categories'\n\t// static readonly PATH = 'shipping_categories'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ShippingCategory>> {\n\t\treturn this.resources.list({ type: ShippingCategories.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ShippingCategoryCreate, options?: ResourcesConfig): Promise<ShippingCategory> {\n\t\treturn this.resources.create({ ...resource, type: ShippingCategories.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ShippingCategory> {\n\t\treturn this.resources.retrieve<ShippingCategory>({ type: ShippingCategories.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ShippingCategoryUpdate, options?: ResourcesConfig): Promise<ShippingCategory> {\n\t\treturn this.resources.update({ ...resource, type: ShippingCategories.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ShippingCategories.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisShippingCategory(resource: any): resource is ShippingCategory {\n\t\treturn resource.type && (resource.type === ShippingCategories.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ShippingCategories.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ShippingCategories.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ShippingCategoryRel {\n\t\treturn (typeof id === 'string') ? { id, type: ShippingCategories.TYPE } : {id: id.id, type: ShippingCategories.TYPE }\n\t}\n\n}\n\n\nexport default ShippingCategories\n\nexport { ShippingCategory, ShippingCategoryCreate, ShippingCategoryUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { ShippingZone } from './shipping_zones'\nimport { ShippingCategory } from './shipping_categories'\nimport { DeliveryLeadTime } from './delivery_lead_times'\nimport { Attachment } from './attachments'\n\n\ntype ShippingMethodRel = ResourceId & { type: typeof ShippingMethods.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype ShippingZoneRel = ResourceId & { type: 'shipping_zones' }\ntype ShippingCategoryRel = ResourceId & { type: 'shipping_categories' }\n\n\ninterface ShippingMethod extends Resource {\n\t\n\tname?: string\n\tdisabled_at?: string\n\tcurrency_code?: string\n\tprice_amount_cents?: number\n\tprice_amount_float?: number\n\tformatted_price_amount?: string\n\tfree_over_amount_cents?: number\n\tfree_over_amount_float?: number\n\tformatted_free_over_amount?: string\n\tprice_amount_for_shipment_cents?: number\n\tprice_amount_for_shipment_float?: number\n\tformatted_price_amount_for_shipment?: string\n\n\tmarket?: Market\n\tshipping_zone?: ShippingZone\n\tshipping_category?: ShippingCategory\n\tdelivery_lead_time_for_shipment?: DeliveryLeadTime\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ShippingMethodCreate extends ResourceCreate {\n\t\n\tname: string\n\tprice_amount_cents: number\n\tfree_over_amount_cents?: number\n\n\tmarket?: MarketRel\n\tshipping_zone?: ShippingZoneRel\n\tshipping_category?: ShippingCategoryRel\n\n}\n\n\ninterface ShippingMethodUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tprice_amount_cents?: number\n\tfree_over_amount_cents?: number\n\n\tmarket?: MarketRel\n\tshipping_zone?: ShippingZoneRel\n\tshipping_category?: ShippingCategoryRel\n\n}\n\n\nclass ShippingMethods extends ApiResource {\n\n\tstatic readonly TYPE: 'shipping_methods' = 'shipping_methods'\n\t// static readonly PATH = 'shipping_methods'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ShippingMethod>> {\n\t\treturn this.resources.list({ type: ShippingMethods.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ShippingMethodCreate, options?: ResourcesConfig): Promise<ShippingMethod> {\n\t\treturn this.resources.create({ ...resource, type: ShippingMethods.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ShippingMethod> {\n\t\treturn this.resources.retrieve<ShippingMethod>({ type: ShippingMethods.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ShippingMethodUpdate, options?: ResourcesConfig): Promise<ShippingMethod> {\n\t\treturn this.resources.update({ ...resource, type: ShippingMethods.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ShippingMethods.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisShippingMethod(resource: any): resource is ShippingMethod {\n\t\treturn resource.type && (resource.type === ShippingMethods.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ShippingMethods.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ShippingMethods.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ShippingMethodRel {\n\t\treturn (typeof id === 'string') ? { id, type: ShippingMethods.TYPE } : {id: id.id, type: ShippingMethods.TYPE }\n\t}\n\n}\n\n\nexport default ShippingMethods\n\nexport { ShippingMethod, ShippingMethodCreate, ShippingMethodUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Attachment } from './attachments'\n\n\ntype ShippingZoneRel = ResourceId & { type: typeof ShippingZones.TYPE }\n\n\ninterface ShippingZone extends Resource {\n\t\n\tname?: string\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ShippingZoneCreate extends ResourceCreate {\n\t\n\tname: string\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\t\n}\n\n\ninterface ShippingZoneUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\t\n}\n\n\nclass ShippingZones extends ApiResource {\n\n\tstatic readonly TYPE: 'shipping_zones' = 'shipping_zones'\n\t// static readonly PATH = 'shipping_zones'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ShippingZone>> {\n\t\treturn this.resources.list({ type: ShippingZones.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ShippingZoneCreate, options?: ResourcesConfig): Promise<ShippingZone> {\n\t\treturn this.resources.create({ ...resource, type: ShippingZones.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ShippingZone> {\n\t\treturn this.resources.retrieve<ShippingZone>({ type: ShippingZones.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ShippingZoneUpdate, options?: ResourcesConfig): Promise<ShippingZone> {\n\t\treturn this.resources.update({ ...resource, type: ShippingZones.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ShippingZones.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisShippingZone(resource: any): resource is ShippingZone {\n\t\treturn resource.type && (resource.type === ShippingZones.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ShippingZones.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ShippingZones.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ShippingZoneRel {\n\t\treturn (typeof id === 'string') ? { id, type: ShippingZones.TYPE } : {id: id.id, type: ShippingZones.TYPE }\n\t}\n\n}\n\n\nexport default ShippingZones\n\nexport { ShippingZone, ShippingZoneCreate, ShippingZoneUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\n\n\ntype SkuListItemRel = ResourceId & { type: typeof SkuListItems.TYPE }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface SkuListItem extends Resource {\n\t\n\tposition?: number\n\tquantity?: number\n\n\tsku_list?: SkuList\n\tsku?: Sku\n\n}\n\n\ninterface SkuListItemCreate extends ResourceCreate {\n\t\n\tposition: number\n\tquantity: number\n\n\tsku_list?: SkuListRel\n\tsku?: SkuRel\n\n}\n\n\ninterface SkuListItemUpdate extends ResourceUpdate {\n\t\n\tposition?: number\n\tquantity?: number\n\t\n}\n\n\nclass SkuListItems extends ApiResource {\n\n\tstatic readonly TYPE: 'sku_list_items' = 'sku_list_items'\n\t// static readonly PATH = 'sku_list_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<SkuListItem>> {\n\t\treturn this.resources.list({ type: SkuListItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuListItemCreate, options?: ResourcesConfig): Promise<SkuListItem> {\n\t\treturn this.resources.create({ ...resource, type: SkuListItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<SkuListItem> {\n\t\treturn this.resources.retrieve<SkuListItem>({ type: SkuListItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuListItemUpdate, options?: ResourcesConfig): Promise<SkuListItem> {\n\t\treturn this.resources.update({ ...resource, type: SkuListItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: SkuListItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSkuListItem(resource: any): resource is SkuListItem {\n\t\treturn resource.type && (resource.type === SkuListItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(SkuListItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(SkuListItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuListItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: SkuListItems.TYPE } : {id: id.id, type: SkuListItems.TYPE }\n\t}\n\n}\n\n\nexport default SkuListItems\n\nexport { SkuListItem, SkuListItemCreate, SkuListItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { ExternalPromotion } from './external_promotions'\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\n\n\ntype SkuListPromotionRuleRel = ResourceId & { type: typeof SkuListPromotionRules.TYPE }\ntype PercentageDiscountPromotionRel = ResourceId & { type: 'percentage_discount_promotions' }\ntype FreeShippingPromotionRel = ResourceId & { type: 'free_shipping_promotions' }\ntype FixedAmountPromotionRel = ResourceId & { type: 'fixed_amount_promotions' }\ntype ExternalPromotionRel = ResourceId & { type: 'external_promotions' }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\n\n\ninterface SkuListPromotionRule extends Resource {\n\t\n\tall_skus?: boolean\n\n\tpromotion?: PercentageDiscountPromotion | FreeShippingPromotion | FixedAmountPromotion | ExternalPromotion\n\tsku_list?: SkuList\n\tskus?: Sku[]\n\n}\n\n\ninterface SkuListPromotionRuleCreate extends ResourceCreate {\n\t\n\tall_skus?: boolean\n\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | ExternalPromotionRel\n\tsku_list?: SkuListRel\n\n}\n\n\ninterface SkuListPromotionRuleUpdate extends ResourceUpdate {\n\t\n\tall_skus?: boolean\n\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | ExternalPromotionRel\n\tsku_list?: SkuListRel\n\n}\n\n\nclass SkuListPromotionRules extends ApiResource {\n\n\tstatic readonly TYPE: 'sku_list_promotion_rules' = 'sku_list_promotion_rules'\n\t// static readonly PATH = 'sku_list_promotion_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<SkuListPromotionRule>> {\n\t\treturn this.resources.list({ type: SkuListPromotionRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuListPromotionRuleCreate, options?: ResourcesConfig): Promise<SkuListPromotionRule> {\n\t\treturn this.resources.create({ ...resource, type: SkuListPromotionRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<SkuListPromotionRule> {\n\t\treturn this.resources.retrieve<SkuListPromotionRule>({ type: SkuListPromotionRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuListPromotionRuleUpdate, options?: ResourcesConfig): Promise<SkuListPromotionRule> {\n\t\treturn this.resources.update({ ...resource, type: SkuListPromotionRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: SkuListPromotionRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSkuListPromotionRule(resource: any): resource is SkuListPromotionRule {\n\t\treturn resource.type && (resource.type === SkuListPromotionRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(SkuListPromotionRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(SkuListPromotionRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuListPromotionRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: SkuListPromotionRules.TYPE } : {id: id.id, type: SkuListPromotionRules.TYPE }\n\t}\n\n}\n\n\nexport default SkuListPromotionRules\n\nexport { SkuListPromotionRule, SkuListPromotionRuleCreate, SkuListPromotionRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Sku } from './skus'\nimport { SkuListItem } from './sku_list_items'\nimport { Bundle } from './bundles'\n\n\ntype SkuListRel = ResourceId & { type: typeof SkuLists.TYPE }\n\n\ninterface SkuList extends Resource {\n\t\n\tname?: string\n\tslug?: string\n\tdescription?: string\n\timage_url?: string\n\tmanual?: boolean\n\tsku_code_regex?: string\n\n\tskus?: Sku[]\n\tsku_list_items?: SkuListItem[]\n\tbundles?: Bundle[]\n\n}\n\n\ninterface SkuListCreate extends ResourceCreate {\n\t\n\tname: string\n\tdescription?: string\n\timage_url?: string\n\tmanual?: boolean\n\tsku_code_regex?: string\n\t\n}\n\n\ninterface SkuListUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tmanual?: boolean\n\tsku_code_regex?: string\n\t\n}\n\n\nclass SkuLists extends ApiResource {\n\n\tstatic readonly TYPE: 'sku_lists' = 'sku_lists'\n\t// static readonly PATH = 'sku_lists'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<SkuList>> {\n\t\treturn this.resources.list({ type: SkuLists.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuListCreate, options?: ResourcesConfig): Promise<SkuList> {\n\t\treturn this.resources.create({ ...resource, type: SkuLists.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<SkuList> {\n\t\treturn this.resources.retrieve<SkuList>({ type: SkuLists.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuListUpdate, options?: ResourcesConfig): Promise<SkuList> {\n\t\treturn this.resources.update({ ...resource, type: SkuLists.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: SkuLists.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSkuList(resource: any): resource is SkuList {\n\t\treturn resource.type && (resource.type === SkuLists.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(SkuLists.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(SkuLists.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuListRel {\n\t\treturn (typeof id === 'string') ? { id, type: SkuLists.TYPE } : {id: id.id, type: SkuLists.TYPE }\n\t}\n\n}\n\n\nexport default SkuLists\n\nexport { SkuList, SkuListCreate, SkuListUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype SkuOptionRel = ResourceId & { type: typeof SkuOptions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\n\n\ninterface SkuOption extends Resource {\n\t\n\tname?: string\n\tdescription?: string\n\tprice_amount_cents?: number\n\tprice_amount_float?: number\n\tformatted_price_amount?: string\n\tdelay_hours?: number\n\tdelay_days?: number\n\tsku_code_regex?: string\n\n\tmarket?: Market\n\tattachments?: Attachment[]\n\n}\n\n\ninterface SkuOptionCreate extends ResourceCreate {\n\t\n\tname: string\n\tdescription?: string\n\tprice_amount_cents?: number\n\tdelay_hours?: number\n\tsku_code_regex?: string\n\n\tmarket?: MarketRel\n\n}\n\n\ninterface SkuOptionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tdescription?: string\n\tprice_amount_cents?: number\n\tdelay_hours?: number\n\tsku_code_regex?: string\n\n\tmarket?: MarketRel\n\n}\n\n\nclass SkuOptions extends ApiResource {\n\n\tstatic readonly TYPE: 'sku_options' = 'sku_options'\n\t// static readonly PATH = 'sku_options'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<SkuOption>> {\n\t\treturn this.resources.list({ type: SkuOptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuOptionCreate, options?: ResourcesConfig): Promise<SkuOption> {\n\t\treturn this.resources.create({ ...resource, type: SkuOptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<SkuOption> {\n\t\treturn this.resources.retrieve<SkuOption>({ type: SkuOptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuOptionUpdate, options?: ResourcesConfig): Promise<SkuOption> {\n\t\treturn this.resources.update({ ...resource, type: SkuOptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: SkuOptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSkuOption(resource: any): resource is SkuOption {\n\t\treturn resource.type && (resource.type === SkuOptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(SkuOptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(SkuOptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuOptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: SkuOptions.TYPE } : {id: id.id, type: SkuOptions.TYPE }\n\t}\n\n}\n\n\nexport default SkuOptions\n\nexport { SkuOption, SkuOptionCreate, SkuOptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { ShippingCategory } from './shipping_categories'\nimport { Price } from './prices'\nimport { StockItem } from './stock_items'\nimport { DeliveryLeadTime } from './delivery_lead_times'\nimport { SkuOption } from './sku_options'\nimport { Attachment } from './attachments'\n\n\ntype SkuRel = ResourceId & { type: typeof Skus.TYPE }\ntype ShippingCategoryRel = ResourceId & { type: 'shipping_categories' }\n\n\ninterface Sku extends Resource {\n\t\n\tcode?: string\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tpieces_per_pack?: number\n\tweight?: number\n\tunit_of_weight?: string\n\ths_tariff_number?: string\n\tdo_not_ship?: boolean\n\tdo_not_track?: boolean\n\tinventory?: object\n\n\tshipping_category?: ShippingCategory\n\tprices?: Price[]\n\tstock_items?: StockItem[]\n\tdelivery_lead_times?: DeliveryLeadTime[]\n\tsku_options?: SkuOption[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface SkuCreate extends ResourceCreate {\n\t\n\tcode: string\n\tname: string\n\tdescription?: string\n\timage_url?: string\n\tpieces_per_pack?: number\n\tweight?: number\n\tunit_of_weight?: string\n\ths_tariff_number?: string\n\tdo_not_ship?: boolean\n\tdo_not_track?: boolean\n\n\tshipping_category?: ShippingCategoryRel\n\n}\n\n\ninterface SkuUpdate extends ResourceUpdate {\n\t\n\tcode?: string\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tpieces_per_pack?: number\n\tweight?: number\n\tunit_of_weight?: string\n\ths_tariff_number?: string\n\tdo_not_ship?: boolean\n\tdo_not_track?: boolean\n\n\tshipping_category?: ShippingCategoryRel\n\n}\n\n\nclass Skus extends ApiResource {\n\n\tstatic readonly TYPE: 'skus' = 'skus'\n\t// static readonly PATH = 'skus'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Sku>> {\n\t\treturn this.resources.list({ type: Skus.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuCreate, options?: ResourcesConfig): Promise<Sku> {\n\t\treturn this.resources.create({ ...resource, type: Skus.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Sku> {\n\t\treturn this.resources.retrieve<Sku>({ type: Skus.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuUpdate, options?: ResourcesConfig): Promise<Sku> {\n\t\treturn this.resources.update({ ...resource, type: Skus.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Skus.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSku(resource: any): resource is Sku {\n\t\treturn resource.type && (resource.type === Skus.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Skus.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Skus.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuRel {\n\t\treturn (typeof id === 'string') ? { id, type: Skus.TYPE } : {id: id.id, type: Skus.TYPE }\n\t}\n\n}\n\n\nexport default Skus\n\nexport { Sku, SkuCreate, SkuUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { Sku } from './skus'\nimport { Attachment } from './attachments'\n\n\ntype StockItemRel = ResourceId & { type: typeof StockItems.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface StockItem extends Resource {\n\t\n\tsku_code?: string\n\tquantity?: number\n\n\tstock_location?: StockLocation\n\tsku?: Sku\n\tattachments?: Attachment[]\n\n}\n\n\ninterface StockItemCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tquantity: number\n\n\tstock_location?: StockLocationRel\n\tsku?: SkuRel\n\n}\n\n\ninterface StockItemUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\tquantity?: number\n\n\tstock_location?: StockLocationRel\n\tsku?: SkuRel\n\n}\n\n\nclass StockItems extends ApiResource {\n\n\tstatic readonly TYPE: 'stock_items' = 'stock_items'\n\t// static readonly PATH = 'stock_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StockItem>> {\n\t\treturn this.resources.list({ type: StockItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StockItemCreate, options?: ResourcesConfig): Promise<StockItem> {\n\t\treturn this.resources.create({ ...resource, type: StockItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StockItem> {\n\t\treturn this.resources.retrieve<StockItem>({ type: StockItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StockItemUpdate, options?: ResourcesConfig): Promise<StockItem> {\n\t\treturn this.resources.update({ ...resource, type: StockItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StockItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStockItem(resource: any): resource is StockItem {\n\t\treturn resource.type && (resource.type === StockItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StockItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StockItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StockItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: StockItems.TYPE } : {id: id.id, type: StockItems.TYPE }\n\t}\n\n}\n\n\nexport default StockItems\n\nexport { StockItem, StockItemCreate, StockItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Shipment } from './shipments'\nimport { LineItem } from './line_items'\nimport { StockItem } from './stock_items'\n\n\ntype StockLineItemRel = ResourceId & { type: typeof StockLineItems.TYPE }\n\n\ninterface StockLineItem extends Resource {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tquantity?: number\n\n\tshipment?: Shipment\n\tline_item?: LineItem\n\tstock_item?: StockItem\n\n}\n\n\nclass StockLineItems extends ApiResource {\n\n\tstatic readonly TYPE: 'stock_line_items' = 'stock_line_items'\n\t// static readonly PATH = 'stock_line_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StockLineItem>> {\n\t\treturn this.resources.list({ type: StockLineItems.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StockLineItem> {\n\t\treturn this.resources.retrieve<StockLineItem>({ type: StockLineItems.TYPE, id }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStockLineItem(resource: any): resource is StockLineItem {\n\t\treturn resource.type && (resource.type === StockLineItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StockLineItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StockLineItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StockLineItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: StockLineItems.TYPE } : {id: id.id, type: StockLineItems.TYPE }\n\t}\n\n}\n\n\nexport default StockLineItems\n\nexport { StockLineItem }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Address } from './addresses'\nimport { InventoryStockLocation } from './inventory_stock_locations'\nimport { InventoryReturnLocation } from './inventory_return_locations'\nimport { StockItem } from './stock_items'\nimport { StockTransfer } from './stock_transfers'\nimport { Attachment } from './attachments'\n\n\ntype StockLocationRel = ResourceId & { type: typeof StockLocations.TYPE }\ntype AddressRel = ResourceId & { type: 'addresses' }\n\n\ninterface StockLocation extends Resource {\n\t\n\tnumber?: number\n\tname?: string\n\tlabel_format?: string\n\tsuppress_etd?: boolean\n\n\taddress?: Address\n\tinventory_stock_locations?: InventoryStockLocation[]\n\tinventory_return_locations?: InventoryReturnLocation[]\n\tstock_items?: StockItem[]\n\tstock_transfers?: StockTransfer[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface StockLocationCreate extends ResourceCreate {\n\t\n\tname: string\n\tlabel_format?: string\n\tsuppress_etd?: boolean\n\n\taddress?: AddressRel\n\n}\n\n\ninterface StockLocationUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tlabel_format?: string\n\tsuppress_etd?: boolean\n\n\taddress?: AddressRel\n\n}\n\n\nclass StockLocations extends ApiResource {\n\n\tstatic readonly TYPE: 'stock_locations' = 'stock_locations'\n\t// static readonly PATH = 'stock_locations'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StockLocation>> {\n\t\treturn this.resources.list({ type: StockLocations.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StockLocationCreate, options?: ResourcesConfig): Promise<StockLocation> {\n\t\treturn this.resources.create({ ...resource, type: StockLocations.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StockLocation> {\n\t\treturn this.resources.retrieve<StockLocation>({ type: StockLocations.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StockLocationUpdate, options?: ResourcesConfig): Promise<StockLocation> {\n\t\treturn this.resources.update({ ...resource, type: StockLocations.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StockLocations.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStockLocation(resource: any): resource is StockLocation {\n\t\treturn resource.type && (resource.type === StockLocations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StockLocations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StockLocations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StockLocationRel {\n\t\treturn (typeof id === 'string') ? { id, type: StockLocations.TYPE } : {id: id.id, type: StockLocations.TYPE }\n\t}\n\n}\n\n\nexport default StockLocations\n\nexport { StockLocation, StockLocationCreate, StockLocationUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Sku } from './skus'\nimport { StockLocation } from './stock_locations'\nimport { Shipment } from './shipments'\nimport { LineItem } from './line_items'\n\n\ntype StockTransferRel = ResourceId & { type: typeof StockTransfers.TYPE }\ntype SkuRel = ResourceId & { type: 'skus' }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype ShipmentRel = ResourceId & { type: 'shipments' }\ntype LineItemRel = ResourceId & { type: 'line_items' }\n\n\ninterface StockTransfer extends Resource {\n\t\n\tsku_code?: string\n\tstatus?: string\n\tquantity?: number\n\tcompleted_at?: string\n\tcancelled_at?: string\n\n\tsku?: Sku\n\torigin_stock_location?: StockLocation\n\tdestination_stock_location?: StockLocation\n\tshipment?: Shipment\n\tline_item?: LineItem\n\n}\n\n\ninterface StockTransferCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tquantity: number\n\n\tsku?: SkuRel\n\torigin_stock_location?: StockLocationRel\n\tdestination_stock_location?: StockLocationRel\n\tshipment?: ShipmentRel\n\tline_item?: LineItemRel\n\n}\n\n\ninterface StockTransferUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\t_upcoming?: boolean\n\t_picking?: boolean\n\t_in_transit?: boolean\n\t_complete?: boolean\n\t_cancel?: boolean\n\n\tsku?: SkuRel\n\torigin_stock_location?: StockLocationRel\n\tdestination_stock_location?: StockLocationRel\n\n}\n\n\nclass StockTransfers extends ApiResource {\n\n\tstatic readonly TYPE: 'stock_transfers' = 'stock_transfers'\n\t// static readonly PATH = 'stock_transfers'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StockTransfer>> {\n\t\treturn this.resources.list({ type: StockTransfers.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StockTransferCreate, options?: ResourcesConfig): Promise<StockTransfer> {\n\t\treturn this.resources.create({ ...resource, type: StockTransfers.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StockTransfer> {\n\t\treturn this.resources.retrieve<StockTransfer>({ type: StockTransfers.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StockTransferUpdate, options?: ResourcesConfig): Promise<StockTransfer> {\n\t\treturn this.resources.update({ ...resource, type: StockTransfers.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StockTransfers.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStockTransfer(resource: any): resource is StockTransfer {\n\t\treturn resource.type && (resource.type === StockTransfers.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StockTransfers.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StockTransfers.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StockTransferRel {\n\t\treturn (typeof id === 'string') ? { id, type: StockTransfers.TYPE } : {id: id.id, type: StockTransfers.TYPE }\n\t}\n\n}\n\n\nexport default StockTransfers\n\nexport { StockTransfer, StockTransferCreate, StockTransferUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { StripePayment } from './stripe_payments'\n\n\ntype StripeGatewayRel = ResourceId & { type: typeof StripeGateways.TYPE }\n\n\ninterface StripeGateway extends Resource {\n\t\n\tname?: string\n\twebhook_endpoint_id?: string\n\twebhook_endpoint_secret?: string\n\twebhook_endpoint_url?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tstripe_payments?: StripePayment[]\n\n}\n\n\ninterface StripeGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tlogin: string\n\tpublishable_key?: string\n\t\n}\n\n\ninterface StripeGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\t\n}\n\n\nclass StripeGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'stripe_gateways' = 'stripe_gateways'\n\t// static readonly PATH = 'stripe_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StripeGateway>> {\n\t\treturn this.resources.list({ type: StripeGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StripeGatewayCreate, options?: ResourcesConfig): Promise<StripeGateway> {\n\t\treturn this.resources.create({ ...resource, type: StripeGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StripeGateway> {\n\t\treturn this.resources.retrieve<StripeGateway>({ type: StripeGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StripeGatewayUpdate, options?: ResourcesConfig): Promise<StripeGateway> {\n\t\treturn this.resources.update({ ...resource, type: StripeGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StripeGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStripeGateway(resource: any): resource is StripeGateway {\n\t\treturn resource.type && (resource.type === StripeGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StripeGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StripeGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StripeGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: StripeGateways.TYPE } : {id: id.id, type: StripeGateways.TYPE }\n\t}\n\n}\n\n\nexport default StripeGateways\n\nexport { StripeGateway, StripeGatewayCreate, StripeGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype StripePaymentRel = ResourceId & { type: typeof StripePayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface StripePayment extends Resource {\n\t\n\tclient_secret?: string\n\tpublishable_key?: string\n\toptions?: object\n\tpayment_method?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface StripePaymentCreate extends ResourceCreate {\n\t\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\ninterface StripePaymentUpdate extends ResourceUpdate {\n\t\n\toptions?: object\n\t_refresh?: boolean\n\n\torder?: OrderRel\n\n}\n\n\nclass StripePayments extends ApiResource {\n\n\tstatic readonly TYPE: 'stripe_payments' = 'stripe_payments'\n\t// static readonly PATH = 'stripe_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StripePayment>> {\n\t\treturn this.resources.list({ type: StripePayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StripePaymentCreate, options?: ResourcesConfig): Promise<StripePayment> {\n\t\treturn this.resources.create({ ...resource, type: StripePayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StripePayment> {\n\t\treturn this.resources.retrieve<StripePayment>({ type: StripePayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StripePaymentUpdate, options?: ResourcesConfig): Promise<StripePayment> {\n\t\treturn this.resources.update({ ...resource, type: StripePayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StripePayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStripePayment(resource: any): resource is StripePayment {\n\t\treturn resource.type && (resource.type === StripePayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StripePayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StripePayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StripePaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: StripePayments.TYPE } : {id: id.id, type: StripePayments.TYPE }\n\t}\n\n}\n\n\nexport default StripePayments\n\nexport { StripePayment, StripePaymentCreate, StripePaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype TaxCalculatorRel = ResourceId & { type: typeof TaxCalculators.TYPE }\n\n\ninterface TaxCalculator extends Resource {\n\t\n\tname?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\nclass TaxCalculators extends ApiResource {\n\n\tstatic readonly TYPE: 'tax_calculators' = 'tax_calculators'\n\t// static readonly PATH = 'tax_calculators'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<TaxCalculator>> {\n\t\treturn this.resources.list({ type: TaxCalculators.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTaxCalculator(resource: any): resource is TaxCalculator {\n\t\treturn resource.type && (resource.type === TaxCalculators.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(TaxCalculators.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(TaxCalculators.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TaxCalculatorRel {\n\t\treturn (typeof id === 'string') ? { id, type: TaxCalculators.TYPE } : {id: id.id, type: TaxCalculators.TYPE }\n\t}\n\n}\n\n\nexport default TaxCalculators\n\nexport { TaxCalculator }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Sku } from './skus'\nimport { AvalaraAccount } from './avalara_accounts'\nimport { TaxjarAccount } from './taxjar_accounts'\nimport { ManualTaxCalculator } from './manual_tax_calculators'\nimport { ExternalTaxCalculator } from './external_tax_calculators'\nimport { Attachment } from './attachments'\n\n\ntype TaxCategoryRel = ResourceId & { type: typeof TaxCategories.TYPE }\ntype SkuRel = ResourceId & { type: 'skus' }\ntype AvalaraAccountRel = ResourceId & { type: 'avalara_accounts' }\ntype TaxjarAccountRel = ResourceId & { type: 'taxjar_accounts' }\ntype ManualTaxCalculatorRel = ResourceId & { type: 'manual_tax_calculators' }\ntype ExternalTaxCalculatorRel = ResourceId & { type: 'external_tax_calculators' }\n\n\ninterface TaxCategory extends Resource {\n\t\n\tcode?: string\n\tsku_code?: string\n\n\tsku?: Sku\n\ttax_calculator?: AvalaraAccount | TaxjarAccount | ManualTaxCalculator | ExternalTaxCalculator\n\tattachments?: Attachment[]\n\n}\n\n\ninterface TaxCategoryCreate extends ResourceCreate {\n\t\n\tcode: string\n\tsku_code?: string\n\n\tsku?: SkuRel\n\ttax_calculator?: AvalaraAccountRel | TaxjarAccountRel | ManualTaxCalculatorRel | ExternalTaxCalculatorRel\n\n}\n\n\ninterface TaxCategoryUpdate extends ResourceUpdate {\n\t\n\tcode?: string\n\tsku_code?: string\n\n\tsku?: SkuRel\n\n}\n\n\nclass TaxCategories extends ApiResource {\n\n\tstatic readonly TYPE: 'tax_categories' = 'tax_categories'\n\t// static readonly PATH = 'tax_categories'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<TaxCategory>> {\n\t\treturn this.resources.list({ type: TaxCategories.TYPE }, params, options)\n\t}\n\n\tasync create(resource: TaxCategoryCreate, options?: ResourcesConfig): Promise<TaxCategory> {\n\t\treturn this.resources.create({ ...resource, type: TaxCategories.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<TaxCategory> {\n\t\treturn this.resources.retrieve<TaxCategory>({ type: TaxCategories.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: TaxCategoryUpdate, options?: ResourcesConfig): Promise<TaxCategory> {\n\t\treturn this.resources.update({ ...resource, type: TaxCategories.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: TaxCategories.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTaxCategory(resource: any): resource is TaxCategory {\n\t\treturn resource.type && (resource.type === TaxCategories.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(TaxCategories.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(TaxCategories.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TaxCategoryRel {\n\t\treturn (typeof id === 'string') ? { id, type: TaxCategories.TYPE } : {id: id.id, type: TaxCategories.TYPE }\n\t}\n\n}\n\n\nexport default TaxCategories\n\nexport { TaxCategory, TaxCategoryCreate, TaxCategoryUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { ManualTaxCalculator } from './manual_tax_calculators'\n\n\ntype TaxRuleRel = ResourceId & { type: typeof TaxRules.TYPE }\ntype ManualTaxCalculatorRel = ResourceId & { type: 'manual_tax_calculators' }\n\n\ninterface TaxRule extends Resource {\n\t\n\tname?: string\n\ttax_rate?: number\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\tfreight_taxable?: boolean\n\tpayment_method_taxable?: boolean\n\tgift_card_taxable?: boolean\n\tadjustment_taxable?: boolean\n\tbreakdown?: object\n\n\tmanual_tax_calculator?: ManualTaxCalculator\n\n}\n\n\ninterface TaxRuleCreate extends ResourceCreate {\n\t\n\tname: string\n\ttax_rate?: number\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\tfreight_taxable?: boolean\n\tpayment_method_taxable?: boolean\n\tgift_card_taxable?: boolean\n\tadjustment_taxable?: boolean\n\n\tmanual_tax_calculator?: ManualTaxCalculatorRel\n\n}\n\n\ninterface TaxRuleUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\ttax_rate?: number\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\tfreight_taxable?: boolean\n\tpayment_method_taxable?: boolean\n\tgift_card_taxable?: boolean\n\tadjustment_taxable?: boolean\n\n\tmanual_tax_calculator?: ManualTaxCalculatorRel\n\n}\n\n\nclass TaxRules extends ApiResource {\n\n\tstatic readonly TYPE: 'tax_rules' = 'tax_rules'\n\t// static readonly PATH = 'tax_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<TaxRule>> {\n\t\treturn this.resources.list({ type: TaxRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: TaxRuleCreate, options?: ResourcesConfig): Promise<TaxRule> {\n\t\treturn this.resources.create({ ...resource, type: TaxRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<TaxRule> {\n\t\treturn this.resources.retrieve<TaxRule>({ type: TaxRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: TaxRuleUpdate, options?: ResourcesConfig): Promise<TaxRule> {\n\t\treturn this.resources.update({ ...resource, type: TaxRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: TaxRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTaxRule(resource: any): resource is TaxRule {\n\t\treturn resource.type && (resource.type === TaxRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(TaxRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(TaxRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TaxRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: TaxRules.TYPE } : {id: id.id, type: TaxRules.TYPE }\n\t}\n\n}\n\n\nexport default TaxRules\n\nexport { TaxRule, TaxRuleCreate, TaxRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype TaxjarAccountRel = ResourceId & { type: typeof TaxjarAccounts.TYPE }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\n\n\ninterface TaxjarAccount extends Resource {\n\t\n\tname?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface TaxjarAccountCreate extends ResourceCreate {\n\t\n\tname: string\n\tapi_key: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\ninterface TaxjarAccountUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tapi_key?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\nclass TaxjarAccounts extends ApiResource {\n\n\tstatic readonly TYPE: 'taxjar_accounts' = 'taxjar_accounts'\n\t// static readonly PATH = 'taxjar_accounts'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<TaxjarAccount>> {\n\t\treturn this.resources.list({ type: TaxjarAccounts.TYPE }, params, options)\n\t}\n\n\tasync create(resource: TaxjarAccountCreate, options?: ResourcesConfig): Promise<TaxjarAccount> {\n\t\treturn this.resources.create({ ...resource, type: TaxjarAccounts.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<TaxjarAccount> {\n\t\treturn this.resources.retrieve<TaxjarAccount>({ type: TaxjarAccounts.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: TaxjarAccountUpdate, options?: ResourcesConfig): Promise<TaxjarAccount> {\n\t\treturn this.resources.update({ ...resource, type: TaxjarAccounts.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: TaxjarAccounts.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTaxjarAccount(resource: any): resource is TaxjarAccount {\n\t\treturn resource.type && (resource.type === TaxjarAccounts.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(TaxjarAccounts.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(TaxjarAccounts.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TaxjarAccountRel {\n\t\treturn (typeof id === 'string') ? { id, type: TaxjarAccounts.TYPE } : {id: id.id, type: TaxjarAccounts.TYPE }\n\t}\n\n}\n\n\nexport default TaxjarAccounts\n\nexport { TaxjarAccount, TaxjarAccountCreate, TaxjarAccountUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { Order } from './orders'\n\n\ntype TransactionRel = ResourceId & { type: typeof Transactions.TYPE }\n\n\ninterface Transaction extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\n\torder?: Order\n\n}\n\n\nclass Transactions extends ApiResource {\n\n\tstatic readonly TYPE: 'transactions' = 'transactions'\n\t// static readonly PATH = 'transactions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Transaction>> {\n\t\treturn this.resources.list({ type: Transactions.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTransaction(resource: any): resource is Transaction {\n\t\treturn resource.type && (resource.type === Transactions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Transactions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Transactions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TransactionRel {\n\t\treturn (typeof id === 'string') ? { id, type: Transactions.TYPE } : {id: id.id, type: Transactions.TYPE }\n\t}\n\n}\n\n\nexport default Transactions\n\nexport { Transaction }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Authorization } from './authorizations'\n\n\ntype VoidRel = ResourceId & { type: typeof Voids.TYPE }\n\n\ninterface Void extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\n\torder?: Order\n\treference_authorization?: Authorization\n\n}\n\n\nclass Voids extends ApiResource {\n\n\tstatic readonly TYPE: 'voids' = 'voids'\n\t// static readonly PATH = 'voids'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Void>> {\n\t\treturn this.resources.list({ type: Voids.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Void> {\n\t\treturn this.resources.retrieve<Void>({ type: Voids.TYPE, id }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisVoid(resource: any): resource is Void {\n\t\treturn resource.type && (resource.type === Voids.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Voids.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Voids.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): VoidRel {\n\t\treturn (typeof id === 'string') ? { id, type: Voids.TYPE } : {id: id.id, type: Voids.TYPE }\n\t}\n\n}\n\n\nexport default Voids\n\nexport { Void }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { EventCallback } from './event_callbacks'\n\n\ntype WebhookRel = ResourceId & { type: typeof Webhooks.TYPE }\n\n\ninterface Webhook extends Resource {\n\t\n\tname?: string\n\ttopic?: string\n\tcallback_url?: string\n\tinclude_resources?: string[]\n\tcircuit_state?: string\n\tcircuit_failure_count?: number\n\n\tlast_event_callbacks?: EventCallback[]\n\n}\n\n\ninterface WebhookCreate extends ResourceCreate {\n\t\n\tname: string\n\ttopic: string\n\tcallback_url: string\n\tinclude_resources?: string[]\n\t\n}\n\n\ninterface WebhookUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\ttopic?: string\n\tcallback_url?: string\n\tinclude_resources?: string[]\n\t_reset_circuit?: boolean\n\t\n}\n\n\nclass Webhooks extends ApiResource {\n\n\tstatic readonly TYPE: 'webhooks' = 'webhooks'\n\t// static readonly PATH = 'webhooks'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Webhook>> {\n\t\treturn this.resources.list({ type: Webhooks.TYPE }, params, options)\n\t}\n\n\tasync create(resource: WebhookCreate, options?: ResourcesConfig): Promise<Webhook> {\n\t\treturn this.resources.create({ ...resource, type: Webhooks.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Webhook> {\n\t\treturn this.resources.retrieve<Webhook>({ type: Webhooks.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: WebhookUpdate, options?: ResourcesConfig): Promise<Webhook> {\n\t\treturn this.resources.update({ ...resource, type: Webhooks.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Webhooks.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisWebhook(resource: any): resource is Webhook {\n\t\treturn resource.type && (resource.type === Webhooks.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Webhooks.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Webhooks.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): WebhookRel {\n\t\treturn (typeof id === 'string') ? { id, type: Webhooks.TYPE } : {id: id.id, type: Webhooks.TYPE }\n\t}\n\n}\n\n\nexport default Webhooks\n\nexport { Webhook, WebhookCreate, WebhookUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\n\n\ntype WireTransferRel = ResourceId & { type: typeof WireTransfers.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface WireTransfer extends Resource {\n\t\n\torder?: Order\n\n}\n\n\ninterface WireTransferCreate extends ResourceCreate {\n\t\n\torder?: OrderRel\n\n}\n\n\ninterface WireTransferUpdate extends ResourceUpdate {\n\t\n\torder?: OrderRel\n\n}\n\n\nclass WireTransfers extends ApiResource {\n\n\tstatic readonly TYPE: 'wire_transfers' = 'wire_transfers'\n\t// static readonly PATH = 'wire_transfers'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<WireTransfer>> {\n\t\treturn this.resources.list({ type: WireTransfers.TYPE }, params, options)\n\t}\n\n\tasync create(resource: WireTransferCreate, options?: ResourcesConfig): Promise<WireTransfer> {\n\t\treturn this.resources.create({ ...resource, type: WireTransfers.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<WireTransfer> {\n\t\treturn this.resources.retrieve<WireTransfer>({ type: WireTransfers.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: WireTransferUpdate, options?: ResourcesConfig): Promise<WireTransfer> {\n\t\treturn this.resources.update({ ...resource, type: WireTransfers.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: WireTransfers.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisWireTransfer(resource: any): resource is WireTransfer {\n\t\treturn resource.type && (resource.type === WireTransfers.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(WireTransfers.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(WireTransfers.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): WireTransferRel {\n\t\treturn (typeof id === 'string') ? { id, type: WireTransfers.TYPE } : {id: id.id, type: WireTransfers.TYPE }\n\t}\n\n}\n\n\nexport default WireTransfers\n\nexport { WireTransfer, WireTransferCreate, WireTransferUpdate }\n","\n// ##__API_RESOURCES_START__##\n// ##__API_RESOURCES_TEMPLATE:: export { default as ##__RESOURCE_CLASS__## } from './resources/##__RESOURCE_TYPE__##'\n/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.0\n **/\nexport { default as Addresses } from './resources/addresses'\nexport { default as Adjustments } from './resources/adjustments'\nexport { default as AdyenGateways } from './resources/adyen_gateways'\nexport { default as AdyenPayments } from './resources/adyen_payments'\nexport { default as Applications } from './resources/application'\nexport { default as Attachments } from './resources/attachments'\nexport { default as Authorizations } from './resources/authorizations'\nexport { default as AvalaraAccounts } from './resources/avalara_accounts'\nexport { default as BillingInfoValidationRules } from './resources/billing_info_validation_rules'\nexport { default as BingGeocoders } from './resources/bing_geocoders'\nexport { default as BraintreeGateways } from './resources/braintree_gateways'\nexport { default as BraintreePayments } from './resources/braintree_payments'\nexport { default as Bundles } from './resources/bundles'\nexport { default as Captures } from './resources/captures'\nexport { default as CarrierAccounts } from './resources/carrier_accounts'\nexport { default as CheckoutComGateways } from './resources/checkout_com_gateways'\nexport { default as CheckoutComPayments } from './resources/checkout_com_payments'\nexport { default as CouponCodesPromotionRules } from './resources/coupon_codes_promotion_rules'\nexport { default as Coupons } from './resources/coupons'\nexport { default as CustomerAddresses } from './resources/customer_addresses'\nexport { default as CustomerGroups } from './resources/customer_groups'\nexport { default as CustomerPasswordResets } from './resources/customer_password_resets'\nexport { default as CustomerPaymentSources } from './resources/customer_payment_sources'\nexport { default as CustomerSubscriptions } from './resources/customer_subscriptions'\nexport { default as Customers } from './resources/customers'\nexport { default as DeliveryLeadTimes } from './resources/delivery_lead_times'\nexport { default as EventCallbacks } from './resources/event_callbacks'\nexport { default as ExternalGateways } from './resources/external_gateways'\nexport { default as ExternalPayments } from './resources/external_payments'\nexport { default as ExternalPromotions } from './resources/external_promotions'\nexport { default as ExternalTaxCalculators } from './resources/external_tax_calculators'\nexport { default as FixedAmountPromotions } from './resources/fixed_amount_promotions'\nexport { default as FreeShippingPromotions } from './resources/free_shipping_promotions'\nexport { default as Geocoders } from './resources/geocoders'\nexport { default as GiftCardRecipients } from './resources/gift_card_recipients'\nexport { default as GiftCards } from './resources/gift_cards'\nexport { default as GoogleGeocoders } from './resources/google_geocoders'\nexport { default as Imports } from './resources/imports'\nexport { default as InStockSubscriptions } from './resources/in_stock_subscriptions'\nexport { default as InventoryModels } from './resources/inventory_models'\nexport { default as InventoryReturnLocations } from './resources/inventory_return_locations'\nexport { default as InventoryStockLocations } from './resources/inventory_stock_locations'\nexport { default as LineItemOptions } from './resources/line_item_options'\nexport { default as LineItems } from './resources/line_items'\nexport { default as ManualGateways } from './resources/manual_gateways'\nexport { default as ManualTaxCalculators } from './resources/manual_tax_calculators'\nexport { default as Markets } from './resources/markets'\nexport { default as Merchants } from './resources/merchants'\nexport { default as OrderAmountPromotionRules } from './resources/order_amount_promotion_rules'\nexport { default as OrderCopies } from './resources/order_copies'\nexport { default as OrderSubscriptions } from './resources/order_subscriptions'\nexport { default as OrderValidationRules } from './resources/order_validation_rules'\nexport { default as Orders } from './resources/orders'\nexport { default as Organizations } from './resources/organization'\nexport { default as Packages } from './resources/packages'\nexport { default as ParcelLineItems } from './resources/parcel_line_items'\nexport { default as Parcels } from './resources/parcels'\nexport { default as PaymentGateways } from './resources/payment_gateways'\nexport { default as PaymentMethods } from './resources/payment_methods'\nexport { default as PaypalGateways } from './resources/paypal_gateways'\nexport { default as PaypalPayments } from './resources/paypal_payments'\nexport { default as PercentageDiscountPromotions } from './resources/percentage_discount_promotions'\nexport { default as PriceLists } from './resources/price_lists'\nexport { default as Prices } from './resources/prices'\nexport { default as PromotionRules } from './resources/promotion_rules'\nexport { default as Promotions } from './resources/promotions'\nexport { default as Refunds } from './resources/refunds'\nexport { default as ReturnLineItems } from './resources/return_line_items'\nexport { default as Returns } from './resources/returns'\nexport { default as Shipments } from './resources/shipments'\nexport { default as ShippingCategories } from './resources/shipping_categories'\nexport { default as ShippingMethods } from './resources/shipping_methods'\nexport { default as ShippingZones } from './resources/shipping_zones'\nexport { default as SkuListItems } from './resources/sku_list_items'\nexport { default as SkuListPromotionRules } from './resources/sku_list_promotion_rules'\nexport { default as SkuLists } from './resources/sku_lists'\nexport { default as SkuOptions } from './resources/sku_options'\nexport { default as Skus } from './resources/skus'\nexport { default as StockItems } from './resources/stock_items'\nexport { default as StockLineItems } from './resources/stock_line_items'\nexport { default as StockLocations } from './resources/stock_locations'\nexport { default as StockTransfers } from './resources/stock_transfers'\nexport { default as StripeGateways } from './resources/stripe_gateways'\nexport { default as StripePayments } from './resources/stripe_payments'\nexport { default as TaxCalculators } from './resources/tax_calculators'\nexport { default as TaxCategories } from './resources/tax_categories'\nexport { default as TaxRules } from './resources/tax_rules'\nexport { default as TaxjarAccounts } from './resources/taxjar_accounts'\nexport { default as Transactions } from './resources/transactions'\nexport { default as Voids } from './resources/voids'\nexport { default as Webhooks } from './resources/webhooks'\nexport { default as WireTransfers } from './resources/wire_transfers'\n// ##__API_RESOURCES_STOP__##\n\n\nexport type ResourceTypeLock =\n// ##__API_RESOURCE_TYPES_START__##\n\t'addresses'\n|\t'adjustments'\n|\t'adyen_gateways'\n|\t'adyen_payments'\n|\t'application'\n|\t'attachments'\n|\t'authorizations'\n|\t'avalara_accounts'\n|\t'billing_info_validation_rules'\n|\t'bing_geocoders'\n|\t'braintree_gateways'\n|\t'braintree_payments'\n|\t'bundles'\n|\t'captures'\n|\t'carrier_accounts'\n|\t'checkout_com_gateways'\n|\t'checkout_com_payments'\n|\t'coupon_codes_promotion_rules'\n|\t'coupons'\n|\t'customer_addresses'\n|\t'customer_groups'\n|\t'customer_password_resets'\n|\t'customer_payment_sources'\n|\t'customer_subscriptions'\n|\t'customers'\n|\t'delivery_lead_times'\n|\t'event_callbacks'\n|\t'external_gateways'\n|\t'external_payments'\n|\t'external_promotions'\n|\t'external_tax_calculators'\n|\t'fixed_amount_promotions'\n|\t'free_shipping_promotions'\n|\t'geocoders'\n|\t'gift_card_recipients'\n|\t'gift_cards'\n|\t'google_geocoders'\n|\t'imports'\n|\t'in_stock_subscriptions'\n|\t'inventory_models'\n|\t'inventory_return_locations'\n|\t'inventory_stock_locations'\n|\t'line_item_options'\n|\t'line_items'\n|\t'manual_gateways'\n|\t'manual_tax_calculators'\n|\t'markets'\n|\t'merchants'\n|\t'order_amount_promotion_rules'\n|\t'order_copies'\n|\t'order_subscriptions'\n|\t'order_validation_rules'\n|\t'orders'\n|\t'organization'\n|\t'packages'\n|\t'parcel_line_items'\n|\t'parcels'\n|\t'payment_gateways'\n|\t'payment_methods'\n|\t'paypal_gateways'\n|\t'paypal_payments'\n|\t'percentage_discount_promotions'\n|\t'price_lists'\n|\t'prices'\n|\t'promotion_rules'\n|\t'promotions'\n|\t'refunds'\n|\t'return_line_items'\n|\t'returns'\n|\t'shipments'\n|\t'shipping_categories'\n|\t'shipping_methods'\n|\t'shipping_zones'\n|\t'sku_list_items'\n|\t'sku_list_promotion_rules'\n|\t'sku_lists'\n|\t'sku_options'\n|\t'skus'\n|\t'stock_items'\n|\t'stock_line_items'\n|\t'stock_locations'\n|\t'stock_transfers'\n|\t'stripe_gateways'\n|\t'stripe_payments'\n|\t'tax_calculators'\n|\t'tax_categories'\n|\t'tax_rules'\n|\t'taxjar_accounts'\n|\t'transactions'\n|\t'voids'\n|\t'webhooks'\n|\t'wire_transfers'\n// ##__API_RESOURCE_TYPES_STOP__##\n\n\nexport const resourceList = [\n// ##__API_RESOURCE_LIST_START__##\n\t'addresses',\n\t'adjustments',\n\t'adyen_gateways',\n\t'adyen_payments',\n\t'application',\n\t'attachments',\n\t'authorizations',\n\t'avalara_accounts',\n\t'billing_info_validation_rules',\n\t'bing_geocoders',\n\t'braintree_gateways',\n\t'braintree_payments',\n\t'bundles',\n\t'captures',\n\t'carrier_accounts',\n\t'checkout_com_gateways',\n\t'checkout_com_payments',\n\t'coupon_codes_promotion_rules',\n\t'coupons',\n\t'customer_addresses',\n\t'customer_groups',\n\t'customer_password_resets',\n\t'customer_payment_sources',\n\t'customer_subscriptions',\n\t'customers',\n\t'delivery_lead_times',\n\t'event_callbacks',\n\t'external_gateways',\n\t'external_payments',\n\t'external_promotions',\n\t'external_tax_calculators',\n\t'fixed_amount_promotions',\n\t'free_shipping_promotions',\n\t'geocoders',\n\t'gift_card_recipients',\n\t'gift_cards',\n\t'google_geocoders',\n\t'imports',\n\t'in_stock_subscriptions',\n\t'inventory_models',\n\t'inventory_return_locations',\n\t'inventory_stock_locations',\n\t'line_item_options',\n\t'line_items',\n\t'manual_gateways',\n\t'manual_tax_calculators',\n\t'markets',\n\t'merchants',\n\t'order_amount_promotion_rules',\n\t'order_copies',\n\t'order_subscriptions',\n\t'order_validation_rules',\n\t'orders',\n\t'organization',\n\t'packages',\n\t'parcel_line_items',\n\t'parcels',\n\t'payment_gateways',\n\t'payment_methods',\n\t'paypal_gateways',\n\t'paypal_payments',\n\t'percentage_discount_promotions',\n\t'price_lists',\n\t'prices',\n\t'promotion_rules',\n\t'promotions',\n\t'refunds',\n\t'return_line_items',\n\t'returns',\n\t'shipments',\n\t'shipping_categories',\n\t'shipping_methods',\n\t'shipping_zones',\n\t'sku_list_items',\n\t'sku_list_promotion_rules',\n\t'sku_lists',\n\t'sku_options',\n\t'skus',\n\t'stock_items',\n\t'stock_line_items',\n\t'stock_locations',\n\t'stock_transfers',\n\t'stripe_gateways',\n\t'stripe_payments',\n\t'tax_calculators',\n\t'tax_categories',\n\t'tax_rules',\n\t'taxjar_accounts',\n\t'transactions',\n\t'voids',\n\t'webhooks',\n\t'wire_transfers'\n// ##__API_RESOURCE_LIST_STOP__##\n] as const\n\n\n/*\ntype ResourceInfo = {\n\tname: string;\n\ttype: string;\n\tapi: string;\n}\n\n\nexport const resourceMap: { [res: string]: ResourceInfo } = {\n\t// ##__API_RESOURCE_MAP_START__##\n\taddresses: { name: 'address', type: 'addresses', api: 'addresses' },\n\tadjustments: { name: 'adjustment', type: 'adjustments', api: 'adjustments' },\n\tadyen_gateways: { name: 'adyen_gateway', type: 'adyen_gateways', api: 'adyen_gateways' },\n\tadyen_payments: { name: 'adyen_payment', type: 'adyen_payments', api: 'adyen_payments' },\n\tapplication: { name: 'application', type: 'application', api: 'application' },\n\tattachments: { name: 'attachment', type: 'attachments', api: 'attachments' },\n\tauthorizations: { name: 'authorization', type: 'authorizations', api: 'authorizations' },\n\tavalara_accounts: { name: 'avalara_account', type: 'avalara_accounts', api: 'avalara_accounts' },\n\tbilling_info_validation_rules: { name: 'billing_info_validation_rule', type: 'billing_info_validation_rules', api: 'billing_info_validation_rules' },\n\tbing_geocoders: { name: 'bing_geocoder', type: 'bing_geocoders', api: 'bing_geocoders' },\n\tbraintree_gateways: { name: 'braintree_gateway', type: 'braintree_gateways', api: 'braintree_gateways' },\n\tbraintree_payments: { name: 'braintree_payment', type: 'braintree_payments', api: 'braintree_payments' },\n\tbundles: { name: 'bundle', type: 'bundles', api: 'bundles' },\n\tcaptures: { name: 'capture', type: 'captures', api: 'captures' },\n\tcarrier_accounts: { name: 'carrier_account', type: 'carrier_accounts', api: 'carrier_accounts' },\n\tcheckout_com_gateways: { name: 'checkout_com_gateway', type: 'checkout_com_gateways', api: 'checkout_com_gateways' },\n\tcheckout_com_payments: { name: 'checkout_com_payment', type: 'checkout_com_payments', api: 'checkout_com_payments' },\n\tcoupon_codes_promotion_rules: { name: 'coupon_codes_promotion_rule', type: 'coupon_codes_promotion_rules', api: 'coupon_codes_promotion_rules' },\n\tcoupons: { name: 'coupon', type: 'coupons', api: 'coupons' },\n\tcustomer_addresses: { name: 'customer_address', type: 'customer_addresses', api: 'customer_addresses' },\n\tcustomer_groups: { name: 'customer_group', type: 'customer_groups', api: 'customer_groups' },\n\tcustomer_password_resets: { name: 'customer_password_reset', type: 'customer_password_resets', api: 'customer_password_resets' },\n\tcustomer_payment_sources: { name: 'customer_payment_source', type: 'customer_payment_sources', api: 'customer_payment_sources' },\n\tcustomer_subscriptions: { name: 'customer_subscription', type: 'customer_subscriptions', api: 'customer_subscriptions' },\n\tcustomers: { name: 'customer', type: 'customers', api: 'customers' },\n\tdelivery_lead_times: { name: 'delivery_lead_time', type: 'delivery_lead_times', api: 'delivery_lead_times' },\n\texternal_gateways: { name: 'external_gateway', type: 'external_gateways', api: 'external_gateways' },\n\texternal_payments: { name: 'external_payment', type: 'external_payments', api: 'external_payments' },\n\texternal_promotions: { name: 'external_promotion', type: 'external_promotions', api: 'external_promotions' },\n\texternal_tax_calculators: { name: 'external_tax_calculator', type: 'external_tax_calculators', api: 'external_tax_calculators' },\n\tfixed_amount_promotions: { name: 'fixed_amount_promotion', type: 'fixed_amount_promotions', api: 'fixed_amount_promotions' },\n\tfree_shipping_promotions: { name: 'free_shipping_promotion', type: 'free_shipping_promotions', api: 'free_shipping_promotions' },\n\tgeocoders: { name: 'geocoder', type: 'geocoders', api: 'geocoders' },\n\tgift_card_recipients: { name: 'gift_card_recipient', type: 'gift_card_recipients', api: 'gift_card_recipients' },\n\tgift_cards: { name: 'gift_card', type: 'gift_cards', api: 'gift_cards' },\n\tgoogle_geocoders: { name: 'google_geocoder', type: 'google_geocoders', api: 'google_geocoders' },\n\timports: { name: 'import', type: 'imports', api: 'imports' },\n\tin_stock_subscriptions: { name: 'in_stock_subscription', type: 'in_stock_subscriptions', api: 'in_stock_subscriptions' },\n\tinventory_models: { name: 'inventory_model', type: 'inventory_models', api: 'inventory_models' },\n\tinventory_return_locations: { name: 'inventory_return_location', type: 'inventory_return_locations', api: 'inventory_return_locations' },\n\tinventory_stock_locations: { name: 'inventory_stock_location', type: 'inventory_stock_locations', api: 'inventory_stock_locations' },\n\tline_item_options: { name: 'line_item_option', type: 'line_item_options', api: 'line_item_options' },\n\tline_items: { name: 'line_item', type: 'line_items', api: 'line_items' },\n\tmanual_gateways: { name: 'manual_gateway', type: 'manual_gateways', api: 'manual_gateways' },\n\tmanual_tax_calculators: { name: 'manual_tax_calculator', type: 'manual_tax_calculators', api: 'manual_tax_calculators' },\n\tmarkets: { name: 'market', type: 'markets', api: 'markets' },\n\tmerchants: { name: 'merchant', type: 'merchants', api: 'merchants' },\n\torder_amount_promotion_rules: { name: 'order_amount_promotion_rule', type: 'order_amount_promotion_rules', api: 'order_amount_promotion_rules' },\n\torder_copies: { name: 'order_copy', type: 'order_copies', api: 'order_copies' },\n\torder_subscriptions: { name: 'order_subscription', type: 'order_subscriptions', api: 'order_subscriptions' },\n\torders: { name: 'order', type: 'orders', api: 'orders' },\n\torganization: { name: 'organization', type: 'organization', api: 'organization' },\n\tpackages: { name: 'package', type: 'packages', api: 'packages' },\n\tparcel_line_items: { name: 'parcel_line_item', type: 'parcel_line_items', api: 'parcel_line_items' },\n\tparcels: { name: 'parcel', type: 'parcels', api: 'parcels' },\n\tpayment_gateways: { name: 'payment_gateway', type: 'payment_gateways', api: 'payment_gateways' },\n\tpayment_methods: { name: 'payment_method', type: 'payment_methods', api: 'payment_methods' },\n\tpaypal_gateways: { name: 'paypal_gateway', type: 'paypal_gateways', api: 'paypal_gateways' },\n\tpaypal_payments: { name: 'paypal_payment', type: 'paypal_payments', api: 'paypal_payments' },\n\tpercentage_discount_promotions: { name: 'percentage_discount_promotion', type: 'percentage_discount_promotions', api: 'percentage_discount_promotions' },\n\tprice_lists: { name: 'price_list', type: 'price_lists', api: 'price_lists' },\n\tprices: { name: 'price', type: 'prices', api: 'prices' },\n\tpromotion_rules: { name: 'promotion_rule', type: 'promotion_rules', api: 'promotion_rules' },\n\tpromotions: { name: 'promotion', type: 'promotions', api: 'promotions' },\n\trefunds: { name: 'refund', type: 'refunds', api: 'refunds' },\n\treturn_line_items: { name: 'return_line_item', type: 'return_line_items', api: 'return_line_items' },\n\treturns: { name: 'return', type: 'returns', api: 'returns' },\n\tshipments: { name: 'shipment', type: 'shipments', api: 'shipments' },\n\tshipping_categories: { name: 'shipping_category', type: 'shipping_categories', api: 'shipping_categories' },\n\tshipping_methods: { name: 'shipping_method', type: 'shipping_methods', api: 'shipping_methods' },\n\tshipping_zones: { name: 'shipping_zone', type: 'shipping_zones', api: 'shipping_zones' },\n\tsku_list_items: { name: 'sku_list_item', type: 'sku_list_items', api: 'sku_list_items' },\n\tsku_list_promotion_rules: { name: 'sku_list_promotion_rule', type: 'sku_list_promotion_rules', api: 'sku_list_promotion_rules' },\n\tsku_lists: { name: 'sku_list', type: 'sku_lists', api: 'sku_lists' },\n\tsku_options: { name: 'sku_option', type: 'sku_options', api: 'sku_options' },\n\tskus: { name: 'sku', type: 'skus', api: 'skus' },\n\tstock_items: { name: 'stock_item', type: 'stock_items', api: 'stock_items' },\n\tstock_line_items: { name: 'stock_line_item', type: 'stock_line_items', api: 'stock_line_items' },\n\tstock_locations: { name: 'stock_location', type: 'stock_locations', api: 'stock_locations' },\n\tstock_transfers: { name: 'stock_transfer', type: 'stock_transfers', api: 'stock_transfers' },\n\tstripe_gateways: { name: 'stripe_gateway', type: 'stripe_gateways', api: 'stripe_gateways' },\n\tstripe_payments: { name: 'stripe_payment', type: 'stripe_payments', api: 'stripe_payments' },\n\ttax_calculators: { name: 'tax_calculator', type: 'tax_calculators', api: 'tax_calculators' },\n\ttax_categories: { name: 'tax_category', type: 'tax_categories', api: 'tax_categories' },\n\ttax_rules: { name: 'tax_rule', type: 'tax_rules', api: 'tax_rules' },\n\ttaxjar_accounts: { name: 'taxjar_account', type: 'taxjar_accounts', api: 'taxjar_accounts' },\n\ttransactions: { name: 'transaction', type: 'transactions', api: 'transactions' },\n\tvoids: { name: 'void', type: 'voids', api: 'voids' },\n\twebhooks: { name: 'webhook', type: 'webhooks', api: 'webhooks' },\n\twire_transfers: { name: 'wire_transfer', type: 'wire_transfers', api: 'wire_transfers' }\n\t// ##__API_RESOURCE_MAP_STOP__##\n} as const\n*/","\nimport * as api from './api'\nimport ApiError from './error'\n\n\n/* Static functions */\nexport const CommerceLayerStatic = {\n\n\tresources: (): readonly string[] => {\n\t\treturn api.resourceList\n\t},\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisApiError: (error: any): error is ApiError => {\n\t\treturn ApiError.isApiError(error)\n\t},\n\n}\n","\nimport * as api from './api'\nimport ApiError from './error'\nimport type { ErrorInterceptor, InterceptorType, RawResponseReader, RequestInterceptor, ResponseInterceptor, ResponseObj } from './interceptor'\n// import QueryBuilder, { QueryBuilderRetrieve, QueryBuilderList } from './query'\nimport { CommerceLayerStatic } from './static'\nimport ResourceAdapter, { ResourcesConfig, ResourcesInitConfig } from './resource'\n\n\ntype SdkConfig = {}\n\ntype CommerceLayerInitConfig = SdkConfig & ResourcesInitConfig\ntype CommerceLayerConfig = SdkConfig & ResourcesConfig\n\n\n\nclass CommerceLayerClient {\n\n\t#adapter: ResourceAdapter\n\t#organization: string\n\n\t// ##__CL_RESOURCES_DEF_START__##\n\t// ##__CL_RESOURCES_DEF_TEMPLATE:: ##__TAB__####__RESOURCE_TYPE__##: api.##__RESOURCE_CLASS__##\n\taddresses: api.Addresses\n\tadjustments: api.Adjustments\n\tadyen_gateways: api.AdyenGateways\n\tadyen_payments: api.AdyenPayments\n\tapplication: api.Applications\n\tattachments: api.Attachments\n\tauthorizations: api.Authorizations\n\tavalara_accounts: api.AvalaraAccounts\n\tbilling_info_validation_rules: api.BillingInfoValidationRules\n\tbing_geocoders: api.BingGeocoders\n\tbraintree_gateways: api.BraintreeGateways\n\tbraintree_payments: api.BraintreePayments\n\tbundles: api.Bundles\n\tcaptures: api.Captures\n\tcarrier_accounts: api.CarrierAccounts\n\tcheckout_com_gateways: api.CheckoutComGateways\n\tcheckout_com_payments: api.CheckoutComPayments\n\tcoupon_codes_promotion_rules: api.CouponCodesPromotionRules\n\tcoupons: api.Coupons\n\tcustomer_addresses: api.CustomerAddresses\n\tcustomer_groups: api.CustomerGroups\n\tcustomer_password_resets: api.CustomerPasswordResets\n\tcustomer_payment_sources: api.CustomerPaymentSources\n\tcustomer_subscriptions: api.CustomerSubscriptions\n\tcustomers: api.Customers\n\tdelivery_lead_times: api.DeliveryLeadTimes\n\tevent_callbacks: api.EventCallbacks\n\texternal_gateways: api.ExternalGateways\n\texternal_payments: api.ExternalPayments\n\texternal_promotions: api.ExternalPromotions\n\texternal_tax_calculators: api.ExternalTaxCalculators\n\tfixed_amount_promotions: api.FixedAmountPromotions\n\tfree_shipping_promotions: api.FreeShippingPromotions\n\tgeocoders: api.Geocoders\n\tgift_card_recipients: api.GiftCardRecipients\n\tgift_cards: api.GiftCards\n\tgoogle_geocoders: api.GoogleGeocoders\n\timports: api.Imports\n\tin_stock_subscriptions: api.InStockSubscriptions\n\tinventory_models: api.InventoryModels\n\tinventory_return_locations: api.InventoryReturnLocations\n\tinventory_stock_locations: api.InventoryStockLocations\n\tline_item_options: api.LineItemOptions\n\tline_items: api.LineItems\n\tmanual_gateways: api.ManualGateways\n\tmanual_tax_calculators: api.ManualTaxCalculators\n\tmarkets: api.Markets\n\tmerchants: api.Merchants\n\torder_amount_promotion_rules: api.OrderAmountPromotionRules\n\torder_copies: api.OrderCopies\n\torder_subscriptions: api.OrderSubscriptions\n\torder_validation_rules: api.OrderValidationRules\n\torders: api.Orders\n\torganization: api.Organizations\n\tpackages: api.Packages\n\tparcel_line_items: api.ParcelLineItems\n\tparcels: api.Parcels\n\tpayment_gateways: api.PaymentGateways\n\tpayment_methods: api.PaymentMethods\n\tpaypal_gateways: api.PaypalGateways\n\tpaypal_payments: api.PaypalPayments\n\tpercentage_discount_promotions: api.PercentageDiscountPromotions\n\tprice_lists: api.PriceLists\n\tprices: api.Prices\n\tpromotion_rules: api.PromotionRules\n\tpromotions: api.Promotions\n\trefunds: api.Refunds\n\treturn_line_items: api.ReturnLineItems\n\treturns: api.Returns\n\tshipments: api.Shipments\n\tshipping_categories: api.ShippingCategories\n\tshipping_methods: api.ShippingMethods\n\tshipping_zones: api.ShippingZones\n\tsku_list_items: api.SkuListItems\n\tsku_list_promotion_rules: api.SkuListPromotionRules\n\tsku_lists: api.SkuLists\n\tsku_options: api.SkuOptions\n\tskus: api.Skus\n\tstock_items: api.StockItems\n\tstock_line_items: api.StockLineItems\n\tstock_locations: api.StockLocations\n\tstock_transfers: api.StockTransfers\n\tstripe_gateways: api.StripeGateways\n\tstripe_payments: api.StripePayments\n\ttax_calculators: api.TaxCalculators\n\ttax_categories: api.TaxCategories\n\ttax_rules: api.TaxRules\n\ttaxjar_accounts: api.TaxjarAccounts\n\ttransactions: api.Transactions\n\tvoids: api.Voids\n\twebhooks: api.Webhooks\n\twire_transfers: api.WireTransfers\n\t// ##__CL_RESOURCES_DEF_STOP__##\n\n\n\tconstructor(config: CommerceLayerInitConfig) {\n\n\t\tthis.#adapter = new ResourceAdapter(config)\n\t\tthis.#organization = config.organization\n\n\t\t// ##__CL_RESOURCES_INIT_START__##\n\t\t// ##__CL_RESOURCES_INIT_TEMPLATE:: ##__TAB__####__TAB__##this.##__RESOURCE_TYPE__## = new api.##__RESOURCE_CLASS__##(this.#adapter)\n\t\tthis.addresses = new api.Addresses(this.#adapter)\n\t\tthis.adjustments = new api.Adjustments(this.#adapter)\n\t\tthis.adyen_gateways = new api.AdyenGateways(this.#adapter)\n\t\tthis.adyen_payments = new api.AdyenPayments(this.#adapter)\n\t\tthis.application = new api.Applications(this.#adapter)\n\t\tthis.attachments = new api.Attachments(this.#adapter)\n\t\tthis.authorizations = new api.Authorizations(this.#adapter)\n\t\tthis.avalara_accounts = new api.AvalaraAccounts(this.#adapter)\n\t\tthis.billing_info_validation_rules = new api.BillingInfoValidationRules(this.#adapter)\n\t\tthis.bing_geocoders = new api.BingGeocoders(this.#adapter)\n\t\tthis.braintree_gateways = new api.BraintreeGateways(this.#adapter)\n\t\tthis.braintree_payments = new api.BraintreePayments(this.#adapter)\n\t\tthis.bundles = new api.Bundles(this.#adapter)\n\t\tthis.captures = new api.Captures(this.#adapter)\n\t\tthis.carrier_accounts = new api.CarrierAccounts(this.#adapter)\n\t\tthis.checkout_com_gateways = new api.CheckoutComGateways(this.#adapter)\n\t\tthis.checkout_com_payments = new api.CheckoutComPayments(this.#adapter)\n\t\tthis.coupon_codes_promotion_rules = new api.CouponCodesPromotionRules(this.#adapter)\n\t\tthis.coupons = new api.Coupons(this.#adapter)\n\t\tthis.customer_addresses = new api.CustomerAddresses(this.#adapter)\n\t\tthis.customer_groups = new api.CustomerGroups(this.#adapter)\n\t\tthis.customer_password_resets = new api.CustomerPasswordResets(this.#adapter)\n\t\tthis.customer_payment_sources = new api.CustomerPaymentSources(this.#adapter)\n\t\tthis.customer_subscriptions = new api.CustomerSubscriptions(this.#adapter)\n\t\tthis.customers = new api.Customers(this.#adapter)\n\t\tthis.delivery_lead_times = new api.DeliveryLeadTimes(this.#adapter)\n\t\tthis.event_callbacks = new api.EventCallbacks(this.#adapter)\n\t\tthis.external_gateways = new api.ExternalGateways(this.#adapter)\n\t\tthis.external_payments = new api.ExternalPayments(this.#adapter)\n\t\tthis.external_promotions = new api.ExternalPromotions(this.#adapter)\n\t\tthis.external_tax_calculators = new api.ExternalTaxCalculators(this.#adapter)\n\t\tthis.fixed_amount_promotions = new api.FixedAmountPromotions(this.#adapter)\n\t\tthis.free_shipping_promotions = new api.FreeShippingPromotions(this.#adapter)\n\t\tthis.geocoders = new api.Geocoders(this.#adapter)\n\t\tthis.gift_card_recipients = new api.GiftCardRecipients(this.#adapter)\n\t\tthis.gift_cards = new api.GiftCards(this.#adapter)\n\t\tthis.google_geocoders = new api.GoogleGeocoders(this.#adapter)\n\t\tthis.imports = new api.Imports(this.#adapter)\n\t\tthis.in_stock_subscriptions = new api.InStockSubscriptions(this.#adapter)\n\t\tthis.inventory_models = new api.InventoryModels(this.#adapter)\n\t\tthis.inventory_return_locations = new api.InventoryReturnLocations(this.#adapter)\n\t\tthis.inventory_stock_locations = new api.InventoryStockLocations(this.#adapter)\n\t\tthis.line_item_options = new api.LineItemOptions(this.#adapter)\n\t\tthis.line_items = new api.LineItems(this.#adapter)\n\t\tthis.manual_gateways = new api.ManualGateways(this.#adapter)\n\t\tthis.manual_tax_calculators = new api.ManualTaxCalculators(this.#adapter)\n\t\tthis.markets = new api.Markets(this.#adapter)\n\t\tthis.merchants = new api.Merchants(this.#adapter)\n\t\tthis.order_amount_promotion_rules = new api.OrderAmountPromotionRules(this.#adapter)\n\t\tthis.order_copies = new api.OrderCopies(this.#adapter)\n\t\tthis.order_subscriptions = new api.OrderSubscriptions(this.#adapter)\n\t\tthis.order_validation_rules = new api.OrderValidationRules(this.#adapter)\n\t\tthis.orders = new api.Orders(this.#adapter)\n\t\tthis.organization = new api.Organizations(this.#adapter)\n\t\tthis.packages = new api.Packages(this.#adapter)\n\t\tthis.parcel_line_items = new api.ParcelLineItems(this.#adapter)\n\t\tthis.parcels = new api.Parcels(this.#adapter)\n\t\tthis.payment_gateways = new api.PaymentGateways(this.#adapter)\n\t\tthis.payment_methods = new api.PaymentMethods(this.#adapter)\n\t\tthis.paypal_gateways = new api.PaypalGateways(this.#adapter)\n\t\tthis.paypal_payments = new api.PaypalPayments(this.#adapter)\n\t\tthis.percentage_discount_promotions = new api.PercentageDiscountPromotions(this.#adapter)\n\t\tthis.price_lists = new api.PriceLists(this.#adapter)\n\t\tthis.prices = new api.Prices(this.#adapter)\n\t\tthis.promotion_rules = new api.PromotionRules(this.#adapter)\n\t\tthis.promotions = new api.Promotions(this.#adapter)\n\t\tthis.refunds = new api.Refunds(this.#adapter)\n\t\tthis.return_line_items = new api.ReturnLineItems(this.#adapter)\n\t\tthis.returns = new api.Returns(this.#adapter)\n\t\tthis.shipments = new api.Shipments(this.#adapter)\n\t\tthis.shipping_categories = new api.ShippingCategories(this.#adapter)\n\t\tthis.shipping_methods = new api.ShippingMethods(this.#adapter)\n\t\tthis.shipping_zones = new api.ShippingZones(this.#adapter)\n\t\tthis.sku_list_items = new api.SkuListItems(this.#adapter)\n\t\tthis.sku_list_promotion_rules = new api.SkuListPromotionRules(this.#adapter)\n\t\tthis.sku_lists = new api.SkuLists(this.#adapter)\n\t\tthis.sku_options = new api.SkuOptions(this.#adapter)\n\t\tthis.skus = new api.Skus(this.#adapter)\n\t\tthis.stock_items = new api.StockItems(this.#adapter)\n\t\tthis.stock_line_items = new api.StockLineItems(this.#adapter)\n\t\tthis.stock_locations = new api.StockLocations(this.#adapter)\n\t\tthis.stock_transfers = new api.StockTransfers(this.#adapter)\n\t\tthis.stripe_gateways = new api.StripeGateways(this.#adapter)\n\t\tthis.stripe_payments = new api.StripePayments(this.#adapter)\n\t\tthis.tax_calculators = new api.TaxCalculators(this.#adapter)\n\t\tthis.tax_categories = new api.TaxCategories(this.#adapter)\n\t\tthis.tax_rules = new api.TaxRules(this.#adapter)\n\t\tthis.taxjar_accounts = new api.TaxjarAccounts(this.#adapter)\n\t\tthis.transactions = new api.Transactions(this.#adapter)\n\t\tthis.voids = new api.Voids(this.#adapter)\n\t\tthis.webhooks = new api.Webhooks(this.#adapter)\n\t\tthis.wire_transfers = new api.WireTransfers(this.#adapter)\n\t\t// ##__CL_RESOURCES_INIT_STOP__##\n\n\t}\n\n\n\tget currentOrganization(): string { return this.#organization }\n\n\n\tconfig(config: CommerceLayerConfig): void {\n\n\t\tif (!config) return\n\n\t\t// CommerceLayer config\n\t\tif (config.organization) this.#organization = config.organization\n\n\t\t// ResourceAdapter config\n\t\tthis.#adapter.config(config)\n\n\t}\n\n\n\t/*\n\tqueryBuilder(resource: string): QueryBuilderRetrieve {\n\t\treturn new QueryBuilder(resource)\n\t}\n\t*/\n\n\t\n\tresources(): readonly string[] {\n\t\treturn CommerceLayerStatic.resources()\n\t}\n\t\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisApiError(error: any): error is ApiError {\n\t\treturn CommerceLayerStatic.isApiError(error)\n\t}\n\n\n\taddRequestInterceptor(onFulfilled?: RequestInterceptor, onRejected?: ErrorInterceptor): number {\n\t\treturn this.#adapter.interceptors.request.use(onFulfilled, onRejected)\n\t}\n\n\taddResponseInterceptor(onFulfilled?: ResponseInterceptor, onRejected?: ErrorInterceptor): number {\n\t\treturn this.#adapter.interceptors.response.use(onFulfilled, onRejected)\n\t}\n\n\tremoveInterceptor(type: InterceptorType, id: number): void {\n\t\treturn this.#adapter.interceptors[type].eject(id)\n\t}\n\n\n\taddRawResponseReader(): RawResponseReader {\n\n\t\tconst reader: RawResponseReader = {\n\t\t\tid: undefined,\n\t\t\trawResponse: undefined,\n\t\t}\n\n\t\tfunction rawResponseInterceptor(response: ResponseObj): ResponseObj {\n\t\t\treader.rawResponse = response?.data\n\t\t\treturn response\n\t\t}\n\t\t\n\t\tconst interceptor = this.addResponseInterceptor(rawResponseInterceptor)\n\t\treader.id = interceptor\n\n\t\treturn reader\n\n\t}\n\n\tremoveRawResponseReader(reader: number | RawResponseReader): void {\n\t\tconst id = (typeof reader === 'number') ? reader : reader.id\n\t\tif (id) return this.removeInterceptor('response', id)\n\t}\n\n}\n\n\n\nconst CommerceLayer = (config: CommerceLayerInitConfig): CommerceLayerClient => {\n\treturn new CommerceLayerClient(config)\n}\n\n\nexport default CommerceLayer\n\nexport type { CommerceLayerClient, CommerceLayerConfig, CommerceLayerInitConfig }\n"],"names":["ErrorType","runtime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","generator","create","Generator","context","Context","_invoke","state","method","arg","Error","undefined","done","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","makeInvokeMethod","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","result","__await","then","unwrapped","error","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","ApiError","message","_this","GENERIC","isApiError","RESPONSE","first","errors","baseURL","organization","domain","toLowerCase","handleError","apiError","axios","isAxiosError","response","status","code","String","data","request","REQUEST","CLIENT","ApiClient","options","baseUrl","accessToken","axiosConfig","timeout","headers","interceptors","_classPrivateFieldLooseBase","config","def","defaults","path","body","url","isResourceId","resource","id","denormalize","links","included","Array","isArray","map","res","denormalizeResource","findIncluded","rel","find","inc","attributes","relationships","r","normalize","field","includes","normalized","generateQueryStringParams","params","qp","include","join","fields","entries","filters","pageNumber","pageSize","sort","isParamsList","ListResponse","meta","last","get","index","ResourceAdapter","singleton","queryParams","assign","retrieve","list","pageCount","Number","_res$meta","page_count","recordCount","_res$meta2","record_count","currentPage","recordsPerPage","update","ApiResource","adapter","resources","Addresses","TYPE","isAddress","relationship","Adjustments","isAdjustment","AdyenGateways","isAdyenGateway","AdyenPayments","isAdyenPayment","Applications","isApplication","Attachments","isAttachment","Authorizations","isAuthorization","AvalaraAccounts","isAvalaraAccount","BillingInfoValidationRules","isBillingInfoValidationRule","BingGeocoders","isBingGeocoder","BraintreeGateways","isBraintreeGateway","BraintreePayments","isBraintreePayment","Bundles","isBundle","Captures","isCapture","CarrierAccounts","isCarrierAccount","CheckoutComGateways","isCheckoutComGateway","CheckoutComPayments","isCheckoutComPayment","CouponCodesPromotionRules","isCouponCodesPromotionRule","Coupons","isCoupon","CustomerAddresses","isCustomerAddress","CustomerGroups","isCustomerGroup","CustomerPasswordResets","isCustomerPasswordReset","CustomerPaymentSources","isCustomerPaymentSource","CustomerSubscriptions","isCustomerSubscription","Customers","isCustomer","DeliveryLeadTimes","isDeliveryLeadTime","EventCallbacks","isEventCallback","ExternalGateways","isExternalGateway","ExternalPayments","isExternalPayment","ExternalPromotions","isExternalPromotion","ExternalTaxCalculators","isExternalTaxCalculator","FixedAmountPromotions","isFixedAmountPromotion","FreeShippingPromotions","isFreeShippingPromotion","Geocoders","isGeocoder","GiftCardRecipients","isGiftCardRecipient","GiftCards","isGiftCard","GoogleGeocoders","isGoogleGeocoder","Imports","isImport","InStockSubscriptions","isInStockSubscription","InventoryModels","isInventoryModel","InventoryReturnLocations","isInventoryReturnLocation","InventoryStockLocations","isInventoryStockLocation","LineItemOptions","isLineItemOption","LineItems","isLineItem","ManualGateways","isManualGateway","ManualTaxCalculators","isManualTaxCalculator","Markets","isMarket","Merchants","isMerchant","OrderAmountPromotionRules","isOrderAmountPromotionRule","OrderCopies","isOrderCopy","OrderSubscriptions","isOrderSubscription","OrderValidationRules","isOrderValidationRule","Orders","isOrder","Organizations","isOrganization","Packages","isPackage","ParcelLineItems","isParcelLineItem","Parcels","isParcel","PaymentGateways","isPaymentGateway","PaymentMethods","isPaymentMethod","PaypalGateways","isPaypalGateway","PaypalPayments","isPaypalPayment","PercentageDiscountPromotions","isPercentageDiscountPromotion","PriceLists","isPriceList","Prices","isPrice","PromotionRules","isPromotionRule","Promotions","isPromotion","Refunds","isRefund","ReturnLineItems","isReturnLineItem","Returns","isReturn","Shipments","isShipment","ShippingCategories","isShippingCategory","ShippingMethods","isShippingMethod","ShippingZones","isShippingZone","SkuListItems","isSkuListItem","SkuListPromotionRules","isSkuListPromotionRule","SkuLists","isSkuList","SkuOptions","isSkuOption","Skus","isSku","StockItems","isStockItem","StockLineItems","isStockLineItem","StockLocations","isStockLocation","StockTransfers","isStockTransfer","StripeGateways","isStripeGateway","StripePayments","isStripePayment","TaxCalculators","isTaxCalculator","TaxCategories","isTaxCategory","TaxRules","isTaxRule","TaxjarAccounts","isTaxjarAccount","Transactions","isTransaction","Voids","isVoid","Webhooks","isWebhook","WireTransfers","isWireTransfer","resourceList","CommerceLayerStatic","api","CommerceLayerClient","addresses","adjustments","adyen_gateways","adyen_payments","application","attachments","authorizations","avalara_accounts","billing_info_validation_rules","bing_geocoders","braintree_gateways","braintree_payments","bundles","captures","carrier_accounts","checkout_com_gateways","checkout_com_payments","coupon_codes_promotion_rules","coupons","customer_addresses","customer_groups","customer_password_resets","customer_payment_sources","customer_subscriptions","customers","delivery_lead_times","event_callbacks","external_gateways","external_payments","external_promotions","external_tax_calculators","fixed_amount_promotions","free_shipping_promotions","geocoders","gift_card_recipients","gift_cards","google_geocoders","imports","in_stock_subscriptions","inventory_models","inventory_return_locations","inventory_stock_locations","line_item_options","line_items","manual_gateways","manual_tax_calculators","markets","merchants","order_amount_promotion_rules","order_copies","order_subscriptions","order_validation_rules","orders","packages","parcel_line_items","parcels","payment_gateways","payment_methods","paypal_gateways","paypal_payments","percentage_discount_promotions","price_lists","prices","promotion_rules","promotions","refunds","return_line_items","returns","shipments","shipping_categories","shipping_methods","shipping_zones","sku_list_items","sku_list_promotion_rules","sku_lists","sku_options","skus","stock_items","stock_line_items","stock_locations","stock_transfers","stripe_gateways","stripe_payments","tax_calculators","tax_categories","tax_rules","taxjar_accounts","transactions","voids","webhooks","wire_transfers","addRequestInterceptor","onFulfilled","onRejected","use","addResponseInterceptor","removeInterceptor","eject","addRawResponseReader","reader","rawResponse","interceptor","removeRawResponseReader"],"mappings":"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"}
1
+ {"version":3,"file":"sdk.cjs.production.min.js","sources":["../src/error.ts","../node_modules/regenerator-runtime/runtime.js","../src/client.ts","../src/common.ts","../src/jsonapi.ts","../src/query.ts","../src/resource.ts","../src/config.ts","../src/resources/addresses.ts","../src/resources/adjustments.ts","../src/resources/adyen_gateways.ts","../src/resources/adyen_payments.ts","../src/resources/application.ts","../src/resources/attachments.ts","../src/resources/authorizations.ts","../src/resources/avalara_accounts.ts","../src/resources/billing_info_validation_rules.ts","../src/resources/bing_geocoders.ts","../src/resources/braintree_gateways.ts","../src/resources/braintree_payments.ts","../src/resources/bundles.ts","../src/resources/captures.ts","../src/resources/carrier_accounts.ts","../src/resources/checkout_com_gateways.ts","../src/resources/checkout_com_payments.ts","../src/resources/coupon_codes_promotion_rules.ts","../src/resources/coupon_recipients.ts","../src/resources/coupons.ts","../src/resources/customer_addresses.ts","../src/resources/customer_groups.ts","../src/resources/customer_password_resets.ts","../src/resources/customer_payment_sources.ts","../src/resources/customer_subscriptions.ts","../src/resources/customers.ts","../src/resources/delivery_lead_times.ts","../src/resources/event_callbacks.ts","../src/resources/external_gateways.ts","../src/resources/external_payments.ts","../src/resources/external_promotions.ts","../src/resources/external_tax_calculators.ts","../src/resources/fixed_amount_promotions.ts","../src/resources/fixed_price_promotions.ts","../src/resources/free_gift_promotions.ts","../src/resources/free_shipping_promotions.ts","../src/resources/geocoders.ts","../src/resources/gift_card_recipients.ts","../src/resources/gift_cards.ts","../src/resources/google_geocoders.ts","../src/resources/imports.ts","../src/resources/in_stock_subscriptions.ts","../src/resources/inventory_models.ts","../src/resources/inventory_return_locations.ts","../src/resources/inventory_stock_locations.ts","../src/resources/line_item_options.ts","../src/resources/line_items.ts","../src/resources/manual_gateways.ts","../src/resources/manual_tax_calculators.ts","../src/resources/markets.ts","../src/resources/merchants.ts","../src/resources/order_amount_promotion_rules.ts","../src/resources/order_copies.ts","../src/resources/order_subscriptions.ts","../src/resources/order_validation_rules.ts","../src/resources/orders.ts","../src/resources/organization.ts","../src/resources/packages.ts","../src/resources/parcel_line_items.ts","../src/resources/parcels.ts","../src/resources/payment_gateways.ts","../src/resources/payment_methods.ts","../src/resources/paypal_gateways.ts","../src/resources/paypal_payments.ts","../src/resources/percentage_discount_promotions.ts","../src/resources/price_lists.ts","../src/resources/prices.ts","../src/resources/promotion_rules.ts","../src/resources/promotions.ts","../src/resources/refunds.ts","../src/resources/return_line_items.ts","../src/resources/returns.ts","../src/resources/shipments.ts","../src/resources/shipping_categories.ts","../src/resources/shipping_methods.ts","../src/resources/shipping_zones.ts","../src/resources/sku_list_items.ts","../src/resources/sku_list_promotion_rules.ts","../src/resources/sku_lists.ts","../src/resources/sku_options.ts","../src/resources/skus.ts","../src/resources/stock_items.ts","../src/resources/stock_line_items.ts","../src/resources/stock_locations.ts","../src/resources/stock_transfers.ts","../src/resources/stripe_gateways.ts","../src/resources/stripe_payments.ts","../src/resources/tax_calculators.ts","../src/resources/tax_categories.ts","../src/resources/tax_rules.ts","../src/resources/taxjar_accounts.ts","../src/resources/transactions.ts","../src/resources/voids.ts","../src/resources/webhooks.ts","../src/resources/wire_transfers.ts","../src/api.ts","../src/static.ts","../src/commercelayer.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nenum ErrorType {\n\tCLIENT = 'client',\n\tREQUEST = 'request',\n\tRESPONSE = 'response',\n\tGENERIC = 'generic'\n}\n\nclass ApiError extends Error {\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tstatic isApiError(error: any): error is ApiError {\n\t\treturn error && (error.name === 'ApiError') && (error.type === ErrorType.RESPONSE)\n\t}\n\n\ttype: string\n\terrors: any[] = []\n\tstatus?: number\n\tcode?: string\n\n\tconstructor(error: { message: string, type?: ErrorType }) {\n\t\tsuper(error.message)\n\t\tthis.name = this.constructor.name\n\t\tthis.type = error.type || ErrorType.GENERIC\n\t}\n\n\tfirst(): any {\n\t\treturn (this.errors.length > 0) ? this.errors[0] : undefined\n\t}\n\n}\n\n\nexport default ApiError\n\nexport { ErrorType }\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport axios, { AxiosInstance, Method } from 'axios'\nimport { DocWithData as JSONApiDocument, ResourceObject as JSONApiResource } from 'jsonapi-typescript'\nimport ApiError, { ErrorType } from './error'\nimport type { InterceptorManager } from './interceptor'\n\n\nconst baseURL = (organization: string, domain?: string): string => {\n\treturn `https://${organization.toLowerCase()}.${domain ? domain : 'commercelayer.io'}/api`\n}\n\n\nconst handleError = (error: Error) => {\n\n\tconst apiError = new ApiError({ message: error.message, type: ErrorType.GENERIC })\n\n\tif (axios.isAxiosError(error)) {\n\t\tif (error.response) {\n\t\t\t// The request was made and the server responded with a status code that falls out of the range of 2xx\n\t\t\tapiError.type = ErrorType.RESPONSE\n\t\t\tapiError.status = error.response.status\n\t\t\tapiError.code = String(apiError.status)\n\t\t\tapiError.errors = error.response.data.errors\n\t\t} else if (error.request) {\n\t\t\t// The request was made but no response was received\n\t\t\t// `error.request` is an instance of XMLHttpRequest in the browser and an instance of http.ClientRequest in node.js\n\t\t\tapiError.type = ErrorType.REQUEST\n\t\t} else {\n\t\t\t// Something happened in setting up the request that triggered an Error\n\t\t\tapiError.type = ErrorType.CLIENT\n\t\t}\n\t}\n\n\tthrow apiError\n\n}\n\n\n// Subset of AxiosRequestConfig\ntype RequestConfig = {\n\ttimeout?: number\n\tparams?: { [key: string]: string | number | boolean }\n\t// httpAgent\n\t// httpsAgent\n\t// proxy\n}\n\ntype ApiClientInitConfig = { organization: string, domain?: string, accessToken: string } & RequestConfig\ntype ApiClientConfig = { organization?: string, domain?: string, accessToken?: string } & RequestConfig\n\n\nclass ApiClient {\n\n\tstatic create(options: ApiClientInitConfig): ApiClient {\n\t\tif (!options?.organization) throw new Error(\"Undefined 'organization' parameter\")\n\t\tif (!options?.accessToken) throw new Error(\"Undefined 'accessToken' parameter\")\n\t\treturn new ApiClient(options)\n\t}\n\n\tbaseUrl: string\n\t#accessToken: string\n\t#client: AxiosInstance\n\n\tpublic interceptors: InterceptorManager\n\n\tprivate constructor(options: ApiClientInitConfig) {\n\n\t\tthis.baseUrl = baseURL(options.organization, options.domain)\n\t\tthis.#accessToken = options.accessToken\n\n\t\tconst axiosConfig: RequestConfig = {\n\t\t\ttimeout: options.timeout || 3000\n\t\t}\n\n\t\tthis.#client = axios.create({\n\t\t\tbaseURL: this.baseUrl,\n\t\t\ttimeout: 3000,\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/vnd.api+json',\n\t\t\t\t'Content-Type': 'application/vnd.api+json',\n\t\t\t\t'Authorization': 'Bearer ' + this.#accessToken,\n\t\t\t},\n\t\t\t...axiosConfig\n\t\t})\n\n\t\tthis.interceptors = this.#client.interceptors\n\n\t}\n\n\n\tconfig(config: ApiClientConfig): void {\n\n\t\tconst def = this.#client.defaults\n\n\t\t// Axios config\n\t\tif (config.timeout) def.timeout = config.timeout\n\n\t\t// API Client config\n\t\tif (config.organization) this.baseUrl = baseURL(config.organization, config.domain)\n\t\tif (config.accessToken) this.#accessToken = config.accessToken\n\n\t}\n\n\n\tasync request(method: Method, path: string, body?: JSONApiResource, options?: ApiClientConfig): Promise<JSONApiDocument> {\n\n\t\tconst data = body ? { data: body } : undefined\n\t\tconst url = path\n\n\t\t// Runtime request parameters\n\t\tconst baseUrl = options?.organization ? baseURL(options.organization, options.domain) : undefined\n\t\tconst headers = options?.accessToken ? { 'Authorization': 'Bearer ' + options.accessToken } : undefined\n\n\t\t// const start = Date.now()\n\n\t\treturn this.#client.request({ method, baseURL: baseUrl, url, data, headers, ...options })\n\t\t\t.then(response => response.data)\n\t\t\t.catch(error => handleError(error))\n\t\t// .finally(() => console.log(`<<-- ${method} ${path} ${Date.now() - start}`))\n\n\t}\n\n}\n\n\n\nexport default ApiClient\n\nexport { ApiClientInitConfig, ApiClientConfig, RequestConfig }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport type { ResourceId, ResourceType } from './resource'\n\nconst isResourceId = (resource: any): resource is ResourceId => {\n\treturn (resource && resource.type && resource.id)\n}\n\nconst isResourceType = (resource: any): resource is ResourceType => {\n\treturn resource && (typeof resource.type !== 'undefined') && resource.type\n}\n\n\nexport { isResourceId, isResourceType }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Value } from 'json-typescript'\nimport { DocWithData, Included, ResourceIdentifierObject, ResourceObject, AttributesObject, RelationshipsObject } from 'jsonapi-typescript'\nimport type { ResourceCreate, ResourceUpdate, ResourceId, ResourceType, Resource } from './resource'\nimport { isResourceId } from './common'\n\nexport type { DocWithData, Value as JSONValue }\n\n\n\n// DENORMALIZATION\n\nconst denormalize = <R extends Resource>(response: DocWithData): R | R[] => {\n\n\tlet denormalizedResponse\n\n\tif (response.links) delete response.links\n\n\tconst data = response.data\n\tconst included = response.included\n\n\tif (Array.isArray(data)) denormalizedResponse = data.map(res => denormalizeResource<R>(res, included))\n\telse denormalizedResponse = denormalizeResource<R>(data, included)\n\n\treturn denormalizedResponse\n\n}\n\n\nconst findIncluded = (rel: ResourceIdentifierObject, included: Included = []): ResourceObject | undefined => {\n\treturn included.find(inc => {\n\t\treturn (rel.id === inc.id) && (rel.type === inc.type)\n\t})\n}\n\n\nconst denormalizeResource = <T extends ResourceType>(res: any, included?: Included): T => {\n\n\tconst resource = {\n\t\tid: res.id,\n\t\ttype: res.type,\n\t\t...res.attributes,\n\t}\n\n\tif (res.relationships) Object.keys(res.relationships).forEach(key => {\n\t\tconst rel = res.relationships[key].data\n\t\tif (rel) {\n\t\t\tif (Array.isArray(rel)) resource[key] = rel.map(r => denormalizeResource<ResourceType>(findIncluded(r, included), included))\n\t\t\telse resource[key] = denormalizeResource<ResourceType>(findIncluded(rel, included), included)\n\t\t} else if (rel === null) resource[key] = null\n\t})\n\t\n\n\treturn resource\n\n}\n\n\n// NORMALIZATION\n\nconst normalize = (resource: (ResourceCreate & ResourceType) | (ResourceUpdate & ResourceId)): ResourceObject => {\n\n\tconst attributes: AttributesObject = {}\n\tconst relationships: RelationshipsObject = {}\n\n\tfor (const field in resource) {\n\t\tif (['type', 'id'].includes(field)) continue\n\t\tconst value = resource[field as keyof (ResourceCreate | ResourceUpdate)]\n\t\tif (value && (isResourceId(value) || (Array.isArray(value) && isResourceId(value[0])))) {\n\t\t\trelationships[field] = { data: value as ResourceIdentifierObject }\n\t\t}\n\t\telse attributes[field] = value as Value\n\t}\n\n\tconst normalized: ResourceObject = {\n\t\ttype: resource.type,\n\t\tattributes,\n\t\trelationships\n\t}\n\n\tif (isResourceId(resource)) normalized.id = resource.id\n\n\n\treturn normalized\n\n}\n\n\n\nexport { denormalize, normalize }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\ninterface QueryParamsRetrieve {\n\tinclude?: string[]\n\tfields?: { [key: string]: string[] }\n\t// fields?: string[] | { [key: string]: string[] }\n}\n\n\ninterface QueryParamsList extends QueryParamsRetrieve {\n\tsort?: string[] | { [key: string]: 'asc' | 'desc' }\n\tfilters?: { [key: string]: string | number | boolean }\n\tpageNumber?: number\n\tpageSize?: number\n}\n\ntype QueryParams = QueryParamsRetrieve | QueryParamsList\n\nexport { QueryParamsRetrieve, QueryParamsList }\n\n\n\ntype FilterPredicate =\n\t'blank' |\n\t'cont' |\n\t'cont_all' |\n\t'cont_any' |\n\t'does_not_match' |\n\t'does_not_match_all' |\n\t'does_not_match_any' |\n\t'end' |\n\t'end_all' |\n\t'end_any' |\n\t'eq' |\n\t'false' |\n\t'gt' |\n\t'gt_all' |\n\t'gt_any' |\n\t'gteq' |\n\t'gteq_all' |\n\t'gteq_any' |\n\t'in' |\n\t'lt' |\n\t'lt_all' |\n\t'lt_any' |\n\t'lteq' |\n\t'lteq_all' |\n\t'lteq_any' |\n\t'matches' |\n\t'matches_all' |\n\t'matches_any' |\n\t'not_cont' |\n\t'not_cont_all' |\n\t'not_end' |\n\t'not_end_all' |\n\t'not_end_any' |\n\t'not_eq' |\n\t'not_eq_all' |\n\t'not_in' |\n\t'not_null' |\n\t'not_start' |\n\t'not_start_all' |\n\t'not_start_any' |\n\t'null' |\n\t'present' |\n\t'start' |\n\t'start_all' |\n\t'start_any' |\n\t'true'\n\n\n\n\nconst isParamsList = (params: any): params is QueryParamsList => {\n\treturn (params.filters || params.pageNumber || params.pageSize || params.sort)\n}\n\n\nclass QueryBuilderRetrieve {\n\n\t#resource: string\n\n\t#include?: string[]\n\t#fields?: { [key: string]: string[] }\n\n\n\tconstructor(resource?: string) {\n\t\tthis.#resource = resource || ''\n\t}\n\n\n\tinclude(...resources: string[]): QueryBuilderRetrieve {\n\t\tif (!this.#include) this.#include = []\n\t\tthis.#include.push(...resources)\n\t\treturn this\n\t}\n\n\tfield(field: string, resource?: string): QueryBuilderRetrieve {\n\t\tif (!this.#fields) this.#fields = {}\n\t\tif (!resource) resource = this.#resource\n\t\tif (!this.#fields[resource]) this.#fields[resource] = []\n\t\tthis.#fields[resource].push(field)\n\t\treturn this\n\t}\n\n\tfields(fields: string[], resource?: string): QueryBuilderRetrieve {\n\t\tfields.forEach(f => {\n\t\t\tthis.field(f, resource)\n\t\t})\n\t\treturn this\n\t}\n\n\n\tclear(): QueryBuilderRetrieve {\n\t\tthis.#include = undefined\n\t\tthis.#fields = undefined\n\t\treturn this\n\t}\n\n\n\tbuild(): QueryParams {\n\t\treturn {\n\t\t\tinclude: this.#include,\n\t\t\tfields: this.#fields,\n\t\t}\n\t}\n\n\n\tgenerate(): { [key: string]: string } {\n\t\treturn generateQueryStringParams(this.build())\n\t}\n\n}\n\n\nclass QueryBuilderList extends QueryBuilderRetrieve {\n\n\t#sort?: string[]\n\t#filters?: { [key: string]: string | number | boolean }\n\t#pageNumber?: number\n\t#pageSize?: number\n\n\n\tconstructor(resource?: string) {\n\t\tsuper(resource)\n\t}\n\n\tinclude(...resources: string[]): QueryBuilderList {\n\t\treturn super.include(...resources) as QueryBuilderList\n\t}\n\n\tfield(field: string, resource?: string): QueryBuilderList {\n\t\treturn super.field(field, resource) as QueryBuilderList\n\t}\n\n\tfields(fields: string[], resource?: string): QueryBuilderList {\n\t\treturn super.fields(fields, resource) as QueryBuilderList\n\t}\n\n\n\tpageNumber(num: number): QueryBuilderList {\n\t\tthis.#pageNumber = num\n\t\treturn this\n\t}\n\n\tpageSize(size: number): QueryBuilderList {\n\t\tthis.#pageSize = size\n\t\treturn this\n\t}\n\n\tpage(num: number, size: number): QueryBuilderList {\n\t\tthis.#pageNumber = num\n\t\tthis.#pageSize = size\n\t\treturn this\n\t}\n\n\tsort(field: string, descending?: boolean): QueryBuilderList {\n\t\tif (!this.#sort) this.#sort = []\n\t\tthis.#sort.push(`${descending ? '-' : ''}${field}`)\n\t\treturn this\n\t}\n\n\tfilter(field: string | string[], predicate: FilterPredicate, value: string | number | boolean | string[], resource?: string): QueryBuilderList {\n\t\tif (!this.#filters) this.#filters = {}\n\t\tconst r = resource ? `${resource}_` : ''\n\t\tthis.#filters[`${Array.isArray(field) ? field.map(f => `${r}${f}`).join('_or_') : (r + field)}_${predicate}`] = Array.isArray(value) ? value.join(',') : value\n\t\treturn this\n\t}\n\n\n\tclear(): QueryBuilderList {\n\t\tsuper.clear()\n\t\tthis.#sort = undefined\n\t\tthis.#filters = undefined\n\t\tthis.#pageNumber = undefined\n\t\tthis.#pageSize = undefined\n\t\treturn this\n\t}\n\n\n\tbuild(): QueryParams {\n\t\treturn Object.assign(super.build(), {\n\t\t\tsort: this.#sort,\n\t\t\tfilters: this.#filters,\n\t\t\tpageNumber: this.#pageNumber,\n\t\t\tpageSize: this.#pageSize,\n\t\t})\n\t}\n\n\n\tgenerate(): { [key: string]: string } {\n\t\treturn generateQueryStringParams(this.build())\n\t}\n\n}\n\n\nclass QueryBuilder extends QueryBuilderList {\n\n\tconstructor(resource?: string) {\n\t\tsuper(resource)\n\t}\n\n}\n\n\nexport default QueryBuilder\n\nexport { QueryBuilderRetrieve, QueryBuilderList }\n\n\n\nconst generateQueryStringParams = (params: QueryParamsRetrieve | QueryParamsList | undefined): { [key: string]: string } => {\n\n\tconst qp: { [key: string]: string } = {}\n\tif (!params) return qp\n\n\t// Include\n\tif (params.include) qp['include'] = params.include.join(',')\n\t// Fields\n\tif (params.fields) {\n\t\tObject.entries(params.fields).forEach(([p, v]) => {\n\t\t\tqp[`fields[${p}]`] = v.join(',')\n\t\t})\n\t}\n\n\tif (isParamsList(params)) {\n\t\t// Sort\n\t\tif (params.sort) {\n\t\t\tif (Array.isArray(params.sort)) qp['sort'] = params.sort.join(',')\n\t\t\telse qp['sort'] = Object.entries(params.sort).map(([k, v]) => `${v === 'desc' ? '-' : ''}${k}`).join(',')\n\t\t}\n\t\t// Page\n\t\tif (params.pageNumber) qp['page[number]'] = String(params.pageNumber)\n\t\tif (params.pageSize) qp['page[size]'] = String(params.pageSize)\n\t\t// Filters\n\t\tif (params.filters) {\n\t\t\tObject.entries(params.filters).forEach(([p, v]) => {\n\t\t\t\tqp[`filter[q][${p}]`] = String(v)\n\t\t\t})\n\t\t}\n\t}\n\n\treturn qp\n\n}\n\n\nexport { generateQueryStringParams }\n","\nimport ApiClient, { ApiClientConfig, ApiClientInitConfig } from './client'\nimport { denormalize, normalize, JSONValue } from './jsonapi'\nimport { QueryParamsRetrieve, QueryParamsList, generateQueryStringParams } from './query'\nimport { ResourceTypeLock } from './api'\nimport config from './config'\nimport { InterceptorManager } from './interceptor'\n\n\n\ntype Metadata = { [key: string]: JSONValue }\n\n\ninterface ResourceType {\n\treadonly type: ResourceTypeLock\n}\n\n\ninterface ResourceId extends ResourceType {\n\treadonly id: string\n}\n\n\ninterface Resource extends ResourceId {\n\treference?: string;\n\treference_origin?: string;\n\tmetadata?: Metadata\n\treadonly created_at: string\n\treadonly updated_at: string\n}\n\n\ninterface ResourceCreate {\n\treference?: string;\n\treference_origin?: string;\n\tmetadata?: Metadata\n}\n\n\ninterface ResourceUpdate {\n\treadonly id: string\n\treference?: string;\n\treference_origin?: string;\n\tmetadata?: Metadata\n}\n\n\ntype ListMeta = {\n\treadonly pageCount: number\n\treadonly recordCount: number\n\treadonly currentPage: number\n\treadonly recordsPerPage: number\n}\n\nclass ListResponse<R> extends Array<R> {\n\n\treadonly meta: ListMeta\n\n\tconstructor(meta: ListMeta, data: Array<R>) {\n\t\tsuper(...data)\n\t\tthis.meta = meta\n\t}\n\n\tfirst(): R | undefined { return this.length ? this[0] : undefined }\n\tlast(): R | undefined { return this.length ? this[this.length - 1] : undefined }\n\tget(index: number): R | undefined { return (this.length && (index >= 0)) ? this[index] : undefined }\n\t// getMetaInfo(): ListMeta { return this.meta }\n\t// hasNextPage(): boolean { return (this.meta.currentPage < this.meta.pageCount) }\n\t// hasPrevPage(): boolean { return (this.meta.currentPage > 1) }\n\t// recordCount(): number { return this.meta.recordCount }\n\t// pageCount(): number { return this.meta.pageCount }\n\n}\n\n\n\nexport type { Metadata, ResourceType, ResourceId, Resource, ResourceCreate, ResourceUpdate, ListResponse }\n\n\n// Resources adapter local configuration\ntype ResourceAdapterConfig = {\n\t// rawResponse?: boolean\n}\n\ntype ResourcesInitConfig = ResourceAdapterConfig & ApiClientInitConfig\ntype ResourcesConfig = ResourceAdapterConfig & ApiClientConfig\n\n\nclass ResourceAdapter {\n\n\t#client: ApiClient\n\n\t#config: ResourceAdapterConfig = {}\n\n\n\tconstructor(config: ResourcesInitConfig) {\n\t\tthis.#client = ApiClient.create(config)\n\t\tthis.config(config)\n\t}\n\n\n\tget interceptors(): InterceptorManager { return this.#client.interceptors }\n\n\n\tconfig(config: ResourcesConfig): void {\n\n\t\tif (!config) return\n\n\t\t// Client config\n\t\tthis.#client.config(config)\n\n\t\t// Resources config\n\t\t// if (typeof config.rawResponse !== 'undefined') this.#config.rawResponse = config.rawResponse\n\n\t\treturn\n\n\t}\n\t\n\n\t/*\n\tprivate isRawResponse(options?: ResourcesConfig): boolean {\n\t\treturn (typeof options?.rawResponse !== 'undefined') ? (options?.rawResponse === true) : (this.#config.rawResponse === true)\n\t}\n\t*/\n\n\n\tasync singleton<R extends Resource>(resource: ResourceType, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<R> {\n\n\t\tconst queryParams = generateQueryStringParams(params)\n\t\tif (options?.params) Object.assign(queryParams, options?.params)\n\n\t\tconst res = await this.#client.request('get', `${resource.type}`, undefined, { ...options, params: queryParams })\n\t\tconst r = denormalize<R>(res) as R\n\n\t\treturn r\n\n\t}\n\n\n\tasync retrieve<R extends Resource>(resource: ResourceId, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<R> {\n\n\t\tconst queryParams = generateQueryStringParams(params)\n\t\tif (options?.params) Object.assign(queryParams, options?.params)\n\n\t\tconst res = await this.#client.request('get', `${resource.type}/${resource.id}`, undefined, { ...options, params: queryParams })\n\t\tconst r = denormalize<R>(res) as R\n\n\t\treturn r\n\n\t}\n\n\n\tasync list<R extends Resource>(resource: ResourceType, params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<R>> {\n\n\t\tconst queryParams = generateQueryStringParams(params)\n\t\tif (options?.params) Object.assign(queryParams, options?.params)\n\n\t\tconst res = await this.#client.request('get', `${resource.type}`, undefined, { ...options, params: queryParams })\n\t\tconst r = denormalize<R>(res) as R[]\n\n\t\tconst meta: ListMeta = {\n\t\t\tpageCount: Number(res.meta?.page_count),\n\t\t\trecordCount: Number(res.meta?.record_count),\n\t\t\tcurrentPage: params?.pageNumber || config.default.pageNumber,\n\t\t\trecordsPerPage: params?.pageSize || config.default.pageSize\n\t\t}\n\n\t\treturn new ListResponse(meta, r)\n\n\t}\n\n\n\tasync create<C extends ResourceCreate, R extends Resource>(resource: C & ResourceType, options?: ResourcesConfig): Promise<R> {\n\n\t\tconst data = normalize(resource)\n\n\t\tconst res = await this.#client.request('post', resource.type, data, options)\n\t\tconst r = denormalize<R>(res) as R\n\n\t\treturn r\n\n\t}\n\n\n\tasync update<U extends ResourceUpdate, R extends Resource>(resource: U & ResourceId, options?: ResourcesConfig): Promise<R> {\n\n\t\tconst data = normalize(resource)\n\n\t\tconst res = await this.#client.request('patch', `${resource.type}/${resource.id}`, data, options)\n\t\tconst r = denormalize<R>(res) as R\n\n\t\treturn r\n\n\t}\n\n\n\tasync delete(resource: ResourceId, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.#client.request('delete', `${resource.type}/${resource.id}`, undefined, options)\n\t}\n\n\n\t/*\n\tasync rawList(resource: ResourceType, params?: QueryParamsList, options?: ResourcesConfig): Promise<DocWithData> {\n\t\tconst queryParams = generateQueryStringParams(params)\n\t\treturn this.#client.request('get', `${resource.type}`, undefined, { ...options, params: queryParams })\n\t}\n\t*/\n\n}\n\n\n\nabstract class ApiResource {\n\n\tstatic readonly TYPE: ResourceTypeLock\n\t// static readonly PATH: ResourceTypeLock\n\tprotected resources: ResourceAdapter\n\n\tconstructor(adapter: ResourceAdapter) {\n\t\tthis.resources = adapter\n\t}\n\n\tabstract relationship(id: string | ResourceId): ResourceId\n\n\t/*\n\tasync rawList(resource: ResourceType, params?: QueryParamsList, options?: ResourcesConfig): Promise<DocWithData> {\n\t\treturn this.resources.rawList(resource, params, options)\n\t}\n\t*/\n\n}\n\n\n\nexport default ResourceAdapter\n\nexport { ApiResource, ResourcesConfig, ResourcesInitConfig }\n","\nconst config = {\n\tdefault: {\n\t\tpageNumber: 1,\n\t\tpageSize: 10,\n\t}\n}\n\n\nexport default config\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Geocoder } from './geocoders'\n\n\ntype AddressRel = ResourceId & { type: typeof Addresses.TYPE }\ntype GeocoderRel = ResourceId & { type: 'geocoders' }\n\n\ninterface Address extends Resource {\n\t\n\tbusiness?: boolean\n\tfirst_name?: string\n\tlast_name?: string\n\tcompany?: string\n\tfull_name?: string\n\tline_1?: string\n\tline_2?: string\n\tcity?: string\n\tzip_code?: string\n\tstate_code?: string\n\tcountry_code?: string\n\tphone?: string\n\tfull_address?: string\n\tname?: string\n\temail?: string\n\tnotes?: string\n\tlat?: number\n\tlng?: number\n\tis_localized?: boolean\n\tis_geocoded?: boolean\n\tprovider_name?: string\n\tmap_url?: string\n\tstatic_map_url?: string\n\tbilling_info?: string\n\n\tgeocoder?: Geocoder\n\n}\n\n\ninterface AddressCreate extends ResourceCreate {\n\t\n\tbusiness?: boolean\n\tfirst_name?: string\n\tlast_name?: string\n\tcompany?: string\n\tline_1: string\n\tline_2?: string\n\tcity: string\n\tzip_code?: string\n\tstate_code: string\n\tcountry_code: string\n\tphone: string\n\temail?: string\n\tnotes?: string\n\tlat?: number\n\tlng?: number\n\tbilling_info?: string\n\n\tgeocoder?: GeocoderRel\n\n}\n\n\ninterface AddressUpdate extends ResourceUpdate {\n\t\n\tbusiness?: boolean\n\tfirst_name?: string\n\tlast_name?: string\n\tcompany?: string\n\tline_1?: string\n\tline_2?: string\n\tcity?: string\n\tzip_code?: string\n\tstate_code?: string\n\tcountry_code?: string\n\tphone?: string\n\temail?: string\n\tnotes?: string\n\tlat?: number\n\tlng?: number\n\tbilling_info?: string\n\n\tgeocoder?: GeocoderRel\n\n}\n\n\nclass Addresses extends ApiResource {\n\n\tstatic readonly TYPE: 'addresses' = 'addresses'\n\t// static readonly PATH = 'addresses'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Address>> {\n\t\treturn this.resources.list({ type: Addresses.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AddressCreate, options?: ResourcesConfig): Promise<Address> {\n\t\treturn this.resources.create({ ...resource, type: Addresses.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Address> {\n\t\treturn this.resources.retrieve<Address>({ type: Addresses.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AddressUpdate, options?: ResourcesConfig): Promise<Address> {\n\t\treturn this.resources.update({ ...resource, type: Addresses.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Addresses.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAddress(resource: any): resource is Address {\n\t\treturn resource.type && (resource.type === Addresses.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Addresses.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Addresses.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AddressRel {\n\t\treturn (typeof id === 'string') ? { id, type: Addresses.TYPE } : {id: id.id, type: Addresses.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Addresses.TYPE\n\t}\n\n}\n\n\nexport default Addresses\n\nexport { Address, AddressCreate, AddressUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\n\n\ntype AdjustmentRel = ResourceId & { type: typeof Adjustments.TYPE }\n\n\ninterface Adjustment extends Resource {\n\t\n\tname?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\t\n}\n\n\ninterface AdjustmentCreate extends ResourceCreate {\n\t\n\tname: string\n\tcurrency_code: string\n\tamount_cents: number\n\t\n}\n\n\ninterface AdjustmentUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\t\n}\n\n\nclass Adjustments extends ApiResource {\n\n\tstatic readonly TYPE: 'adjustments' = 'adjustments'\n\t// static readonly PATH = 'adjustments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Adjustment>> {\n\t\treturn this.resources.list({ type: Adjustments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AdjustmentCreate, options?: ResourcesConfig): Promise<Adjustment> {\n\t\treturn this.resources.create({ ...resource, type: Adjustments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Adjustment> {\n\t\treturn this.resources.retrieve<Adjustment>({ type: Adjustments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AdjustmentUpdate, options?: ResourcesConfig): Promise<Adjustment> {\n\t\treturn this.resources.update({ ...resource, type: Adjustments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Adjustments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAdjustment(resource: any): resource is Adjustment {\n\t\treturn resource.type && (resource.type === Adjustments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Adjustments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Adjustments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AdjustmentRel {\n\t\treturn (typeof id === 'string') ? { id, type: Adjustments.TYPE } : {id: id.id, type: Adjustments.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Adjustments.TYPE\n\t}\n\n}\n\n\nexport default Adjustments\n\nexport { Adjustment, AdjustmentCreate, AdjustmentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { AdyenPayment } from './adyen_payments'\n\n\ntype AdyenGatewayRel = ResourceId & { type: typeof AdyenGateways.TYPE }\ntype AdyenPaymentRel = ResourceId & { type: 'adyen_payments' }\n\n\ninterface AdyenGateway extends Resource {\n\t\n\tname?: string\n\tlive_url_prefix?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tadyen_payments?: AdyenPayment[]\n\n}\n\n\ninterface AdyenGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tmerchant_account: string\n\tapi_key: string\n\tpublic_key?: string\n\tlive_url_prefix: string\n\n\tadyen_payments?: AdyenPaymentRel[]\n\n}\n\n\ninterface AdyenGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tmerchant_account?: string\n\tapi_key?: string\n\tpublic_key?: string\n\tlive_url_prefix?: string\n\n\tadyen_payments?: AdyenPaymentRel[]\n\n}\n\n\nclass AdyenGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'adyen_gateways' = 'adyen_gateways'\n\t// static readonly PATH = 'adyen_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<AdyenGateway>> {\n\t\treturn this.resources.list({ type: AdyenGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AdyenGatewayCreate, options?: ResourcesConfig): Promise<AdyenGateway> {\n\t\treturn this.resources.create({ ...resource, type: AdyenGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<AdyenGateway> {\n\t\treturn this.resources.retrieve<AdyenGateway>({ type: AdyenGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AdyenGatewayUpdate, options?: ResourcesConfig): Promise<AdyenGateway> {\n\t\treturn this.resources.update({ ...resource, type: AdyenGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: AdyenGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAdyenGateway(resource: any): resource is AdyenGateway {\n\t\treturn resource.type && (resource.type === AdyenGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(AdyenGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(AdyenGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AdyenGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: AdyenGateways.TYPE } : {id: id.id, type: AdyenGateways.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn AdyenGateways.TYPE\n\t}\n\n}\n\n\nexport default AdyenGateways\n\nexport { AdyenGateway, AdyenGatewayCreate, AdyenGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype AdyenPaymentRel = ResourceId & { type: typeof AdyenPayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface AdyenPayment extends Resource {\n\t\n\tpublic_key?: string\n\tpayment_methods?: object\n\tpayment_request_data?: object\n\tpayment_request_details?: object\n\tpayment_response?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface AdyenPaymentCreate extends ResourceCreate {\n\t\n\torder?: OrderRel\n\n}\n\n\ninterface AdyenPaymentUpdate extends ResourceUpdate {\n\t\n\tpayment_request_data?: object\n\tpayment_request_details?: object\n\tpayment_response?: object\n\t_authorize?: boolean\n\t_details?: boolean\n\n\torder?: OrderRel\n\n}\n\n\nclass AdyenPayments extends ApiResource {\n\n\tstatic readonly TYPE: 'adyen_payments' = 'adyen_payments'\n\t// static readonly PATH = 'adyen_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<AdyenPayment>> {\n\t\treturn this.resources.list({ type: AdyenPayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AdyenPaymentCreate, options?: ResourcesConfig): Promise<AdyenPayment> {\n\t\treturn this.resources.create({ ...resource, type: AdyenPayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<AdyenPayment> {\n\t\treturn this.resources.retrieve<AdyenPayment>({ type: AdyenPayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AdyenPaymentUpdate, options?: ResourcesConfig): Promise<AdyenPayment> {\n\t\treturn this.resources.update({ ...resource, type: AdyenPayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: AdyenPayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAdyenPayment(resource: any): resource is AdyenPayment {\n\t\treturn resource.type && (resource.type === AdyenPayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(AdyenPayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(AdyenPayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AdyenPaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: AdyenPayments.TYPE } : {id: id.id, type: AdyenPayments.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn AdyenPayments.TYPE\n\t}\n\n}\n\n\nexport default AdyenPayments\n\nexport { AdyenPayment, AdyenPaymentCreate, AdyenPaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsRetrieve } from '../query'\n\n\n\ntype ApplicationRel = ResourceId & { type: typeof Applications.TYPE }\n\n\ninterface Application extends Resource {\n\t\n\tname?: string\n\tkind?: string\n\tpublic_access?: string\n\tredirect_uri?: string\n\tscopes?: string\n\t\n}\n\n\nclass Applications extends ApiResource {\n\n\tstatic readonly TYPE: 'application' = 'application'\n\t// static readonly PATH = 'application'\n\n\tasync retrieve(params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Application> {\n\t\treturn this.resources.singleton<Application>({ type: Applications.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisApplication(resource: any): resource is Application {\n\t\treturn resource.type && (resource.type === Applications.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Applications.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Applications.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ApplicationRel {\n\t\treturn (typeof id === 'string') ? { id, type: Applications.TYPE } : {id: id.id, type: Applications.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Applications.TYPE\n\t}\n\n}\n\n\nexport default Applications\n\nexport { Application }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Bundle } from './bundles'\nimport { CarrierAccount } from './carrier_accounts'\nimport { CustomerGroup } from './customer_groups'\nimport { Customer } from './customers'\nimport { DeliveryLeadTime } from './delivery_lead_times'\nimport { Geocoder } from './geocoders'\nimport { GiftCardRecipient } from './gift_card_recipients'\nimport { GiftCard } from './gift_cards'\nimport { InventoryModel } from './inventory_models'\nimport { Market } from './markets'\nimport { Merchant } from './merchants'\nimport { BillingInfoValidationRule } from './billing_info_validation_rules'\nimport { Order } from './orders'\nimport { Package } from './packages'\nimport { Parcel } from './parcels'\nimport { PaymentMethod } from './payment_methods'\nimport { PriceList } from './price_lists'\nimport { Price } from './prices'\nimport { Promotion } from './promotions'\nimport { Return } from './returns'\nimport { Shipment } from './shipments'\nimport { ShippingCategory } from './shipping_categories'\nimport { ShippingMethod } from './shipping_methods'\nimport { ShippingZone } from './shipping_zones'\nimport { SkuOption } from './sku_options'\nimport { Sku } from './skus'\nimport { StockItem } from './stock_items'\nimport { StockLocation } from './stock_locations'\nimport { TaxCalculator } from './tax_calculators'\nimport { TaxCategory } from './tax_categories'\n\n\ntype AttachmentRel = ResourceId & { type: typeof Attachments.TYPE }\ntype BundleRel = ResourceId & { type: 'bundles' }\ntype CarrierAccountRel = ResourceId & { type: 'carrier_accounts' }\ntype CustomerGroupRel = ResourceId & { type: 'customer_groups' }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype DeliveryLeadTimeRel = ResourceId & { type: 'delivery_lead_times' }\ntype GeocoderRel = ResourceId & { type: 'geocoders' }\ntype GiftCardRecipientRel = ResourceId & { type: 'gift_card_recipients' }\ntype GiftCardRel = ResourceId & { type: 'gift_cards' }\ntype InventoryModelRel = ResourceId & { type: 'inventory_models' }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype MerchantRel = ResourceId & { type: 'merchants' }\ntype BillingInfoValidationRuleRel = ResourceId & { type: 'billing_info_validation_rules' }\ntype OrderRel = ResourceId & { type: 'orders' }\ntype PackageRel = ResourceId & { type: 'packages' }\ntype ParcelRel = ResourceId & { type: 'parcels' }\ntype PaymentMethodRel = ResourceId & { type: 'payment_methods' }\ntype PriceListRel = ResourceId & { type: 'price_lists' }\ntype PriceRel = ResourceId & { type: 'prices' }\ntype PromotionRel = ResourceId & { type: 'promotions' }\ntype ReturnRel = ResourceId & { type: 'returns' }\ntype ShipmentRel = ResourceId & { type: 'shipments' }\ntype ShippingCategoryRel = ResourceId & { type: 'shipping_categories' }\ntype ShippingMethodRel = ResourceId & { type: 'shipping_methods' }\ntype ShippingZoneRel = ResourceId & { type: 'shipping_zones' }\ntype SkuOptionRel = ResourceId & { type: 'sku_options' }\ntype SkuRel = ResourceId & { type: 'skus' }\ntype StockItemRel = ResourceId & { type: 'stock_items' }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype TaxCalculatorRel = ResourceId & { type: 'tax_calculators' }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\n\n\ninterface Attachment extends Resource {\n\t\n\tname?: string\n\tdescription?: string\n\turl?: string\n\n\tattachable?: Bundle | CarrierAccount | CustomerGroup | Customer | DeliveryLeadTime | Geocoder | GiftCardRecipient | GiftCard | InventoryModel | Market | Merchant | BillingInfoValidationRule | Order | Package | Parcel | PaymentMethod | PriceList | Price | Promotion | Return | Shipment | ShippingCategory | ShippingMethod | ShippingZone | SkuOption | Sku | StockItem | StockLocation | TaxCalculator | TaxCategory\n\n}\n\n\ninterface AttachmentCreate extends ResourceCreate {\n\t\n\tname: string\n\tdescription?: string\n\turl?: string\n\n\tattachable?: BundleRel | CarrierAccountRel | CustomerGroupRel | CustomerRel | DeliveryLeadTimeRel | GeocoderRel | GiftCardRecipientRel | GiftCardRel | InventoryModelRel | MarketRel | MerchantRel | BillingInfoValidationRuleRel | OrderRel | PackageRel | ParcelRel | PaymentMethodRel | PriceListRel | PriceRel | PromotionRel | ReturnRel | ShipmentRel | ShippingCategoryRel | ShippingMethodRel | ShippingZoneRel | SkuOptionRel | SkuRel | StockItemRel | StockLocationRel | TaxCalculatorRel | TaxCategoryRel\n\n}\n\n\ninterface AttachmentUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tdescription?: string\n\turl?: string\n\n\tattachable?: BundleRel | CarrierAccountRel | CustomerGroupRel | CustomerRel | DeliveryLeadTimeRel | GeocoderRel | GiftCardRecipientRel | GiftCardRel | InventoryModelRel | MarketRel | MerchantRel | BillingInfoValidationRuleRel | OrderRel | PackageRel | ParcelRel | PaymentMethodRel | PriceListRel | PriceRel | PromotionRel | ReturnRel | ShipmentRel | ShippingCategoryRel | ShippingMethodRel | ShippingZoneRel | SkuOptionRel | SkuRel | StockItemRel | StockLocationRel | TaxCalculatorRel | TaxCategoryRel\n\n}\n\n\nclass Attachments extends ApiResource {\n\n\tstatic readonly TYPE: 'attachments' = 'attachments'\n\t// static readonly PATH = 'attachments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Attachment>> {\n\t\treturn this.resources.list({ type: Attachments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AttachmentCreate, options?: ResourcesConfig): Promise<Attachment> {\n\t\treturn this.resources.create({ ...resource, type: Attachments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Attachment> {\n\t\treturn this.resources.retrieve<Attachment>({ type: Attachments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AttachmentUpdate, options?: ResourcesConfig): Promise<Attachment> {\n\t\treturn this.resources.update({ ...resource, type: Attachments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Attachments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAttachment(resource: any): resource is Attachment {\n\t\treturn resource.type && (resource.type === Attachments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Attachments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Attachments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AttachmentRel {\n\t\treturn (typeof id === 'string') ? { id, type: Attachments.TYPE } : {id: id.id, type: Attachments.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Attachments.TYPE\n\t}\n\n}\n\n\nexport default Attachments\n\nexport { Attachment, AttachmentCreate, AttachmentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Capture } from './captures'\nimport { Void } from './voids'\n\n\ntype AuthorizationRel = ResourceId & { type: typeof Authorizations.TYPE }\n\n\ninterface Authorization extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\tcvv_code?: string\n\tcvv_message?: string\n\tavs_code?: string\n\tavs_message?: string\n\tfraud_review?: string\n\tcapture_amount_cents?: number\n\tcapture_amount_float?: number\n\tformatted_capture_amount?: string\n\tcapture_balance_cents?: number\n\tcapture_balance_float?: number\n\tformatted_capture_balance?: string\n\tvoid_balance_cents?: number\n\tvoid_balance_float?: number\n\tformatted_void_balance?: string\n\n\torder?: Order\n\tcaptures?: Capture[]\n\tvoids?: Void[]\n\n}\n\n\ninterface AuthorizationUpdate extends ResourceUpdate {\n\t\n\t_capture?: boolean\n\t_capture_amount_cents?: number\n\t_void?: boolean\n\t\n}\n\n\nclass Authorizations extends ApiResource {\n\n\tstatic readonly TYPE: 'authorizations' = 'authorizations'\n\t// static readonly PATH = 'authorizations'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Authorization>> {\n\t\treturn this.resources.list({ type: Authorizations.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Authorization> {\n\t\treturn this.resources.retrieve<Authorization>({ type: Authorizations.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AuthorizationUpdate, options?: ResourcesConfig): Promise<Authorization> {\n\t\treturn this.resources.update({ ...resource, type: Authorizations.TYPE }, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAuthorization(resource: any): resource is Authorization {\n\t\treturn resource.type && (resource.type === Authorizations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Authorizations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Authorizations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AuthorizationRel {\n\t\treturn (typeof id === 'string') ? { id, type: Authorizations.TYPE } : {id: id.id, type: Authorizations.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Authorizations.TYPE\n\t}\n\n}\n\n\nexport default Authorizations\n\nexport { Authorization, AuthorizationUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype AvalaraAccountRel = ResourceId & { type: typeof AvalaraAccounts.TYPE }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\n\n\ninterface AvalaraAccount extends Resource {\n\t\n\tname?: string\n\tusername?: string\n\tcompany_code?: string\n\tddp?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface AvalaraAccountCreate extends ResourceCreate {\n\t\n\tname: string\n\tusername: string\n\tpassword: string\n\tcompany_code: string\n\tddp?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\ninterface AvalaraAccountUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tusername?: string\n\tpassword?: string\n\tcompany_code?: string\n\tddp?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\nclass AvalaraAccounts extends ApiResource {\n\n\tstatic readonly TYPE: 'avalara_accounts' = 'avalara_accounts'\n\t// static readonly PATH = 'avalara_accounts'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<AvalaraAccount>> {\n\t\treturn this.resources.list({ type: AvalaraAccounts.TYPE }, params, options)\n\t}\n\n\tasync create(resource: AvalaraAccountCreate, options?: ResourcesConfig): Promise<AvalaraAccount> {\n\t\treturn this.resources.create({ ...resource, type: AvalaraAccounts.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<AvalaraAccount> {\n\t\treturn this.resources.retrieve<AvalaraAccount>({ type: AvalaraAccounts.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: AvalaraAccountUpdate, options?: ResourcesConfig): Promise<AvalaraAccount> {\n\t\treturn this.resources.update({ ...resource, type: AvalaraAccounts.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: AvalaraAccounts.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisAvalaraAccount(resource: any): resource is AvalaraAccount {\n\t\treturn resource.type && (resource.type === AvalaraAccounts.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(AvalaraAccounts.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(AvalaraAccounts.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): AvalaraAccountRel {\n\t\treturn (typeof id === 'string') ? { id, type: AvalaraAccounts.TYPE } : {id: id.id, type: AvalaraAccounts.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn AvalaraAccounts.TYPE\n\t}\n\n}\n\n\nexport default AvalaraAccounts\n\nexport { AvalaraAccount, AvalaraAccountCreate, AvalaraAccountUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\n\n\ntype BillingInfoValidationRuleRel = ResourceId & { type: typeof BillingInfoValidationRules.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\n\n\ninterface BillingInfoValidationRule extends Resource {\n\t\n\tmarket?: Market\n\n}\n\n\ninterface BillingInfoValidationRuleCreate extends ResourceCreate {\n\t\n\tmarket?: MarketRel\n\n}\n\n\ninterface BillingInfoValidationRuleUpdate extends ResourceUpdate {\n\t\n\tmarket?: MarketRel\n\n}\n\n\nclass BillingInfoValidationRules extends ApiResource {\n\n\tstatic readonly TYPE: 'billing_info_validation_rules' = 'billing_info_validation_rules'\n\t// static readonly PATH = 'billing_info_validation_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<BillingInfoValidationRule>> {\n\t\treturn this.resources.list({ type: BillingInfoValidationRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BillingInfoValidationRuleCreate, options?: ResourcesConfig): Promise<BillingInfoValidationRule> {\n\t\treturn this.resources.create({ ...resource, type: BillingInfoValidationRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<BillingInfoValidationRule> {\n\t\treturn this.resources.retrieve<BillingInfoValidationRule>({ type: BillingInfoValidationRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BillingInfoValidationRuleUpdate, options?: ResourcesConfig): Promise<BillingInfoValidationRule> {\n\t\treturn this.resources.update({ ...resource, type: BillingInfoValidationRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: BillingInfoValidationRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBillingInfoValidationRule(resource: any): resource is BillingInfoValidationRule {\n\t\treturn resource.type && (resource.type === BillingInfoValidationRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(BillingInfoValidationRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(BillingInfoValidationRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BillingInfoValidationRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: BillingInfoValidationRules.TYPE } : {id: id.id, type: BillingInfoValidationRules.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn BillingInfoValidationRules.TYPE\n\t}\n\n}\n\n\nexport default BillingInfoValidationRules\n\nexport { BillingInfoValidationRule, BillingInfoValidationRuleCreate, BillingInfoValidationRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Address } from './addresses'\nimport { Attachment } from './attachments'\n\n\ntype BingGeocoderRel = ResourceId & { type: typeof BingGeocoders.TYPE }\n\n\ninterface BingGeocoder extends Resource {\n\t\n\tname?: string\n\n\taddresses?: Address[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface BingGeocoderCreate extends ResourceCreate {\n\t\n\tname: string\n\tkey: string\n\t\n}\n\n\ninterface BingGeocoderUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tkey?: string\n\t\n}\n\n\nclass BingGeocoders extends ApiResource {\n\n\tstatic readonly TYPE: 'bing_geocoders' = 'bing_geocoders'\n\t// static readonly PATH = 'bing_geocoders'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<BingGeocoder>> {\n\t\treturn this.resources.list({ type: BingGeocoders.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BingGeocoderCreate, options?: ResourcesConfig): Promise<BingGeocoder> {\n\t\treturn this.resources.create({ ...resource, type: BingGeocoders.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<BingGeocoder> {\n\t\treturn this.resources.retrieve<BingGeocoder>({ type: BingGeocoders.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BingGeocoderUpdate, options?: ResourcesConfig): Promise<BingGeocoder> {\n\t\treturn this.resources.update({ ...resource, type: BingGeocoders.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: BingGeocoders.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBingGeocoder(resource: any): resource is BingGeocoder {\n\t\treturn resource.type && (resource.type === BingGeocoders.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(BingGeocoders.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(BingGeocoders.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BingGeocoderRel {\n\t\treturn (typeof id === 'string') ? { id, type: BingGeocoders.TYPE } : {id: id.id, type: BingGeocoders.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn BingGeocoders.TYPE\n\t}\n\n}\n\n\nexport default BingGeocoders\n\nexport { BingGeocoder, BingGeocoderCreate, BingGeocoderUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { BraintreePayment } from './braintree_payments'\n\n\ntype BraintreeGatewayRel = ResourceId & { type: typeof BraintreeGateways.TYPE }\ntype BraintreePaymentRel = ResourceId & { type: 'braintree_payments' }\n\n\ninterface BraintreeGateway extends Resource {\n\t\n\tname?: string\n\tdescriptor_name?: string\n\tdescriptor_phone?: string\n\tdescriptor_url?: string\n\twebhook_endpoint_url?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tbraintree_payments?: BraintreePayment[]\n\n}\n\n\ninterface BraintreeGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tmerchant_account_id: string\n\tmerchant_id: string\n\tpublic_key: string\n\tprivate_key: string\n\tdescriptor_name?: string\n\tdescriptor_phone?: string\n\tdescriptor_url?: string\n\n\tbraintree_payments?: BraintreePaymentRel[]\n\n}\n\n\ninterface BraintreeGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tmerchant_account_id?: string\n\tmerchant_id?: string\n\tpublic_key?: string\n\tprivate_key?: string\n\tdescriptor_name?: string\n\tdescriptor_phone?: string\n\tdescriptor_url?: string\n\n\tbraintree_payments?: BraintreePaymentRel[]\n\n}\n\n\nclass BraintreeGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'braintree_gateways' = 'braintree_gateways'\n\t// static readonly PATH = 'braintree_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<BraintreeGateway>> {\n\t\treturn this.resources.list({ type: BraintreeGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BraintreeGatewayCreate, options?: ResourcesConfig): Promise<BraintreeGateway> {\n\t\treturn this.resources.create({ ...resource, type: BraintreeGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<BraintreeGateway> {\n\t\treturn this.resources.retrieve<BraintreeGateway>({ type: BraintreeGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BraintreeGatewayUpdate, options?: ResourcesConfig): Promise<BraintreeGateway> {\n\t\treturn this.resources.update({ ...resource, type: BraintreeGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: BraintreeGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBraintreeGateway(resource: any): resource is BraintreeGateway {\n\t\treturn resource.type && (resource.type === BraintreeGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(BraintreeGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(BraintreeGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BraintreeGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: BraintreeGateways.TYPE } : {id: id.id, type: BraintreeGateways.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn BraintreeGateways.TYPE\n\t}\n\n}\n\n\nexport default BraintreeGateways\n\nexport { BraintreeGateway, BraintreeGatewayCreate, BraintreeGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype BraintreePaymentRel = ResourceId & { type: typeof BraintreePayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface BraintreePayment extends Resource {\n\t\n\tclient_token?: string\n\tpayment_method_nonce?: string\n\tpayment_id?: string\n\tlocal?: boolean\n\toptions?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface BraintreePaymentCreate extends ResourceCreate {\n\t\n\tpayment_id?: string\n\tlocal?: boolean\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\ninterface BraintreePaymentUpdate extends ResourceUpdate {\n\t\n\tpayment_method_nonce?: string\n\tpayment_id?: string\n\tlocal?: boolean\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\nclass BraintreePayments extends ApiResource {\n\n\tstatic readonly TYPE: 'braintree_payments' = 'braintree_payments'\n\t// static readonly PATH = 'braintree_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<BraintreePayment>> {\n\t\treturn this.resources.list({ type: BraintreePayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BraintreePaymentCreate, options?: ResourcesConfig): Promise<BraintreePayment> {\n\t\treturn this.resources.create({ ...resource, type: BraintreePayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<BraintreePayment> {\n\t\treturn this.resources.retrieve<BraintreePayment>({ type: BraintreePayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BraintreePaymentUpdate, options?: ResourcesConfig): Promise<BraintreePayment> {\n\t\treturn this.resources.update({ ...resource, type: BraintreePayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: BraintreePayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBraintreePayment(resource: any): resource is BraintreePayment {\n\t\treturn resource.type && (resource.type === BraintreePayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(BraintreePayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(BraintreePayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BraintreePaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: BraintreePayments.TYPE } : {id: id.id, type: BraintreePayments.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn BraintreePayments.TYPE\n\t}\n\n}\n\n\nexport default BraintreePayments\n\nexport { BraintreePayment, BraintreePaymentCreate, BraintreePaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\nimport { Attachment } from './attachments'\n\n\ntype BundleRel = ResourceId & { type: typeof Bundles.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\n\n\ninterface Bundle extends Resource {\n\t\n\tcode?: string\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tprice_amount_cents?: number\n\tprice_amount_float?: number\n\tformatted_price_amount?: string\n\tcompare_at_amount_cents?: number\n\tcompare_at_amount_float?: number\n\tformatted_compare_at_amount?: string\n\tskus_count?: number\n\n\tmarket?: Market\n\tsku_list?: SkuList\n\tskus?: Sku[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface BundleCreate extends ResourceCreate {\n\t\n\tcode: string\n\tname: string\n\tdescription?: string\n\timage_url?: string\n\tprice_amount_cents: number\n\tcompare_at_amount_cents: number\n\t_compute_compare_at_amount?: boolean\n\n\tmarket?: MarketRel\n\tsku_list?: SkuListRel\n\n}\n\n\ninterface BundleUpdate extends ResourceUpdate {\n\t\n\tcode?: string\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tprice_amount_cents?: number\n\tcompare_at_amount_cents?: number\n\t_compute_compare_at_amount?: boolean\n\t\n}\n\n\nclass Bundles extends ApiResource {\n\n\tstatic readonly TYPE: 'bundles' = 'bundles'\n\t// static readonly PATH = 'bundles'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Bundle>> {\n\t\treturn this.resources.list({ type: Bundles.TYPE }, params, options)\n\t}\n\n\tasync create(resource: BundleCreate, options?: ResourcesConfig): Promise<Bundle> {\n\t\treturn this.resources.create({ ...resource, type: Bundles.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Bundle> {\n\t\treturn this.resources.retrieve<Bundle>({ type: Bundles.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: BundleUpdate, options?: ResourcesConfig): Promise<Bundle> {\n\t\treturn this.resources.update({ ...resource, type: Bundles.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Bundles.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisBundle(resource: any): resource is Bundle {\n\t\treturn resource.type && (resource.type === Bundles.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Bundles.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Bundles.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): BundleRel {\n\t\treturn (typeof id === 'string') ? { id, type: Bundles.TYPE } : {id: id.id, type: Bundles.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Bundles.TYPE\n\t}\n\n}\n\n\nexport default Bundles\n\nexport { Bundle, BundleCreate, BundleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Authorization } from './authorizations'\nimport { Refund } from './refunds'\n\n\ntype CaptureRel = ResourceId & { type: typeof Captures.TYPE }\n\n\ninterface Capture extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\trefund_amount_cents?: number\n\trefund_amount_float?: number\n\tformatted_refund_amount?: string\n\trefund_balance_cents?: number\n\trefund_balance_float?: number\n\tformatted_refund_balance?: string\n\n\torder?: Order\n\treference_authorization?: Authorization\n\trefunds?: Refund[]\n\n}\n\n\ninterface CaptureUpdate extends ResourceUpdate {\n\t\n\t_refund?: boolean\n\t_refund_amount_cents?: number\n\t\n}\n\n\nclass Captures extends ApiResource {\n\n\tstatic readonly TYPE: 'captures' = 'captures'\n\t// static readonly PATH = 'captures'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Capture>> {\n\t\treturn this.resources.list({ type: Captures.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Capture> {\n\t\treturn this.resources.retrieve<Capture>({ type: Captures.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CaptureUpdate, options?: ResourcesConfig): Promise<Capture> {\n\t\treturn this.resources.update({ ...resource, type: Captures.TYPE }, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCapture(resource: any): resource is Capture {\n\t\treturn resource.type && (resource.type === Captures.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Captures.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Captures.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CaptureRel {\n\t\treturn (typeof id === 'string') ? { id, type: Captures.TYPE } : {id: id.id, type: Captures.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Captures.TYPE\n\t}\n\n}\n\n\nexport default Captures\n\nexport { Capture, CaptureUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype CarrierAccountRel = ResourceId & { type: typeof CarrierAccounts.TYPE }\n\n\ninterface CarrierAccount extends Resource {\n\t\n\tname?: string\n\teasypost_type?: string\n\teasypost_id?: string\n\n\tmarket?: Market\n\tattachments?: Attachment[]\n\n}\n\n\nclass CarrierAccounts extends ApiResource {\n\n\tstatic readonly TYPE: 'carrier_accounts' = 'carrier_accounts'\n\t// static readonly PATH = 'carrier_accounts'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CarrierAccount>> {\n\t\treturn this.resources.list({ type: CarrierAccounts.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CarrierAccount> {\n\t\treturn this.resources.retrieve<CarrierAccount>({ type: CarrierAccounts.TYPE, id }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCarrierAccount(resource: any): resource is CarrierAccount {\n\t\treturn resource.type && (resource.type === CarrierAccounts.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CarrierAccounts.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CarrierAccounts.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CarrierAccountRel {\n\t\treturn (typeof id === 'string') ? { id, type: CarrierAccounts.TYPE } : {id: id.id, type: CarrierAccounts.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CarrierAccounts.TYPE\n\t}\n\n}\n\n\nexport default CarrierAccounts\n\nexport { CarrierAccount }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { CheckoutComPayment } from './checkout_com_payments'\n\n\ntype CheckoutComGatewayRel = ResourceId & { type: typeof CheckoutComGateways.TYPE }\ntype CheckoutComPaymentRel = ResourceId & { type: 'checkout_com_payments' }\n\n\ninterface CheckoutComGateway extends Resource {\n\t\n\tname?: string\n\twebhook_endpoint_id?: string\n\twebhook_endpoint_secret?: string\n\twebhook_endpoint_url?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tcheckout_com_payments?: CheckoutComPayment[]\n\n}\n\n\ninterface CheckoutComGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tsecret_key: string\n\tpublic_key: string\n\n\tcheckout_com_payments?: CheckoutComPaymentRel[]\n\n}\n\n\ninterface CheckoutComGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tsecret_key?: string\n\tpublic_key?: string\n\n\tcheckout_com_payments?: CheckoutComPaymentRel[]\n\n}\n\n\nclass CheckoutComGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'checkout_com_gateways' = 'checkout_com_gateways'\n\t// static readonly PATH = 'checkout_com_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CheckoutComGateway>> {\n\t\treturn this.resources.list({ type: CheckoutComGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CheckoutComGatewayCreate, options?: ResourcesConfig): Promise<CheckoutComGateway> {\n\t\treturn this.resources.create({ ...resource, type: CheckoutComGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CheckoutComGateway> {\n\t\treturn this.resources.retrieve<CheckoutComGateway>({ type: CheckoutComGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CheckoutComGatewayUpdate, options?: ResourcesConfig): Promise<CheckoutComGateway> {\n\t\treturn this.resources.update({ ...resource, type: CheckoutComGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CheckoutComGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCheckoutComGateway(resource: any): resource is CheckoutComGateway {\n\t\treturn resource.type && (resource.type === CheckoutComGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CheckoutComGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CheckoutComGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CheckoutComGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: CheckoutComGateways.TYPE } : {id: id.id, type: CheckoutComGateways.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CheckoutComGateways.TYPE\n\t}\n\n}\n\n\nexport default CheckoutComGateways\n\nexport { CheckoutComGateway, CheckoutComGatewayCreate, CheckoutComGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype CheckoutComPaymentRel = ResourceId & { type: typeof CheckoutComPayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface CheckoutComPayment extends Resource {\n\t\n\tpayment_type?: string\n\ttoken?: string\n\tsession_id?: string\n\tsource_id?: string\n\tcustomer_token?: string\n\tredirect_uri?: string\n\tpayment_response?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface CheckoutComPaymentCreate extends ResourceCreate {\n\t\n\tpayment_type: string\n\ttoken: string\n\tsession_id?: string\n\n\torder?: OrderRel\n\n}\n\n\ninterface CheckoutComPaymentUpdate extends ResourceUpdate {\n\t\n\tpayment_type?: string\n\ttoken?: string\n\tsession_id?: string\n\t_authorize?: boolean\n\t_details?: boolean\n\t_refresh?: boolean\n\n\torder?: OrderRel\n\n}\n\n\nclass CheckoutComPayments extends ApiResource {\n\n\tstatic readonly TYPE: 'checkout_com_payments' = 'checkout_com_payments'\n\t// static readonly PATH = 'checkout_com_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CheckoutComPayment>> {\n\t\treturn this.resources.list({ type: CheckoutComPayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CheckoutComPaymentCreate, options?: ResourcesConfig): Promise<CheckoutComPayment> {\n\t\treturn this.resources.create({ ...resource, type: CheckoutComPayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CheckoutComPayment> {\n\t\treturn this.resources.retrieve<CheckoutComPayment>({ type: CheckoutComPayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CheckoutComPaymentUpdate, options?: ResourcesConfig): Promise<CheckoutComPayment> {\n\t\treturn this.resources.update({ ...resource, type: CheckoutComPayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CheckoutComPayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCheckoutComPayment(resource: any): resource is CheckoutComPayment {\n\t\treturn resource.type && (resource.type === CheckoutComPayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CheckoutComPayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CheckoutComPayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CheckoutComPaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: CheckoutComPayments.TYPE } : {id: id.id, type: CheckoutComPayments.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CheckoutComPayments.TYPE\n\t}\n\n}\n\n\nexport default CheckoutComPayments\n\nexport { CheckoutComPayment, CheckoutComPaymentCreate, CheckoutComPaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { FreeGiftPromotion } from './free_gift_promotions'\nimport { FixedPricePromotion } from './fixed_price_promotions'\nimport { ExternalPromotion } from './external_promotions'\nimport { Coupon } from './coupons'\n\n\ntype CouponCodesPromotionRuleRel = ResourceId & { type: typeof CouponCodesPromotionRules.TYPE }\ntype PercentageDiscountPromotionRel = ResourceId & { type: 'percentage_discount_promotions' }\ntype FreeShippingPromotionRel = ResourceId & { type: 'free_shipping_promotions' }\ntype FixedAmountPromotionRel = ResourceId & { type: 'fixed_amount_promotions' }\ntype FreeGiftPromotionRel = ResourceId & { type: 'free_gift_promotions' }\ntype FixedPricePromotionRel = ResourceId & { type: 'fixed_price_promotions' }\ntype ExternalPromotionRel = ResourceId & { type: 'external_promotions' }\ntype CouponRel = ResourceId & { type: 'coupons' }\n\n\ninterface CouponCodesPromotionRule extends Resource {\n\t\n\tpromotion?: PercentageDiscountPromotion | FreeShippingPromotion | FixedAmountPromotion | FreeGiftPromotion | FixedPricePromotion | ExternalPromotion\n\tcoupons?: Coupon[]\n\n}\n\n\ninterface CouponCodesPromotionRuleCreate extends ResourceCreate {\n\t\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | FreeGiftPromotionRel | FixedPricePromotionRel | ExternalPromotionRel\n\tcoupons?: CouponRel[]\n\n}\n\n\ninterface CouponCodesPromotionRuleUpdate extends ResourceUpdate {\n\t\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | FreeGiftPromotionRel | FixedPricePromotionRel | ExternalPromotionRel\n\tcoupons?: CouponRel[]\n\n}\n\n\nclass CouponCodesPromotionRules extends ApiResource {\n\n\tstatic readonly TYPE: 'coupon_codes_promotion_rules' = 'coupon_codes_promotion_rules'\n\t// static readonly PATH = 'coupon_codes_promotion_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CouponCodesPromotionRule>> {\n\t\treturn this.resources.list({ type: CouponCodesPromotionRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CouponCodesPromotionRuleCreate, options?: ResourcesConfig): Promise<CouponCodesPromotionRule> {\n\t\treturn this.resources.create({ ...resource, type: CouponCodesPromotionRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CouponCodesPromotionRule> {\n\t\treturn this.resources.retrieve<CouponCodesPromotionRule>({ type: CouponCodesPromotionRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CouponCodesPromotionRuleUpdate, options?: ResourcesConfig): Promise<CouponCodesPromotionRule> {\n\t\treturn this.resources.update({ ...resource, type: CouponCodesPromotionRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CouponCodesPromotionRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCouponCodesPromotionRule(resource: any): resource is CouponCodesPromotionRule {\n\t\treturn resource.type && (resource.type === CouponCodesPromotionRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CouponCodesPromotionRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CouponCodesPromotionRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CouponCodesPromotionRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: CouponCodesPromotionRules.TYPE } : {id: id.id, type: CouponCodesPromotionRules.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CouponCodesPromotionRules.TYPE\n\t}\n\n}\n\n\nexport default CouponCodesPromotionRules\n\nexport { CouponCodesPromotionRule, CouponCodesPromotionRuleCreate, CouponCodesPromotionRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\nimport { Attachment } from './attachments'\n\n\ntype CouponRecipientRel = ResourceId & { type: typeof CouponRecipients.TYPE }\ntype CustomerRel = ResourceId & { type: 'customers' }\n\n\ninterface CouponRecipient extends Resource {\n\t\n\temail?: string\n\tfirst_name?: string\n\tlast_name?: string\n\n\tcustomer?: Customer\n\tattachments?: Attachment[]\n\n}\n\n\ninterface CouponRecipientCreate extends ResourceCreate {\n\t\n\temail: string\n\tfirst_name?: string\n\tlast_name?: string\n\n\tcustomer?: CustomerRel\n\n}\n\n\ninterface CouponRecipientUpdate extends ResourceUpdate {\n\t\n\temail?: string\n\tfirst_name?: string\n\tlast_name?: string\n\n\tcustomer?: CustomerRel\n\n}\n\n\nclass CouponRecipients extends ApiResource {\n\n\tstatic readonly TYPE: 'coupon_recipients' = 'coupon_recipients'\n\t// static readonly PATH = 'coupon_recipients'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CouponRecipient>> {\n\t\treturn this.resources.list({ type: CouponRecipients.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CouponRecipientCreate, options?: ResourcesConfig): Promise<CouponRecipient> {\n\t\treturn this.resources.create({ ...resource, type: CouponRecipients.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CouponRecipient> {\n\t\treturn this.resources.retrieve<CouponRecipient>({ type: CouponRecipients.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CouponRecipientUpdate, options?: ResourcesConfig): Promise<CouponRecipient> {\n\t\treturn this.resources.update({ ...resource, type: CouponRecipients.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CouponRecipients.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCouponRecipient(resource: any): resource is CouponRecipient {\n\t\treturn resource.type && (resource.type === CouponRecipients.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CouponRecipients.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CouponRecipients.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CouponRecipientRel {\n\t\treturn (typeof id === 'string') ? { id, type: CouponRecipients.TYPE } : {id: id.id, type: CouponRecipients.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CouponRecipients.TYPE\n\t}\n\n}\n\n\nexport default CouponRecipients\n\nexport { CouponRecipient, CouponRecipientCreate, CouponRecipientUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\n\n\ntype CouponRel = ResourceId & { type: typeof Coupons.TYPE }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\n\n\ninterface Coupon extends Resource {\n\t\n\tcode?: string\n\tusage_limit?: number\n\tusage_count?: number\n\trecipient_email?: string\n\n\tpromotion_rule?: CouponCodesPromotionRule\n\n}\n\n\ninterface CouponCreate extends ResourceCreate {\n\t\n\tcode: string\n\tusage_limit: number\n\trecipient_email?: string\n\n\tpromotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\ninterface CouponUpdate extends ResourceUpdate {\n\t\n\tcode?: string\n\tusage_limit?: number\n\trecipient_email?: string\n\n\tpromotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\nclass Coupons extends ApiResource {\n\n\tstatic readonly TYPE: 'coupons' = 'coupons'\n\t// static readonly PATH = 'coupons'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Coupon>> {\n\t\treturn this.resources.list({ type: Coupons.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CouponCreate, options?: ResourcesConfig): Promise<Coupon> {\n\t\treturn this.resources.create({ ...resource, type: Coupons.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Coupon> {\n\t\treturn this.resources.retrieve<Coupon>({ type: Coupons.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CouponUpdate, options?: ResourcesConfig): Promise<Coupon> {\n\t\treturn this.resources.update({ ...resource, type: Coupons.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Coupons.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCoupon(resource: any): resource is Coupon {\n\t\treturn resource.type && (resource.type === Coupons.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Coupons.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Coupons.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CouponRel {\n\t\treturn (typeof id === 'string') ? { id, type: Coupons.TYPE } : {id: id.id, type: Coupons.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Coupons.TYPE\n\t}\n\n}\n\n\nexport default Coupons\n\nexport { Coupon, CouponCreate, CouponUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\nimport { Address } from './addresses'\n\n\ntype CustomerAddressRel = ResourceId & { type: typeof CustomerAddresses.TYPE }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype AddressRel = ResourceId & { type: 'addresses' }\n\n\ninterface CustomerAddress extends Resource {\n\t\n\tname?: string\n\n\tcustomer?: Customer\n\taddress?: Address\n\n}\n\n\ninterface CustomerAddressCreate extends ResourceCreate {\n\t\n\tcustomer?: CustomerRel\n\taddress?: AddressRel\n\n}\n\n\ninterface CustomerAddressUpdate extends ResourceUpdate {\n\t\n\tcustomer?: CustomerRel\n\taddress?: AddressRel\n\n}\n\n\nclass CustomerAddresses extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_addresses' = 'customer_addresses'\n\t// static readonly PATH = 'customer_addresses'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerAddress>> {\n\t\treturn this.resources.list({ type: CustomerAddresses.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerAddressCreate, options?: ResourcesConfig): Promise<CustomerAddress> {\n\t\treturn this.resources.create({ ...resource, type: CustomerAddresses.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerAddress> {\n\t\treturn this.resources.retrieve<CustomerAddress>({ type: CustomerAddresses.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerAddressUpdate, options?: ResourcesConfig): Promise<CustomerAddress> {\n\t\treturn this.resources.update({ ...resource, type: CustomerAddresses.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerAddresses.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerAddress(resource: any): resource is CustomerAddress {\n\t\treturn resource.type && (resource.type === CustomerAddresses.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerAddresses.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerAddresses.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerAddressRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerAddresses.TYPE } : {id: id.id, type: CustomerAddresses.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CustomerAddresses.TYPE\n\t}\n\n}\n\n\nexport default CustomerAddresses\n\nexport { CustomerAddress, CustomerAddressCreate, CustomerAddressUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype CustomerGroupRel = ResourceId & { type: typeof CustomerGroups.TYPE }\n\n\ninterface CustomerGroup extends Resource {\n\t\n\tname?: string\n\n\tcustomers?: Customer[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface CustomerGroupCreate extends ResourceCreate {\n\t\n\tname: string\n\t\n}\n\n\ninterface CustomerGroupUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\t\n}\n\n\nclass CustomerGroups extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_groups' = 'customer_groups'\n\t// static readonly PATH = 'customer_groups'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerGroup>> {\n\t\treturn this.resources.list({ type: CustomerGroups.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerGroupCreate, options?: ResourcesConfig): Promise<CustomerGroup> {\n\t\treturn this.resources.create({ ...resource, type: CustomerGroups.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerGroup> {\n\t\treturn this.resources.retrieve<CustomerGroup>({ type: CustomerGroups.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerGroupUpdate, options?: ResourcesConfig): Promise<CustomerGroup> {\n\t\treturn this.resources.update({ ...resource, type: CustomerGroups.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerGroups.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerGroup(resource: any): resource is CustomerGroup {\n\t\treturn resource.type && (resource.type === CustomerGroups.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerGroups.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerGroups.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerGroupRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerGroups.TYPE } : {id: id.id, type: CustomerGroups.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CustomerGroups.TYPE\n\t}\n\n}\n\n\nexport default CustomerGroups\n\nexport { CustomerGroup, CustomerGroupCreate, CustomerGroupUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\n\n\ntype CustomerPasswordResetRel = ResourceId & { type: typeof CustomerPasswordResets.TYPE }\n\n\ninterface CustomerPasswordReset extends Resource {\n\t\n\tcustomer_email?: string\n\treset_password_token?: string\n\treset_password_at?: string\n\n\tcustomer?: Customer\n\n}\n\n\ninterface CustomerPasswordResetCreate extends ResourceCreate {\n\t\n\tcustomer_email: string\n\t\n}\n\n\ninterface CustomerPasswordResetUpdate extends ResourceUpdate {\n\t\n\tcustomer_password?: string\n\t_reset_password_token?: string\n\t\n}\n\n\nclass CustomerPasswordResets extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_password_resets' = 'customer_password_resets'\n\t// static readonly PATH = 'customer_password_resets'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerPasswordReset>> {\n\t\treturn this.resources.list({ type: CustomerPasswordResets.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerPasswordResetCreate, options?: ResourcesConfig): Promise<CustomerPasswordReset> {\n\t\treturn this.resources.create({ ...resource, type: CustomerPasswordResets.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerPasswordReset> {\n\t\treturn this.resources.retrieve<CustomerPasswordReset>({ type: CustomerPasswordResets.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerPasswordResetUpdate, options?: ResourcesConfig): Promise<CustomerPasswordReset> {\n\t\treturn this.resources.update({ ...resource, type: CustomerPasswordResets.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerPasswordResets.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerPasswordReset(resource: any): resource is CustomerPasswordReset {\n\t\treturn resource.type && (resource.type === CustomerPasswordResets.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerPasswordResets.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerPasswordResets.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerPasswordResetRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerPasswordResets.TYPE } : {id: id.id, type: CustomerPasswordResets.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CustomerPasswordResets.TYPE\n\t}\n\n}\n\n\nexport default CustomerPasswordResets\n\nexport { CustomerPasswordReset, CustomerPasswordResetCreate, CustomerPasswordResetUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\nimport { AdyenPayment } from './adyen_payments'\nimport { BraintreePayment } from './braintree_payments'\nimport { CheckoutComPayment } from './checkout_com_payments'\nimport { ExternalPayment } from './external_payments'\nimport { PaypalPayment } from './paypal_payments'\nimport { StripePayment } from './stripe_payments'\nimport { WireTransfer } from './wire_transfers'\n\n\ntype CustomerPaymentSourceRel = ResourceId & { type: typeof CustomerPaymentSources.TYPE }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype AdyenPaymentRel = ResourceId & { type: 'adyen_payments' }\ntype BraintreePaymentRel = ResourceId & { type: 'braintree_payments' }\ntype CheckoutComPaymentRel = ResourceId & { type: 'checkout_com_payments' }\ntype ExternalPaymentRel = ResourceId & { type: 'external_payments' }\ntype PaypalPaymentRel = ResourceId & { type: 'paypal_payments' }\ntype StripePaymentRel = ResourceId & { type: 'stripe_payments' }\ntype WireTransferRel = ResourceId & { type: 'wire_transfers' }\n\n\ninterface CustomerPaymentSource extends Resource {\n\t\n\tname?: string\n\tcustomer_token?: string\n\tpayment_source_token?: string\n\n\tcustomer?: Customer\n\tpayment_source?: AdyenPayment | BraintreePayment | CheckoutComPayment | ExternalPayment | PaypalPayment | StripePayment | WireTransfer\n\n}\n\n\ninterface CustomerPaymentSourceCreate extends ResourceCreate {\n\t\n\tcustomer?: CustomerRel\n\tpayment_source?: AdyenPaymentRel | BraintreePaymentRel | CheckoutComPaymentRel | ExternalPaymentRel | PaypalPaymentRel | StripePaymentRel | WireTransferRel\n\n}\n\n\ninterface CustomerPaymentSourceUpdate extends ResourceUpdate {\n\t\n\tcustomer?: CustomerRel\n\tpayment_source?: AdyenPaymentRel | BraintreePaymentRel | CheckoutComPaymentRel | ExternalPaymentRel | PaypalPaymentRel | StripePaymentRel | WireTransferRel\n\n}\n\n\nclass CustomerPaymentSources extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_payment_sources' = 'customer_payment_sources'\n\t// static readonly PATH = 'customer_payment_sources'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerPaymentSource>> {\n\t\treturn this.resources.list({ type: CustomerPaymentSources.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerPaymentSourceCreate, options?: ResourcesConfig): Promise<CustomerPaymentSource> {\n\t\treturn this.resources.create({ ...resource, type: CustomerPaymentSources.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerPaymentSource> {\n\t\treturn this.resources.retrieve<CustomerPaymentSource>({ type: CustomerPaymentSources.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerPaymentSourceUpdate, options?: ResourcesConfig): Promise<CustomerPaymentSource> {\n\t\treturn this.resources.update({ ...resource, type: CustomerPaymentSources.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerPaymentSources.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerPaymentSource(resource: any): resource is CustomerPaymentSource {\n\t\treturn resource.type && (resource.type === CustomerPaymentSources.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerPaymentSources.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerPaymentSources.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerPaymentSourceRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerPaymentSources.TYPE } : {id: id.id, type: CustomerPaymentSources.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CustomerPaymentSources.TYPE\n\t}\n\n}\n\n\nexport default CustomerPaymentSources\n\nexport { CustomerPaymentSource, CustomerPaymentSourceCreate, CustomerPaymentSourceUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\n\n\ntype CustomerSubscriptionRel = ResourceId & { type: typeof CustomerSubscriptions.TYPE }\n\n\ninterface CustomerSubscription extends Resource {\n\t\n\tcustomer_email?: string\n\n\tcustomer?: Customer\n\n}\n\n\ninterface CustomerSubscriptionCreate extends ResourceCreate {\n\t\n\tcustomer_email: string\n\t\n}\n\n\ntype CustomerSubscriptionUpdate = ResourceUpdate\n\n\nclass CustomerSubscriptions extends ApiResource {\n\n\tstatic readonly TYPE: 'customer_subscriptions' = 'customer_subscriptions'\n\t// static readonly PATH = 'customer_subscriptions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<CustomerSubscription>> {\n\t\treturn this.resources.list({ type: CustomerSubscriptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerSubscriptionCreate, options?: ResourcesConfig): Promise<CustomerSubscription> {\n\t\treturn this.resources.create({ ...resource, type: CustomerSubscriptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<CustomerSubscription> {\n\t\treturn this.resources.retrieve<CustomerSubscription>({ type: CustomerSubscriptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerSubscriptionUpdate, options?: ResourcesConfig): Promise<CustomerSubscription> {\n\t\treturn this.resources.update({ ...resource, type: CustomerSubscriptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: CustomerSubscriptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomerSubscription(resource: any): resource is CustomerSubscription {\n\t\treturn resource.type && (resource.type === CustomerSubscriptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(CustomerSubscriptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(CustomerSubscriptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerSubscriptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: CustomerSubscriptions.TYPE } : {id: id.id, type: CustomerSubscriptions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn CustomerSubscriptions.TYPE\n\t}\n\n}\n\n\nexport default CustomerSubscriptions\n\nexport { CustomerSubscription, CustomerSubscriptionCreate, CustomerSubscriptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { CustomerGroup } from './customer_groups'\nimport { CustomerAddress } from './customer_addresses'\nimport { CustomerPaymentSource } from './customer_payment_sources'\nimport { CustomerSubscription } from './customer_subscriptions'\nimport { Order } from './orders'\nimport { OrderSubscription } from './order_subscriptions'\nimport { Return } from './returns'\nimport { Attachment } from './attachments'\n\n\ntype CustomerRel = ResourceId & { type: typeof Customers.TYPE }\ntype CustomerGroupRel = ResourceId & { type: 'customer_groups' }\n\n\ninterface Customer extends Resource {\n\t\n\temail?: string\n\tstatus?: string\n\thas_password?: boolean\n\n\tcustomer_group?: CustomerGroup\n\tcustomer_addresses?: CustomerAddress[]\n\tcustomer_payment_sources?: CustomerPaymentSource[]\n\tcustomer_subscriptions?: CustomerSubscription[]\n\torders?: Order[]\n\torder_subscriptions?: OrderSubscription[]\n\treturns?: Return[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface CustomerCreate extends ResourceCreate {\n\t\n\temail: string\n\tpassword?: string\n\n\tcustomer_group?: CustomerGroupRel\n\n}\n\n\ninterface CustomerUpdate extends ResourceUpdate {\n\t\n\temail?: string\n\tpassword?: string\n\n\tcustomer_group?: CustomerGroupRel\n\n}\n\n\nclass Customers extends ApiResource {\n\n\tstatic readonly TYPE: 'customers' = 'customers'\n\t// static readonly PATH = 'customers'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Customer>> {\n\t\treturn this.resources.list({ type: Customers.TYPE }, params, options)\n\t}\n\n\tasync create(resource: CustomerCreate, options?: ResourcesConfig): Promise<Customer> {\n\t\treturn this.resources.create({ ...resource, type: Customers.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Customer> {\n\t\treturn this.resources.retrieve<Customer>({ type: Customers.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: CustomerUpdate, options?: ResourcesConfig): Promise<Customer> {\n\t\treturn this.resources.update({ ...resource, type: Customers.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Customers.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisCustomer(resource: any): resource is Customer {\n\t\treturn resource.type && (resource.type === Customers.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Customers.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Customers.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): CustomerRel {\n\t\treturn (typeof id === 'string') ? { id, type: Customers.TYPE } : {id: id.id, type: Customers.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Customers.TYPE\n\t}\n\n}\n\n\nexport default Customers\n\nexport { Customer, CustomerCreate, CustomerUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { ShippingMethod } from './shipping_methods'\nimport { Attachment } from './attachments'\n\n\ntype DeliveryLeadTimeRel = ResourceId & { type: typeof DeliveryLeadTimes.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype ShippingMethodRel = ResourceId & { type: 'shipping_methods' }\n\n\ninterface DeliveryLeadTime extends Resource {\n\t\n\tmin_hours?: number\n\tmax_hours?: number\n\tmin_days?: number\n\tmax_days?: number\n\n\tstock_location?: StockLocation\n\tshipping_method?: ShippingMethod\n\tattachments?: Attachment[]\n\n}\n\n\ninterface DeliveryLeadTimeCreate extends ResourceCreate {\n\t\n\tmin_hours: number\n\tmax_hours: number\n\n\tstock_location?: StockLocationRel\n\tshipping_method?: ShippingMethodRel\n\n}\n\n\ninterface DeliveryLeadTimeUpdate extends ResourceUpdate {\n\t\n\tmin_hours?: number\n\tmax_hours?: number\n\n\tstock_location?: StockLocationRel\n\tshipping_method?: ShippingMethodRel\n\n}\n\n\nclass DeliveryLeadTimes extends ApiResource {\n\n\tstatic readonly TYPE: 'delivery_lead_times' = 'delivery_lead_times'\n\t// static readonly PATH = 'delivery_lead_times'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<DeliveryLeadTime>> {\n\t\treturn this.resources.list({ type: DeliveryLeadTimes.TYPE }, params, options)\n\t}\n\n\tasync create(resource: DeliveryLeadTimeCreate, options?: ResourcesConfig): Promise<DeliveryLeadTime> {\n\t\treturn this.resources.create({ ...resource, type: DeliveryLeadTimes.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<DeliveryLeadTime> {\n\t\treturn this.resources.retrieve<DeliveryLeadTime>({ type: DeliveryLeadTimes.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: DeliveryLeadTimeUpdate, options?: ResourcesConfig): Promise<DeliveryLeadTime> {\n\t\treturn this.resources.update({ ...resource, type: DeliveryLeadTimes.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: DeliveryLeadTimes.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisDeliveryLeadTime(resource: any): resource is DeliveryLeadTime {\n\t\treturn resource.type && (resource.type === DeliveryLeadTimes.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(DeliveryLeadTimes.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(DeliveryLeadTimes.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): DeliveryLeadTimeRel {\n\t\treturn (typeof id === 'string') ? { id, type: DeliveryLeadTimes.TYPE } : {id: id.id, type: DeliveryLeadTimes.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn DeliveryLeadTimes.TYPE\n\t}\n\n}\n\n\nexport default DeliveryLeadTimes\n\nexport { DeliveryLeadTime, DeliveryLeadTimeCreate, DeliveryLeadTimeUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Webhook } from './webhooks'\n\n\ntype EventCallbackRel = ResourceId & { type: typeof EventCallbacks.TYPE }\n\n\ninterface EventCallback extends Resource {\n\t\n\tcallback_url?: string\n\tpayload?: object\n\tresponse_code?: string\n\tresponse_message?: string\n\n\twebhook?: Webhook\n\n}\n\n\nclass EventCallbacks extends ApiResource {\n\n\tstatic readonly TYPE: 'event_callbacks' = 'event_callbacks'\n\t// static readonly PATH = 'event_callbacks'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<EventCallback>> {\n\t\treturn this.resources.list({ type: EventCallbacks.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<EventCallback> {\n\t\treturn this.resources.retrieve<EventCallback>({ type: EventCallbacks.TYPE, id }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisEventCallback(resource: any): resource is EventCallback {\n\t\treturn resource.type && (resource.type === EventCallbacks.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(EventCallbacks.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(EventCallbacks.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): EventCallbackRel {\n\t\treturn (typeof id === 'string') ? { id, type: EventCallbacks.TYPE } : {id: id.id, type: EventCallbacks.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn EventCallbacks.TYPE\n\t}\n\n}\n\n\nexport default EventCallbacks\n\nexport { EventCallback }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { ExternalPayment } from './external_payments'\n\n\ntype ExternalGatewayRel = ResourceId & { type: typeof ExternalGateways.TYPE }\n\n\ninterface ExternalGateway extends Resource {\n\t\n\tname?: string\n\tshared_secret?: string\n\tauthorize_url?: string\n\tcapture_url?: string\n\tvoid_url?: string\n\trefund_url?: string\n\n\tpayment_methods?: PaymentMethod[]\n\texternal_payments?: ExternalPayment[]\n\n}\n\n\ninterface ExternalGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tauthorize_url?: string\n\tcapture_url?: string\n\tvoid_url?: string\n\trefund_url?: string\n\t\n}\n\n\ninterface ExternalGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tauthorize_url?: string\n\tcapture_url?: string\n\tvoid_url?: string\n\trefund_url?: string\n\t\n}\n\n\nclass ExternalGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'external_gateways' = 'external_gateways'\n\t// static readonly PATH = 'external_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ExternalGateway>> {\n\t\treturn this.resources.list({ type: ExternalGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ExternalGatewayCreate, options?: ResourcesConfig): Promise<ExternalGateway> {\n\t\treturn this.resources.create({ ...resource, type: ExternalGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ExternalGateway> {\n\t\treturn this.resources.retrieve<ExternalGateway>({ type: ExternalGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ExternalGatewayUpdate, options?: ResourcesConfig): Promise<ExternalGateway> {\n\t\treturn this.resources.update({ ...resource, type: ExternalGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ExternalGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisExternalGateway(resource: any): resource is ExternalGateway {\n\t\treturn resource.type && (resource.type === ExternalGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ExternalGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ExternalGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ExternalGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: ExternalGateways.TYPE } : {id: id.id, type: ExternalGateways.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ExternalGateways.TYPE\n\t}\n\n}\n\n\nexport default ExternalGateways\n\nexport { ExternalGateway, ExternalGatewayCreate, ExternalGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype ExternalPaymentRel = ResourceId & { type: typeof ExternalPayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface ExternalPayment extends Resource {\n\t\n\tpayment_source_token?: string\n\toptions?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface ExternalPaymentCreate extends ResourceCreate {\n\t\n\tpayment_source_token: string\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\ninterface ExternalPaymentUpdate extends ResourceUpdate {\n\t\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\nclass ExternalPayments extends ApiResource {\n\n\tstatic readonly TYPE: 'external_payments' = 'external_payments'\n\t// static readonly PATH = 'external_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ExternalPayment>> {\n\t\treturn this.resources.list({ type: ExternalPayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ExternalPaymentCreate, options?: ResourcesConfig): Promise<ExternalPayment> {\n\t\treturn this.resources.create({ ...resource, type: ExternalPayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ExternalPayment> {\n\t\treturn this.resources.retrieve<ExternalPayment>({ type: ExternalPayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ExternalPaymentUpdate, options?: ResourcesConfig): Promise<ExternalPayment> {\n\t\treturn this.resources.update({ ...resource, type: ExternalPayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ExternalPayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisExternalPayment(resource: any): resource is ExternalPayment {\n\t\treturn resource.type && (resource.type === ExternalPayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ExternalPayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ExternalPayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ExternalPaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: ExternalPayments.TYPE } : {id: id.id, type: ExternalPayments.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ExternalPayments.TYPE\n\t}\n\n}\n\n\nexport default ExternalPayments\n\nexport { ExternalPayment, ExternalPaymentCreate, ExternalPaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\n\n\ntype ExternalPromotionRel = ResourceId & { type: typeof ExternalPromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\n\n\ninterface ExternalPromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\tpromotion_url?: string\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ExternalPromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\tpromotion_url: string\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\ninterface ExternalPromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\tpromotion_url?: string\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\nclass ExternalPromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'external_promotions' = 'external_promotions'\n\t// static readonly PATH = 'external_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ExternalPromotion>> {\n\t\treturn this.resources.list({ type: ExternalPromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ExternalPromotionCreate, options?: ResourcesConfig): Promise<ExternalPromotion> {\n\t\treturn this.resources.create({ ...resource, type: ExternalPromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ExternalPromotion> {\n\t\treturn this.resources.retrieve<ExternalPromotion>({ type: ExternalPromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ExternalPromotionUpdate, options?: ResourcesConfig): Promise<ExternalPromotion> {\n\t\treturn this.resources.update({ ...resource, type: ExternalPromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ExternalPromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisExternalPromotion(resource: any): resource is ExternalPromotion {\n\t\treturn resource.type && (resource.type === ExternalPromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ExternalPromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ExternalPromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ExternalPromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: ExternalPromotions.TYPE } : {id: id.id, type: ExternalPromotions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ExternalPromotions.TYPE\n\t}\n\n}\n\n\nexport default ExternalPromotions\n\nexport { ExternalPromotion, ExternalPromotionCreate, ExternalPromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype ExternalTaxCalculatorRel = ResourceId & { type: typeof ExternalTaxCalculators.TYPE }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\n\n\ninterface ExternalTaxCalculator extends Resource {\n\t\n\tname?: string\n\ttax_calculator_url?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ExternalTaxCalculatorCreate extends ResourceCreate {\n\t\n\tname: string\n\ttax_calculator_url: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\ninterface ExternalTaxCalculatorUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\ttax_calculator_url?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\nclass ExternalTaxCalculators extends ApiResource {\n\n\tstatic readonly TYPE: 'external_tax_calculators' = 'external_tax_calculators'\n\t// static readonly PATH = 'external_tax_calculators'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ExternalTaxCalculator>> {\n\t\treturn this.resources.list({ type: ExternalTaxCalculators.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ExternalTaxCalculatorCreate, options?: ResourcesConfig): Promise<ExternalTaxCalculator> {\n\t\treturn this.resources.create({ ...resource, type: ExternalTaxCalculators.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ExternalTaxCalculator> {\n\t\treturn this.resources.retrieve<ExternalTaxCalculator>({ type: ExternalTaxCalculators.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ExternalTaxCalculatorUpdate, options?: ResourcesConfig): Promise<ExternalTaxCalculator> {\n\t\treturn this.resources.update({ ...resource, type: ExternalTaxCalculators.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ExternalTaxCalculators.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisExternalTaxCalculator(resource: any): resource is ExternalTaxCalculator {\n\t\treturn resource.type && (resource.type === ExternalTaxCalculators.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ExternalTaxCalculators.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ExternalTaxCalculators.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ExternalTaxCalculatorRel {\n\t\treturn (typeof id === 'string') ? { id, type: ExternalTaxCalculators.TYPE } : {id: id.id, type: ExternalTaxCalculators.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ExternalTaxCalculators.TYPE\n\t}\n\n}\n\n\nexport default ExternalTaxCalculators\n\nexport { ExternalTaxCalculator, ExternalTaxCalculatorCreate, ExternalTaxCalculatorUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\n\n\ntype FixedAmountPromotionRel = ResourceId & { type: typeof FixedAmountPromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\n\n\ninterface FixedAmountPromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\tfixed_amount_cents?: number\n\tfixed_amount_float?: number\n\tformatted_fixed_amount?: string\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\n}\n\n\ninterface FixedAmountPromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\tfixed_amount_cents: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\ninterface FixedAmountPromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\tfixed_amount_cents?: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\nclass FixedAmountPromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'fixed_amount_promotions' = 'fixed_amount_promotions'\n\t// static readonly PATH = 'fixed_amount_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<FixedAmountPromotion>> {\n\t\treturn this.resources.list({ type: FixedAmountPromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: FixedAmountPromotionCreate, options?: ResourcesConfig): Promise<FixedAmountPromotion> {\n\t\treturn this.resources.create({ ...resource, type: FixedAmountPromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<FixedAmountPromotion> {\n\t\treturn this.resources.retrieve<FixedAmountPromotion>({ type: FixedAmountPromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: FixedAmountPromotionUpdate, options?: ResourcesConfig): Promise<FixedAmountPromotion> {\n\t\treturn this.resources.update({ ...resource, type: FixedAmountPromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: FixedAmountPromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisFixedAmountPromotion(resource: any): resource is FixedAmountPromotion {\n\t\treturn resource.type && (resource.type === FixedAmountPromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(FixedAmountPromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(FixedAmountPromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): FixedAmountPromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: FixedAmountPromotions.TYPE } : {id: id.id, type: FixedAmountPromotions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn FixedAmountPromotions.TYPE\n\t}\n\n}\n\n\nexport default FixedAmountPromotions\n\nexport { FixedAmountPromotion, FixedAmountPromotionCreate, FixedAmountPromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\n\n\ntype FixedPricePromotionRel = ResourceId & { type: typeof FixedPricePromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\n\n\ninterface FixedPricePromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\tfixed_amount_cents?: number\n\tfixed_amount_float?: number\n\tformatted_fixed_amount?: string\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\tsku_list?: SkuList\n\tskus?: Sku[]\n\n}\n\n\ninterface FixedPricePromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\tfixed_amount_cents: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\tsku_list?: SkuListRel\n\n}\n\n\ninterface FixedPricePromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\tfixed_amount_cents?: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\tsku_list?: SkuListRel\n\n}\n\n\nclass FixedPricePromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'fixed_price_promotions' = 'fixed_price_promotions'\n\t// static readonly PATH = 'fixed_price_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<FixedPricePromotion>> {\n\t\treturn this.resources.list({ type: FixedPricePromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: FixedPricePromotionCreate, options?: ResourcesConfig): Promise<FixedPricePromotion> {\n\t\treturn this.resources.create({ ...resource, type: FixedPricePromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<FixedPricePromotion> {\n\t\treturn this.resources.retrieve<FixedPricePromotion>({ type: FixedPricePromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: FixedPricePromotionUpdate, options?: ResourcesConfig): Promise<FixedPricePromotion> {\n\t\treturn this.resources.update({ ...resource, type: FixedPricePromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: FixedPricePromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisFixedPricePromotion(resource: any): resource is FixedPricePromotion {\n\t\treturn resource.type && (resource.type === FixedPricePromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(FixedPricePromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(FixedPricePromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): FixedPricePromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: FixedPricePromotions.TYPE } : {id: id.id, type: FixedPricePromotions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn FixedPricePromotions.TYPE\n\t}\n\n}\n\n\nexport default FixedPricePromotions\n\nexport { FixedPricePromotion, FixedPricePromotionCreate, FixedPricePromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\n\n\ntype FreeGiftPromotionRel = ResourceId & { type: typeof FreeGiftPromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\n\n\ninterface FreeGiftPromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\tmax_quantity?: number\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\tsku_list?: SkuList\n\tskus?: Sku[]\n\n}\n\n\ninterface FreeGiftPromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\tmax_quantity?: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\tsku_list?: SkuListRel\n\n}\n\n\ninterface FreeGiftPromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\tmax_quantity?: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\tsku_list?: SkuListRel\n\n}\n\n\nclass FreeGiftPromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'free_gift_promotions' = 'free_gift_promotions'\n\t// static readonly PATH = 'free_gift_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<FreeGiftPromotion>> {\n\t\treturn this.resources.list({ type: FreeGiftPromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: FreeGiftPromotionCreate, options?: ResourcesConfig): Promise<FreeGiftPromotion> {\n\t\treturn this.resources.create({ ...resource, type: FreeGiftPromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<FreeGiftPromotion> {\n\t\treturn this.resources.retrieve<FreeGiftPromotion>({ type: FreeGiftPromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: FreeGiftPromotionUpdate, options?: ResourcesConfig): Promise<FreeGiftPromotion> {\n\t\treturn this.resources.update({ ...resource, type: FreeGiftPromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: FreeGiftPromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisFreeGiftPromotion(resource: any): resource is FreeGiftPromotion {\n\t\treturn resource.type && (resource.type === FreeGiftPromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(FreeGiftPromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(FreeGiftPromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): FreeGiftPromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: FreeGiftPromotions.TYPE } : {id: id.id, type: FreeGiftPromotions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn FreeGiftPromotions.TYPE\n\t}\n\n}\n\n\nexport default FreeGiftPromotions\n\nexport { FreeGiftPromotion, FreeGiftPromotionCreate, FreeGiftPromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\n\n\ntype FreeShippingPromotionRel = ResourceId & { type: typeof FreeShippingPromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\n\n\ninterface FreeShippingPromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\n}\n\n\ninterface FreeShippingPromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\ninterface FreeShippingPromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\n}\n\n\nclass FreeShippingPromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'free_shipping_promotions' = 'free_shipping_promotions'\n\t// static readonly PATH = 'free_shipping_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<FreeShippingPromotion>> {\n\t\treturn this.resources.list({ type: FreeShippingPromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: FreeShippingPromotionCreate, options?: ResourcesConfig): Promise<FreeShippingPromotion> {\n\t\treturn this.resources.create({ ...resource, type: FreeShippingPromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<FreeShippingPromotion> {\n\t\treturn this.resources.retrieve<FreeShippingPromotion>({ type: FreeShippingPromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: FreeShippingPromotionUpdate, options?: ResourcesConfig): Promise<FreeShippingPromotion> {\n\t\treturn this.resources.update({ ...resource, type: FreeShippingPromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: FreeShippingPromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisFreeShippingPromotion(resource: any): resource is FreeShippingPromotion {\n\t\treturn resource.type && (resource.type === FreeShippingPromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(FreeShippingPromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(FreeShippingPromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): FreeShippingPromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: FreeShippingPromotions.TYPE } : {id: id.id, type: FreeShippingPromotions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn FreeShippingPromotions.TYPE\n\t}\n\n}\n\n\nexport default FreeShippingPromotions\n\nexport { FreeShippingPromotion, FreeShippingPromotionCreate, FreeShippingPromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { Address } from './addresses'\nimport { Attachment } from './attachments'\n\n\ntype GeocoderRel = ResourceId & { type: typeof Geocoders.TYPE }\n\n\ninterface Geocoder extends Resource {\n\t\n\tname?: string\n\n\taddresses?: Address[]\n\tattachments?: Attachment[]\n\n}\n\n\nclass Geocoders extends ApiResource {\n\n\tstatic readonly TYPE: 'geocoders' = 'geocoders'\n\t// static readonly PATH = 'geocoders'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Geocoder>> {\n\t\treturn this.resources.list({ type: Geocoders.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisGeocoder(resource: any): resource is Geocoder {\n\t\treturn resource.type && (resource.type === Geocoders.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Geocoders.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Geocoders.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): GeocoderRel {\n\t\treturn (typeof id === 'string') ? { id, type: Geocoders.TYPE } : {id: id.id, type: Geocoders.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Geocoders.TYPE\n\t}\n\n}\n\n\nexport default Geocoders\n\nexport { Geocoder }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Customer } from './customers'\nimport { Attachment } from './attachments'\n\n\ntype GiftCardRecipientRel = ResourceId & { type: typeof GiftCardRecipients.TYPE }\ntype CustomerRel = ResourceId & { type: 'customers' }\n\n\ninterface GiftCardRecipient extends Resource {\n\t\n\temail?: string\n\tfirst_name?: string\n\tlast_name?: string\n\n\tcustomer?: Customer\n\tattachments?: Attachment[]\n\n}\n\n\ninterface GiftCardRecipientCreate extends ResourceCreate {\n\t\n\temail: string\n\tfirst_name?: string\n\tlast_name?: string\n\n\tcustomer?: CustomerRel\n\n}\n\n\ninterface GiftCardRecipientUpdate extends ResourceUpdate {\n\t\n\temail?: string\n\tfirst_name?: string\n\tlast_name?: string\n\n\tcustomer?: CustomerRel\n\n}\n\n\nclass GiftCardRecipients extends ApiResource {\n\n\tstatic readonly TYPE: 'gift_card_recipients' = 'gift_card_recipients'\n\t// static readonly PATH = 'gift_card_recipients'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<GiftCardRecipient>> {\n\t\treturn this.resources.list({ type: GiftCardRecipients.TYPE }, params, options)\n\t}\n\n\tasync create(resource: GiftCardRecipientCreate, options?: ResourcesConfig): Promise<GiftCardRecipient> {\n\t\treturn this.resources.create({ ...resource, type: GiftCardRecipients.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<GiftCardRecipient> {\n\t\treturn this.resources.retrieve<GiftCardRecipient>({ type: GiftCardRecipients.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: GiftCardRecipientUpdate, options?: ResourcesConfig): Promise<GiftCardRecipient> {\n\t\treturn this.resources.update({ ...resource, type: GiftCardRecipients.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: GiftCardRecipients.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisGiftCardRecipient(resource: any): resource is GiftCardRecipient {\n\t\treturn resource.type && (resource.type === GiftCardRecipients.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(GiftCardRecipients.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(GiftCardRecipients.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): GiftCardRecipientRel {\n\t\treturn (typeof id === 'string') ? { id, type: GiftCardRecipients.TYPE } : {id: id.id, type: GiftCardRecipients.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn GiftCardRecipients.TYPE\n\t}\n\n}\n\n\nexport default GiftCardRecipients\n\nexport { GiftCardRecipient, GiftCardRecipientCreate, GiftCardRecipientUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { GiftCardRecipient } from './gift_card_recipients'\nimport { Attachment } from './attachments'\n\n\ntype GiftCardRel = ResourceId & { type: typeof GiftCards.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype GiftCardRecipientRel = ResourceId & { type: 'gift_card_recipients' }\n\n\ninterface GiftCard extends Resource {\n\t\n\tstatus?: string\n\tcode?: string\n\tcurrency_code?: string\n\tinitial_balance_cents?: number\n\tinitial_balance_float?: number\n\tformatted_initial_balance?: string\n\tbalance_cents?: number\n\tbalance_float?: number\n\tformatted_balance?: string\n\tbalance_max_cents?: string\n\tbalance_max_float?: number\n\tformatted_balance_max?: string\n\tbalance_log?: object[]\n\tsingle_use?: boolean\n\trechargeable?: boolean\n\timage_url?: string\n\texpires_at?: string\n\trecipient_email?: string\n\t_balance_change_cents?: number\n\n\tmarket?: Market\n\tgift_card_recipient?: GiftCardRecipient\n\tattachments?: Attachment[]\n\n}\n\n\ninterface GiftCardCreate extends ResourceCreate {\n\t\n\tcode?: string\n\tcurrency_code: string\n\tbalance_cents: number\n\tbalance_max_cents?: string\n\tsingle_use?: boolean\n\trechargeable?: boolean\n\timage_url?: string\n\texpires_at?: string\n\trecipient_email?: string\n\n\tmarket?: MarketRel\n\tgift_card_recipient?: GiftCardRecipientRel\n\n}\n\n\ninterface GiftCardUpdate extends ResourceUpdate {\n\t\n\tcurrency_code?: string\n\tbalance_cents?: number\n\tbalance_max_cents?: string\n\tsingle_use?: boolean\n\trechargeable?: boolean\n\timage_url?: string\n\texpires_at?: string\n\trecipient_email?: string\n\t_purchase?: boolean\n\t_activate?: boolean\n\t_deactivate?: boolean\n\t_balance_change_cents?: number\n\n\tmarket?: MarketRel\n\tgift_card_recipient?: GiftCardRecipientRel\n\n}\n\n\nclass GiftCards extends ApiResource {\n\n\tstatic readonly TYPE: 'gift_cards' = 'gift_cards'\n\t// static readonly PATH = 'gift_cards'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<GiftCard>> {\n\t\treturn this.resources.list({ type: GiftCards.TYPE }, params, options)\n\t}\n\n\tasync create(resource: GiftCardCreate, options?: ResourcesConfig): Promise<GiftCard> {\n\t\treturn this.resources.create({ ...resource, type: GiftCards.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<GiftCard> {\n\t\treturn this.resources.retrieve<GiftCard>({ type: GiftCards.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: GiftCardUpdate, options?: ResourcesConfig): Promise<GiftCard> {\n\t\treturn this.resources.update({ ...resource, type: GiftCards.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: GiftCards.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisGiftCard(resource: any): resource is GiftCard {\n\t\treturn resource.type && (resource.type === GiftCards.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(GiftCards.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(GiftCards.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): GiftCardRel {\n\t\treturn (typeof id === 'string') ? { id, type: GiftCards.TYPE } : {id: id.id, type: GiftCards.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn GiftCards.TYPE\n\t}\n\n}\n\n\nexport default GiftCards\n\nexport { GiftCard, GiftCardCreate, GiftCardUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Address } from './addresses'\nimport { Attachment } from './attachments'\n\n\ntype GoogleGeocoderRel = ResourceId & { type: typeof GoogleGeocoders.TYPE }\n\n\ninterface GoogleGeocoder extends Resource {\n\t\n\tname?: string\n\n\taddresses?: Address[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface GoogleGeocoderCreate extends ResourceCreate {\n\t\n\tname: string\n\tapi_key: string\n\t\n}\n\n\ninterface GoogleGeocoderUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tapi_key?: string\n\t\n}\n\n\nclass GoogleGeocoders extends ApiResource {\n\n\tstatic readonly TYPE: 'google_geocoders' = 'google_geocoders'\n\t// static readonly PATH = 'google_geocoders'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<GoogleGeocoder>> {\n\t\treturn this.resources.list({ type: GoogleGeocoders.TYPE }, params, options)\n\t}\n\n\tasync create(resource: GoogleGeocoderCreate, options?: ResourcesConfig): Promise<GoogleGeocoder> {\n\t\treturn this.resources.create({ ...resource, type: GoogleGeocoders.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<GoogleGeocoder> {\n\t\treturn this.resources.retrieve<GoogleGeocoder>({ type: GoogleGeocoders.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: GoogleGeocoderUpdate, options?: ResourcesConfig): Promise<GoogleGeocoder> {\n\t\treturn this.resources.update({ ...resource, type: GoogleGeocoders.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: GoogleGeocoders.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisGoogleGeocoder(resource: any): resource is GoogleGeocoder {\n\t\treturn resource.type && (resource.type === GoogleGeocoders.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(GoogleGeocoders.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(GoogleGeocoders.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): GoogleGeocoderRel {\n\t\treturn (typeof id === 'string') ? { id, type: GoogleGeocoders.TYPE } : {id: id.id, type: GoogleGeocoders.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn GoogleGeocoders.TYPE\n\t}\n\n}\n\n\nexport default GoogleGeocoders\n\nexport { GoogleGeocoder, GoogleGeocoderCreate, GoogleGeocoderUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\n\n\ntype ImportRel = ResourceId & { type: typeof Imports.TYPE }\n\n\ninterface Import extends Resource {\n\t\n\tresource_type?: string\n\tparent_resource_id?: string\n\tstatus?: string\n\tstarted_at?: string\n\tcompleted_at?: string\n\tinterrupted_at?: string\n\tinputs?: object[]\n\tinputs_size?: number\n\terrors_count?: number\n\twarnings_count?: number\n\tdestroyed_count?: number\n\tprocessed_count?: number\n\terrors_log?: object\n\twarnings_log?: object\n\tcleanup_records?: boolean\n\t\n}\n\n\ninterface ImportCreate extends ResourceCreate {\n\t\n\tresource_type: string\n\tparent_resource_id?: string\n\tinputs: object[]\n\tcleanup_records?: boolean\n\t\n}\n\n\nclass Imports extends ApiResource {\n\n\tstatic readonly TYPE: 'imports' = 'imports'\n\t// static readonly PATH = 'imports'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Import>> {\n\t\treturn this.resources.list({ type: Imports.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ImportCreate, options?: ResourcesConfig): Promise<Import> {\n\t\treturn this.resources.create({ ...resource, type: Imports.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Import> {\n\t\treturn this.resources.retrieve<Import>({ type: Imports.TYPE, id }, params, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Imports.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisImport(resource: any): resource is Import {\n\t\treturn resource.type && (resource.type === Imports.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Imports.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Imports.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ImportRel {\n\t\treturn (typeof id === 'string') ? { id, type: Imports.TYPE } : {id: id.id, type: Imports.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Imports.TYPE\n\t}\n\n}\n\n\nexport default Imports\n\nexport { Import, ImportCreate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Customer } from './customers'\nimport { Sku } from './skus'\n\n\ntype InStockSubscriptionRel = ResourceId & { type: typeof InStockSubscriptions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface InStockSubscription extends Resource {\n\t\n\tstatus?: string\n\tcustomer_email?: string\n\tsku_code?: string\n\tstock_threshold?: number\n\n\tmarket?: Market\n\tcustomer?: Customer\n\tsku?: Sku\n\n}\n\n\ninterface InStockSubscriptionCreate extends ResourceCreate {\n\t\n\tcustomer_email?: string\n\tsku_code?: string\n\tstock_threshold?: number\n\n\tmarket?: MarketRel\n\tcustomer?: CustomerRel\n\tsku?: SkuRel\n\n}\n\n\ninterface InStockSubscriptionUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\tstock_threshold?: number\n\t_activate?: boolean\n\t_deactivate?: boolean\n\n\tmarket?: MarketRel\n\tcustomer?: CustomerRel\n\tsku?: SkuRel\n\n}\n\n\nclass InStockSubscriptions extends ApiResource {\n\n\tstatic readonly TYPE: 'in_stock_subscriptions' = 'in_stock_subscriptions'\n\t// static readonly PATH = 'in_stock_subscriptions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<InStockSubscription>> {\n\t\treturn this.resources.list({ type: InStockSubscriptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: InStockSubscriptionCreate, options?: ResourcesConfig): Promise<InStockSubscription> {\n\t\treturn this.resources.create({ ...resource, type: InStockSubscriptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<InStockSubscription> {\n\t\treturn this.resources.retrieve<InStockSubscription>({ type: InStockSubscriptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: InStockSubscriptionUpdate, options?: ResourcesConfig): Promise<InStockSubscription> {\n\t\treturn this.resources.update({ ...resource, type: InStockSubscriptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: InStockSubscriptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisInStockSubscription(resource: any): resource is InStockSubscription {\n\t\treturn resource.type && (resource.type === InStockSubscriptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(InStockSubscriptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(InStockSubscriptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): InStockSubscriptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: InStockSubscriptions.TYPE } : {id: id.id, type: InStockSubscriptions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn InStockSubscriptions.TYPE\n\t}\n\n}\n\n\nexport default InStockSubscriptions\n\nexport { InStockSubscription, InStockSubscriptionCreate, InStockSubscriptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { InventoryStockLocation } from './inventory_stock_locations'\nimport { InventoryReturnLocation } from './inventory_return_locations'\nimport { Attachment } from './attachments'\n\n\ntype InventoryModelRel = ResourceId & { type: typeof InventoryModels.TYPE }\n\n\ninterface InventoryModel extends Resource {\n\t\n\tname?: string\n\tstrategy?: string\n\tstock_locations_cutoff?: number\n\n\tinventory_stock_locations?: InventoryStockLocation[]\n\tinventory_return_locations?: InventoryReturnLocation[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface InventoryModelCreate extends ResourceCreate {\n\t\n\tname: string\n\tstrategy: string\n\tstock_locations_cutoff?: number\n\t\n}\n\n\ninterface InventoryModelUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstrategy?: string\n\tstock_locations_cutoff?: number\n\t\n}\n\n\nclass InventoryModels extends ApiResource {\n\n\tstatic readonly TYPE: 'inventory_models' = 'inventory_models'\n\t// static readonly PATH = 'inventory_models'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<InventoryModel>> {\n\t\treturn this.resources.list({ type: InventoryModels.TYPE }, params, options)\n\t}\n\n\tasync create(resource: InventoryModelCreate, options?: ResourcesConfig): Promise<InventoryModel> {\n\t\treturn this.resources.create({ ...resource, type: InventoryModels.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<InventoryModel> {\n\t\treturn this.resources.retrieve<InventoryModel>({ type: InventoryModels.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: InventoryModelUpdate, options?: ResourcesConfig): Promise<InventoryModel> {\n\t\treturn this.resources.update({ ...resource, type: InventoryModels.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: InventoryModels.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisInventoryModel(resource: any): resource is InventoryModel {\n\t\treturn resource.type && (resource.type === InventoryModels.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(InventoryModels.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(InventoryModels.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): InventoryModelRel {\n\t\treturn (typeof id === 'string') ? { id, type: InventoryModels.TYPE } : {id: id.id, type: InventoryModels.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn InventoryModels.TYPE\n\t}\n\n}\n\n\nexport default InventoryModels\n\nexport { InventoryModel, InventoryModelCreate, InventoryModelUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { InventoryModel } from './inventory_models'\n\n\ntype InventoryReturnLocationRel = ResourceId & { type: typeof InventoryReturnLocations.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype InventoryModelRel = ResourceId & { type: 'inventory_models' }\n\n\ninterface InventoryReturnLocation extends Resource {\n\t\n\tpriority?: number\n\n\tstock_location?: StockLocation\n\tinventory_model?: InventoryModel\n\n}\n\n\ninterface InventoryReturnLocationCreate extends ResourceCreate {\n\t\n\tpriority: number\n\n\tstock_location?: StockLocationRel\n\tinventory_model?: InventoryModelRel\n\n}\n\n\ninterface InventoryReturnLocationUpdate extends ResourceUpdate {\n\t\n\tpriority?: number\n\n\tstock_location?: StockLocationRel\n\tinventory_model?: InventoryModelRel\n\n}\n\n\nclass InventoryReturnLocations extends ApiResource {\n\n\tstatic readonly TYPE: 'inventory_return_locations' = 'inventory_return_locations'\n\t// static readonly PATH = 'inventory_return_locations'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<InventoryReturnLocation>> {\n\t\treturn this.resources.list({ type: InventoryReturnLocations.TYPE }, params, options)\n\t}\n\n\tasync create(resource: InventoryReturnLocationCreate, options?: ResourcesConfig): Promise<InventoryReturnLocation> {\n\t\treturn this.resources.create({ ...resource, type: InventoryReturnLocations.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<InventoryReturnLocation> {\n\t\treturn this.resources.retrieve<InventoryReturnLocation>({ type: InventoryReturnLocations.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: InventoryReturnLocationUpdate, options?: ResourcesConfig): Promise<InventoryReturnLocation> {\n\t\treturn this.resources.update({ ...resource, type: InventoryReturnLocations.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: InventoryReturnLocations.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisInventoryReturnLocation(resource: any): resource is InventoryReturnLocation {\n\t\treturn resource.type && (resource.type === InventoryReturnLocations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(InventoryReturnLocations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(InventoryReturnLocations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): InventoryReturnLocationRel {\n\t\treturn (typeof id === 'string') ? { id, type: InventoryReturnLocations.TYPE } : {id: id.id, type: InventoryReturnLocations.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn InventoryReturnLocations.TYPE\n\t}\n\n}\n\n\nexport default InventoryReturnLocations\n\nexport { InventoryReturnLocation, InventoryReturnLocationCreate, InventoryReturnLocationUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { InventoryModel } from './inventory_models'\n\n\ntype InventoryStockLocationRel = ResourceId & { type: typeof InventoryStockLocations.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype InventoryModelRel = ResourceId & { type: 'inventory_models' }\n\n\ninterface InventoryStockLocation extends Resource {\n\t\n\tpriority?: number\n\ton_hold?: boolean\n\n\tstock_location?: StockLocation\n\tinventory_model?: InventoryModel\n\n}\n\n\ninterface InventoryStockLocationCreate extends ResourceCreate {\n\t\n\tpriority: number\n\ton_hold?: boolean\n\n\tstock_location?: StockLocationRel\n\tinventory_model?: InventoryModelRel\n\n}\n\n\ninterface InventoryStockLocationUpdate extends ResourceUpdate {\n\t\n\tpriority?: number\n\ton_hold?: boolean\n\n\tstock_location?: StockLocationRel\n\tinventory_model?: InventoryModelRel\n\n}\n\n\nclass InventoryStockLocations extends ApiResource {\n\n\tstatic readonly TYPE: 'inventory_stock_locations' = 'inventory_stock_locations'\n\t// static readonly PATH = 'inventory_stock_locations'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<InventoryStockLocation>> {\n\t\treturn this.resources.list({ type: InventoryStockLocations.TYPE }, params, options)\n\t}\n\n\tasync create(resource: InventoryStockLocationCreate, options?: ResourcesConfig): Promise<InventoryStockLocation> {\n\t\treturn this.resources.create({ ...resource, type: InventoryStockLocations.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<InventoryStockLocation> {\n\t\treturn this.resources.retrieve<InventoryStockLocation>({ type: InventoryStockLocations.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: InventoryStockLocationUpdate, options?: ResourcesConfig): Promise<InventoryStockLocation> {\n\t\treturn this.resources.update({ ...resource, type: InventoryStockLocations.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: InventoryStockLocations.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisInventoryStockLocation(resource: any): resource is InventoryStockLocation {\n\t\treturn resource.type && (resource.type === InventoryStockLocations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(InventoryStockLocations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(InventoryStockLocations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): InventoryStockLocationRel {\n\t\treturn (typeof id === 'string') ? { id, type: InventoryStockLocations.TYPE } : {id: id.id, type: InventoryStockLocations.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn InventoryStockLocations.TYPE\n\t}\n\n}\n\n\nexport default InventoryStockLocations\n\nexport { InventoryStockLocation, InventoryStockLocationCreate, InventoryStockLocationUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { LineItem } from './line_items'\nimport { SkuOption } from './sku_options'\n\n\ntype LineItemOptionRel = ResourceId & { type: typeof LineItemOptions.TYPE }\ntype LineItemRel = ResourceId & { type: 'line_items' }\ntype SkuOptionRel = ResourceId & { type: 'sku_options' }\n\n\ninterface LineItemOption extends Resource {\n\t\n\tname?: string\n\tquantity?: number\n\tcurrency_code?: string\n\tunit_amount_cents?: number\n\tunit_amount_float?: number\n\tformatted_unit_amount?: string\n\ttotal_amount_cents?: number\n\ttotal_amount_float?: number\n\tformatted_total_amount?: string\n\tdelay_hours?: number\n\tdelay_days?: number\n\toptions?: object\n\n\tline_item?: LineItem\n\tsku_option?: SkuOption\n\n}\n\n\ninterface LineItemOptionCreate extends ResourceCreate {\n\t\n\tname?: string\n\tquantity: number\n\toptions: object\n\n\tline_item?: LineItemRel\n\tsku_option?: SkuOptionRel\n\n}\n\n\ninterface LineItemOptionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tquantity?: number\n\toptions?: object\n\n\tsku_option?: SkuOptionRel\n\n}\n\n\nclass LineItemOptions extends ApiResource {\n\n\tstatic readonly TYPE: 'line_item_options' = 'line_item_options'\n\t// static readonly PATH = 'line_item_options'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<LineItemOption>> {\n\t\treturn this.resources.list({ type: LineItemOptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: LineItemOptionCreate, options?: ResourcesConfig): Promise<LineItemOption> {\n\t\treturn this.resources.create({ ...resource, type: LineItemOptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<LineItemOption> {\n\t\treturn this.resources.retrieve<LineItemOption>({ type: LineItemOptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: LineItemOptionUpdate, options?: ResourcesConfig): Promise<LineItemOption> {\n\t\treturn this.resources.update({ ...resource, type: LineItemOptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: LineItemOptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisLineItemOption(resource: any): resource is LineItemOption {\n\t\treturn resource.type && (resource.type === LineItemOptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(LineItemOptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(LineItemOptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): LineItemOptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: LineItemOptions.TYPE } : {id: id.id, type: LineItemOptions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn LineItemOptions.TYPE\n\t}\n\n}\n\n\nexport default LineItemOptions\n\nexport { LineItemOption, LineItemOptionCreate, LineItemOptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Adjustment } from './adjustments'\nimport { Bundle } from './bundles'\nimport { ExternalPromotion } from './external_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { GiftCard } from './gift_cards'\nimport { PaymentMethod } from './payment_methods'\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { Shipment } from './shipments'\nimport { Sku } from './skus'\nimport { LineItemOption } from './line_item_options'\nimport { StockLineItem } from './stock_line_items'\nimport { StockTransfer } from './stock_transfers'\n\n\ntype LineItemRel = ResourceId & { type: typeof LineItems.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\ntype AdjustmentRel = ResourceId & { type: 'adjustments' }\ntype BundleRel = ResourceId & { type: 'bundles' }\ntype ExternalPromotionRel = ResourceId & { type: 'external_promotions' }\ntype FixedAmountPromotionRel = ResourceId & { type: 'fixed_amount_promotions' }\ntype FreeShippingPromotionRel = ResourceId & { type: 'free_shipping_promotions' }\ntype GiftCardRel = ResourceId & { type: 'gift_cards' }\ntype PaymentMethodRel = ResourceId & { type: 'payment_methods' }\ntype PercentageDiscountPromotionRel = ResourceId & { type: 'percentage_discount_promotions' }\ntype ShipmentRel = ResourceId & { type: 'shipments' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface LineItem extends Resource {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tquantity?: number\n\tcurrency_code?: string\n\tunit_amount_cents?: number\n\tunit_amount_float?: number\n\tformatted_unit_amount?: string\n\toptions_amount_cents?: number\n\toptions_amount_float?: number\n\tformatted_options_amount?: string\n\tdiscount_cents?: number\n\tdiscount_float?: number\n\tformatted_discount?: string\n\ttotal_amount_cents?: number\n\ttotal_amount_float?: number\n\tformatted_total_amount?: string\n\ttax_amount_cents?: number\n\ttax_amount_float?: number\n\tformatted_tax_amount?: string\n\tname?: string\n\timage_url?: string\n\tdiscount_breakdown?: object\n\ttax_rate?: number\n\ttax_breakdown?: object\n\titem_type?: string\n\n\torder?: Order\n\titem?: Adjustment | Bundle | ExternalPromotion | FixedAmountPromotion | FreeShippingPromotion | GiftCard | PaymentMethod | PercentageDiscountPromotion | Shipment | Sku\n\tline_item_options?: LineItemOption[]\n\t/**\n\t* @deprecated This field should not be used as it may be removed in the future without notice\n\t*/\n\tshipment_line_items?: object[]\n\tstock_line_items?: StockLineItem[]\n\tstock_transfers?: StockTransfer[]\n\n}\n\n\ninterface LineItemCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tquantity: number\n\t_external_price?: boolean\n\t_update_quantity?: boolean\n\tunit_amount_cents?: number\n\tname?: string\n\timage_url?: string\n\titem_type?: string\n\n\torder?: OrderRel\n\titem?: AdjustmentRel | BundleRel | ExternalPromotionRel | FixedAmountPromotionRel | FreeShippingPromotionRel | GiftCardRel | PaymentMethodRel | PercentageDiscountPromotionRel | ShipmentRel | SkuRel\n\n}\n\n\ninterface LineItemUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tquantity?: number\n\tname?: string\n\timage_url?: string\n\t\n}\n\n\nclass LineItems extends ApiResource {\n\n\tstatic readonly TYPE: 'line_items' = 'line_items'\n\t// static readonly PATH = 'line_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<LineItem>> {\n\t\treturn this.resources.list({ type: LineItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: LineItemCreate, options?: ResourcesConfig): Promise<LineItem> {\n\t\treturn this.resources.create({ ...resource, type: LineItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<LineItem> {\n\t\treturn this.resources.retrieve<LineItem>({ type: LineItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: LineItemUpdate, options?: ResourcesConfig): Promise<LineItem> {\n\t\treturn this.resources.update({ ...resource, type: LineItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: LineItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisLineItem(resource: any): resource is LineItem {\n\t\treturn resource.type && (resource.type === LineItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(LineItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(LineItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): LineItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: LineItems.TYPE } : {id: id.id, type: LineItems.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn LineItems.TYPE\n\t}\n\n}\n\n\nexport default LineItems\n\nexport { LineItem, LineItemCreate, LineItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\n\n\ntype ManualGatewayRel = ResourceId & { type: typeof ManualGateways.TYPE }\n\n\ninterface ManualGateway extends Resource {\n\t\n\tname?: string\n\trequire_capture?: boolean\n\n\tpayment_methods?: PaymentMethod[]\n\n}\n\n\ninterface ManualGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\trequire_capture?: boolean\n\t\n}\n\n\ninterface ManualGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\trequire_capture?: boolean\n\t\n}\n\n\nclass ManualGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'manual_gateways' = 'manual_gateways'\n\t// static readonly PATH = 'manual_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ManualGateway>> {\n\t\treturn this.resources.list({ type: ManualGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ManualGatewayCreate, options?: ResourcesConfig): Promise<ManualGateway> {\n\t\treturn this.resources.create({ ...resource, type: ManualGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ManualGateway> {\n\t\treturn this.resources.retrieve<ManualGateway>({ type: ManualGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ManualGatewayUpdate, options?: ResourcesConfig): Promise<ManualGateway> {\n\t\treturn this.resources.update({ ...resource, type: ManualGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ManualGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisManualGateway(resource: any): resource is ManualGateway {\n\t\treturn resource.type && (resource.type === ManualGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ManualGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ManualGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ManualGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: ManualGateways.TYPE } : {id: id.id, type: ManualGateways.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ManualGateways.TYPE\n\t}\n\n}\n\n\nexport default ManualGateways\n\nexport { ManualGateway, ManualGatewayCreate, ManualGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\nimport { TaxRule } from './tax_rules'\n\n\ntype ManualTaxCalculatorRel = ResourceId & { type: typeof ManualTaxCalculators.TYPE }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\ntype TaxRuleRel = ResourceId & { type: 'tax_rules' }\n\n\ninterface ManualTaxCalculator extends Resource {\n\t\n\tname?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\ttax_rules?: TaxRule[]\n\n}\n\n\ninterface ManualTaxCalculatorCreate extends ResourceCreate {\n\t\n\tname: string\n\n\ttax_categories?: TaxCategoryRel[]\n\ttax_rules?: TaxRuleRel[]\n\n}\n\n\ninterface ManualTaxCalculatorUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\ttax_rules?: TaxRuleRel[]\n\n}\n\n\nclass ManualTaxCalculators extends ApiResource {\n\n\tstatic readonly TYPE: 'manual_tax_calculators' = 'manual_tax_calculators'\n\t// static readonly PATH = 'manual_tax_calculators'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ManualTaxCalculator>> {\n\t\treturn this.resources.list({ type: ManualTaxCalculators.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ManualTaxCalculatorCreate, options?: ResourcesConfig): Promise<ManualTaxCalculator> {\n\t\treturn this.resources.create({ ...resource, type: ManualTaxCalculators.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ManualTaxCalculator> {\n\t\treturn this.resources.retrieve<ManualTaxCalculator>({ type: ManualTaxCalculators.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ManualTaxCalculatorUpdate, options?: ResourcesConfig): Promise<ManualTaxCalculator> {\n\t\treturn this.resources.update({ ...resource, type: ManualTaxCalculators.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ManualTaxCalculators.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisManualTaxCalculator(resource: any): resource is ManualTaxCalculator {\n\t\treturn resource.type && (resource.type === ManualTaxCalculators.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ManualTaxCalculators.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ManualTaxCalculators.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ManualTaxCalculatorRel {\n\t\treturn (typeof id === 'string') ? { id, type: ManualTaxCalculators.TYPE } : {id: id.id, type: ManualTaxCalculators.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ManualTaxCalculators.TYPE\n\t}\n\n}\n\n\nexport default ManualTaxCalculators\n\nexport { ManualTaxCalculator, ManualTaxCalculatorCreate, ManualTaxCalculatorUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Merchant } from './merchants'\nimport { PriceList } from './price_lists'\nimport { InventoryModel } from './inventory_models'\nimport { TaxCalculator } from './tax_calculators'\nimport { CustomerGroup } from './customer_groups'\nimport { Attachment } from './attachments'\n\n\ntype MarketRel = ResourceId & { type: typeof Markets.TYPE }\ntype MerchantRel = ResourceId & { type: 'merchants' }\ntype PriceListRel = ResourceId & { type: 'price_lists' }\ntype InventoryModelRel = ResourceId & { type: 'inventory_models' }\ntype TaxCalculatorRel = ResourceId & { type: 'tax_calculators' }\ntype CustomerGroupRel = ResourceId & { type: 'customer_groups' }\n\n\ninterface Market extends Resource {\n\t\n\tnumber?: number\n\tname?: string\n\tfacebook_pixel_id?: string\n\tcheckout_url?: string\n\texternal_prices_url?: string\n\tprivate?: boolean\n\n\tmerchant?: Merchant\n\tprice_list?: PriceList\n\tinventory_model?: InventoryModel\n\ttax_calculator?: TaxCalculator\n\tcustomer_group?: CustomerGroup\n\tattachments?: Attachment[]\n\n}\n\n\ninterface MarketCreate extends ResourceCreate {\n\t\n\tname: string\n\tfacebook_pixel_id?: string\n\tcheckout_url?: string\n\texternal_prices_url?: string\n\n\tmerchant?: MerchantRel\n\tprice_list?: PriceListRel\n\tinventory_model?: InventoryModelRel\n\ttax_calculator?: TaxCalculatorRel\n\tcustomer_group?: CustomerGroupRel\n\n}\n\n\ninterface MarketUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tfacebook_pixel_id?: string\n\tcheckout_url?: string\n\texternal_prices_url?: string\n\n\tmerchant?: MerchantRel\n\tprice_list?: PriceListRel\n\tinventory_model?: InventoryModelRel\n\ttax_calculator?: TaxCalculatorRel\n\tcustomer_group?: CustomerGroupRel\n\n}\n\n\nclass Markets extends ApiResource {\n\n\tstatic readonly TYPE: 'markets' = 'markets'\n\t// static readonly PATH = 'markets'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Market>> {\n\t\treturn this.resources.list({ type: Markets.TYPE }, params, options)\n\t}\n\n\tasync create(resource: MarketCreate, options?: ResourcesConfig): Promise<Market> {\n\t\treturn this.resources.create({ ...resource, type: Markets.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Market> {\n\t\treturn this.resources.retrieve<Market>({ type: Markets.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: MarketUpdate, options?: ResourcesConfig): Promise<Market> {\n\t\treturn this.resources.update({ ...resource, type: Markets.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Markets.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisMarket(resource: any): resource is Market {\n\t\treturn resource.type && (resource.type === Markets.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Markets.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Markets.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): MarketRel {\n\t\treturn (typeof id === 'string') ? { id, type: Markets.TYPE } : {id: id.id, type: Markets.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Markets.TYPE\n\t}\n\n}\n\n\nexport default Markets\n\nexport { Market, MarketCreate, MarketUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Address } from './addresses'\nimport { Attachment } from './attachments'\n\n\ntype MerchantRel = ResourceId & { type: typeof Merchants.TYPE }\ntype AddressRel = ResourceId & { type: 'addresses' }\n\n\ninterface Merchant extends Resource {\n\t\n\tname?: string\n\n\taddress?: Address\n\tattachments?: Attachment[]\n\n}\n\n\ninterface MerchantCreate extends ResourceCreate {\n\t\n\tname: string\n\n\taddress?: AddressRel\n\n}\n\n\ninterface MerchantUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\n\taddress?: AddressRel\n\n}\n\n\nclass Merchants extends ApiResource {\n\n\tstatic readonly TYPE: 'merchants' = 'merchants'\n\t// static readonly PATH = 'merchants'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Merchant>> {\n\t\treturn this.resources.list({ type: Merchants.TYPE }, params, options)\n\t}\n\n\tasync create(resource: MerchantCreate, options?: ResourcesConfig): Promise<Merchant> {\n\t\treturn this.resources.create({ ...resource, type: Merchants.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Merchant> {\n\t\treturn this.resources.retrieve<Merchant>({ type: Merchants.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: MerchantUpdate, options?: ResourcesConfig): Promise<Merchant> {\n\t\treturn this.resources.update({ ...resource, type: Merchants.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Merchants.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisMerchant(resource: any): resource is Merchant {\n\t\treturn resource.type && (resource.type === Merchants.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Merchants.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Merchants.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): MerchantRel {\n\t\treturn (typeof id === 'string') ? { id, type: Merchants.TYPE } : {id: id.id, type: Merchants.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Merchants.TYPE\n\t}\n\n}\n\n\nexport default Merchants\n\nexport { Merchant, MerchantCreate, MerchantUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { FreeGiftPromotion } from './free_gift_promotions'\nimport { FixedPricePromotion } from './fixed_price_promotions'\nimport { ExternalPromotion } from './external_promotions'\n\n\ntype OrderAmountPromotionRuleRel = ResourceId & { type: typeof OrderAmountPromotionRules.TYPE }\ntype PercentageDiscountPromotionRel = ResourceId & { type: 'percentage_discount_promotions' }\ntype FreeShippingPromotionRel = ResourceId & { type: 'free_shipping_promotions' }\ntype FixedAmountPromotionRel = ResourceId & { type: 'fixed_amount_promotions' }\ntype FreeGiftPromotionRel = ResourceId & { type: 'free_gift_promotions' }\ntype FixedPricePromotionRel = ResourceId & { type: 'fixed_price_promotions' }\ntype ExternalPromotionRel = ResourceId & { type: 'external_promotions' }\n\n\ninterface OrderAmountPromotionRule extends Resource {\n\t\n\torder_amount_cents?: number\n\torder_amount_float?: number\n\tformatted_order_amount?: string\n\n\tpromotion?: PercentageDiscountPromotion | FreeShippingPromotion | FixedAmountPromotion | FreeGiftPromotion | FixedPricePromotion | ExternalPromotion\n\n}\n\n\ninterface OrderAmountPromotionRuleCreate extends ResourceCreate {\n\t\n\torder_amount_cents?: number\n\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | FreeGiftPromotionRel | FixedPricePromotionRel | ExternalPromotionRel\n\n}\n\n\ninterface OrderAmountPromotionRuleUpdate extends ResourceUpdate {\n\t\n\torder_amount_cents?: number\n\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | FreeGiftPromotionRel | FixedPricePromotionRel | ExternalPromotionRel\n\n}\n\n\nclass OrderAmountPromotionRules extends ApiResource {\n\n\tstatic readonly TYPE: 'order_amount_promotion_rules' = 'order_amount_promotion_rules'\n\t// static readonly PATH = 'order_amount_promotion_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<OrderAmountPromotionRule>> {\n\t\treturn this.resources.list({ type: OrderAmountPromotionRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: OrderAmountPromotionRuleCreate, options?: ResourcesConfig): Promise<OrderAmountPromotionRule> {\n\t\treturn this.resources.create({ ...resource, type: OrderAmountPromotionRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<OrderAmountPromotionRule> {\n\t\treturn this.resources.retrieve<OrderAmountPromotionRule>({ type: OrderAmountPromotionRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: OrderAmountPromotionRuleUpdate, options?: ResourcesConfig): Promise<OrderAmountPromotionRule> {\n\t\treturn this.resources.update({ ...resource, type: OrderAmountPromotionRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: OrderAmountPromotionRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrderAmountPromotionRule(resource: any): resource is OrderAmountPromotionRule {\n\t\treturn resource.type && (resource.type === OrderAmountPromotionRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(OrderAmountPromotionRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(OrderAmountPromotionRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderAmountPromotionRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: OrderAmountPromotionRules.TYPE } : {id: id.id, type: OrderAmountPromotionRules.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn OrderAmountPromotionRules.TYPE\n\t}\n\n}\n\n\nexport default OrderAmountPromotionRules\n\nexport { OrderAmountPromotionRule, OrderAmountPromotionRuleCreate, OrderAmountPromotionRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { OrderSubscription } from './order_subscriptions'\n\n\ntype OrderCopyRel = ResourceId & { type: typeof OrderCopies.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface OrderCopy extends Resource {\n\t\n\tstatus?: string\n\tstarted_at?: string\n\tcompleted_at?: string\n\tfailed_at?: string\n\tplace_target_order?: boolean\n\tcancel_source_order?: boolean\n\treuse_wallet?: boolean\n\terrors_log?: object\n\terrors_count?: number\n\n\tsource_order?: Order\n\ttarget_order?: Order\n\torder_subscription?: OrderSubscription\n\n}\n\n\ninterface OrderCopyCreate extends ResourceCreate {\n\t\n\tplace_target_order?: boolean\n\tcancel_source_order?: boolean\n\treuse_wallet?: boolean\n\n\tsource_order?: OrderRel\n\n}\n\n\nclass OrderCopies extends ApiResource {\n\n\tstatic readonly TYPE: 'order_copies' = 'order_copies'\n\t// static readonly PATH = 'order_copies'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<OrderCopy>> {\n\t\treturn this.resources.list({ type: OrderCopies.TYPE }, params, options)\n\t}\n\n\tasync create(resource: OrderCopyCreate, options?: ResourcesConfig): Promise<OrderCopy> {\n\t\treturn this.resources.create({ ...resource, type: OrderCopies.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<OrderCopy> {\n\t\treturn this.resources.retrieve<OrderCopy>({ type: OrderCopies.TYPE, id }, params, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: OrderCopies.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrderCopy(resource: any): resource is OrderCopy {\n\t\treturn resource.type && (resource.type === OrderCopies.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(OrderCopies.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(OrderCopies.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderCopyRel {\n\t\treturn (typeof id === 'string') ? { id, type: OrderCopies.TYPE } : {id: id.id, type: OrderCopies.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn OrderCopies.TYPE\n\t}\n\n}\n\n\nexport default OrderCopies\n\nexport { OrderCopy, OrderCopyCreate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Order } from './orders'\nimport { Customer } from './customers'\nimport { OrderCopy } from './order_copies'\n\n\ntype OrderSubscriptionRel = ResourceId & { type: typeof OrderSubscriptions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface OrderSubscription extends Resource {\n\t\n\tnumber?: string\n\tstatus?: string\n\tfrequency?: string\n\tactivate_by_source_order?: boolean\n\tcustomer_email?: string\n\tstarts_at?: string\n\texpires_at?: string\n\tnext_run_at?: string\n\toccurrencies?: number\n\terrors_count?: number\n\tsucceeded_on_last_run?: boolean\n\toptions?: object\n\n\tmarket?: Market\n\tsource_order?: Order\n\tcustomer?: Customer\n\torder_copies?: OrderCopy[]\n\torders?: Order[]\n\n}\n\n\ninterface OrderSubscriptionCreate extends ResourceCreate {\n\t\n\tfrequency?: string\n\tactivate_by_source_order?: boolean\n\tstarts_at?: string\n\texpires_at?: string\n\toptions?: object\n\n\tmarket?: MarketRel\n\tsource_order?: OrderRel\n\n}\n\n\ninterface OrderSubscriptionUpdate extends ResourceUpdate {\n\t\n\texpires_at?: string\n\t_activate?: boolean\n\t_deactivate?: boolean\n\t_cancel?: boolean\n\t\n}\n\n\nclass OrderSubscriptions extends ApiResource {\n\n\tstatic readonly TYPE: 'order_subscriptions' = 'order_subscriptions'\n\t// static readonly PATH = 'order_subscriptions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<OrderSubscription>> {\n\t\treturn this.resources.list({ type: OrderSubscriptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: OrderSubscriptionCreate, options?: ResourcesConfig): Promise<OrderSubscription> {\n\t\treturn this.resources.create({ ...resource, type: OrderSubscriptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<OrderSubscription> {\n\t\treturn this.resources.retrieve<OrderSubscription>({ type: OrderSubscriptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: OrderSubscriptionUpdate, options?: ResourcesConfig): Promise<OrderSubscription> {\n\t\treturn this.resources.update({ ...resource, type: OrderSubscriptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: OrderSubscriptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrderSubscription(resource: any): resource is OrderSubscription {\n\t\treturn resource.type && (resource.type === OrderSubscriptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(OrderSubscriptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(OrderSubscriptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderSubscriptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: OrderSubscriptions.TYPE } : {id: id.id, type: OrderSubscriptions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn OrderSubscriptions.TYPE\n\t}\n\n}\n\n\nexport default OrderSubscriptions\n\nexport { OrderSubscription, OrderSubscriptionCreate, OrderSubscriptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { Market } from './markets'\n\n\ntype OrderValidationRuleRel = ResourceId & { type: typeof OrderValidationRules.TYPE }\n\n\ninterface OrderValidationRule extends Resource {\n\t\n\tmarket?: Market\n\n}\n\n\nclass OrderValidationRules extends ApiResource {\n\n\tstatic readonly TYPE: 'order_validation_rules' = 'order_validation_rules'\n\t// static readonly PATH = 'order_validation_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<OrderValidationRule>> {\n\t\treturn this.resources.list({ type: OrderValidationRules.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrderValidationRule(resource: any): resource is OrderValidationRule {\n\t\treturn resource.type && (resource.type === OrderValidationRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(OrderValidationRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(OrderValidationRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderValidationRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: OrderValidationRules.TYPE } : {id: id.id, type: OrderValidationRules.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn OrderValidationRules.TYPE\n\t}\n\n}\n\n\nexport default OrderValidationRules\n\nexport { OrderValidationRule }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Customer } from './customers'\nimport { Address } from './addresses'\nimport { PaymentMethod } from './payment_methods'\nimport { CustomerPaymentSource } from './customer_payment_sources'\nimport { AdyenPayment } from './adyen_payments'\nimport { BraintreePayment } from './braintree_payments'\nimport { CheckoutComPayment } from './checkout_com_payments'\nimport { ExternalPayment } from './external_payments'\nimport { PaypalPayment } from './paypal_payments'\nimport { StripePayment } from './stripe_payments'\nimport { WireTransfer } from './wire_transfers'\nimport { LineItem } from './line_items'\nimport { Shipment } from './shipments'\nimport { Authorization } from './authorizations'\nimport { Void } from './voids'\nimport { Capture } from './captures'\nimport { Refund } from './refunds'\nimport { OrderSubscription } from './order_subscriptions'\nimport { OrderCopy } from './order_copies'\nimport { Attachment } from './attachments'\n\n\ntype OrderRel = ResourceId & { type: typeof Orders.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype CustomerRel = ResourceId & { type: 'customers' }\ntype AddressRel = ResourceId & { type: 'addresses' }\ntype PaymentMethodRel = ResourceId & { type: 'payment_methods' }\ntype AdyenPaymentRel = ResourceId & { type: 'adyen_payments' }\ntype BraintreePaymentRel = ResourceId & { type: 'braintree_payments' }\ntype CheckoutComPaymentRel = ResourceId & { type: 'checkout_com_payments' }\ntype ExternalPaymentRel = ResourceId & { type: 'external_payments' }\ntype PaypalPaymentRel = ResourceId & { type: 'paypal_payments' }\ntype StripePaymentRel = ResourceId & { type: 'stripe_payments' }\ntype WireTransferRel = ResourceId & { type: 'wire_transfers' }\n\n\ninterface Order extends Resource {\n\t\n\tnumber?: number\n\tautorefresh?: boolean\n\tstatus?: string\n\tpayment_status?: string\n\tfulfillment_status?: string\n\tguest?: boolean\n\teditable?: boolean\n\tcustomer_email?: string\n\tlanguage_code?: string\n\tcurrency_code?: string\n\ttax_included?: boolean\n\ttax_rate?: number\n\tfreight_taxable?: boolean\n\trequires_billing_info?: boolean\n\tcountry_code?: string\n\tshipping_country_code_lock?: string\n\tcoupon_code?: string\n\tgift_card_code?: string\n\tgift_card_or_coupon_code?: string\n\tsubtotal_amount_cents?: number\n\tsubtotal_amount_float?: number\n\tformatted_subtotal_amount?: string\n\tshipping_amount_cents?: number\n\tshipping_amount_float?: number\n\tformatted_shipping_amount?: string\n\tpayment_method_amount_cents?: number\n\tpayment_method_amount_float?: number\n\tformatted_payment_method_amount?: string\n\tdiscount_amount_cents?: number\n\tdiscount_amount_float?: number\n\tformatted_discount_amount?: string\n\tadjustment_amount_cents?: number\n\tadjustment_amount_float?: number\n\tformatted_adjustment_amount?: string\n\tgift_card_amount_cents?: number\n\tgift_card_amount_float?: number\n\tformatted_gift_card_amount?: string\n\ttotal_tax_amount_cents?: number\n\ttotal_tax_amount_float?: number\n\tformatted_total_tax_amount?: string\n\tsubtotal_tax_amount_cents?: number\n\tsubtotal_tax_amount_float?: number\n\tformatted_subtotal_tax_amount?: string\n\tshipping_tax_amount_cents?: number\n\tshipping_tax_amount_float?: number\n\tformatted_shipping_tax_amount?: string\n\tpayment_method_tax_amount_cents?: number\n\tpayment_method_tax_amount_float?: number\n\tformatted_payment_method_tax_amount?: string\n\tadjustment_tax_amount_cents?: number\n\tadjustment_tax_amount_float?: number\n\tformatted_adjustment_tax_amount?: string\n\ttotal_amount_cents?: number\n\ttotal_amount_float?: number\n\tformatted_total_amount?: string\n\ttotal_taxable_amount_cents?: number\n\ttotal_taxable_amount_float?: number\n\tformatted_total_taxable_amount?: string\n\tsubtotal_taxable_amount_cents?: number\n\tsubtotal_taxable_amount_float?: number\n\tformatted_subtotal_taxable_amount?: string\n\tshipping_taxable_amount_cents?: number\n\tshipping_taxable_amount_float?: number\n\tformatted_shipping_taxable_amount?: string\n\tpayment_method_taxable_amount_cents?: number\n\tpayment_method_taxable_amount_float?: number\n\tformatted_payment_method_taxable_amount?: string\n\tadjustment_taxable_amount_cents?: number\n\tadjustment_taxable_amount_float?: number\n\tformatted_adjustment_taxable_amount?: string\n\ttotal_amount_with_taxes_cents?: number\n\ttotal_amount_with_taxes_float?: number\n\tformatted_total_amount_with_taxes?: string\n\tfees_amount_cents?: number\n\tfees_amount_float?: number\n\tformatted_fees_amount?: string\n\tduty_amount_cents?: number\n\tduty_amount_float?: number\n\tformatted_duty_amount?: string\n\tskus_count?: number\n\tline_item_options_count?: number\n\tshipments_count?: number\n\tpayment_source_details?: object\n\ttoken?: string\n\tcart_url?: string\n\treturn_url?: string\n\tterms_url?: string\n\tprivacy_url?: string\n\tcheckout_url?: string\n\tplaced_at?: string\n\tapproved_at?: string\n\tcancelled_at?: string\n\tpayment_updated_at?: string\n\tfulfillment_updated_at?: string\n\trefreshed_at?: string\n\tarchived_at?: string\n\texpires_at?: string\n\n\tmarket?: Market\n\tcustomer?: Customer\n\tshipping_address?: Address\n\tbilling_address?: Address\n\tavailable_payment_methods?: PaymentMethod[]\n\tavailable_customer_payment_sources?: CustomerPaymentSource[]\n\tpayment_method?: PaymentMethod\n\tpayment_source?: AdyenPayment | BraintreePayment | CheckoutComPayment | ExternalPayment | PaypalPayment | StripePayment | WireTransfer\n\tline_items?: LineItem[]\n\tshipments?: Shipment[]\n\ttransactions?: (Authorization | Void | Capture | Refund)[]\n\tauthorizations?: Authorization[]\n\tcaptures?: Capture[]\n\tvoids?: Void[]\n\trefunds?: Refund[]\n\torder_subscriptions?: OrderSubscription[]\n\torder_copies?: OrderCopy[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface OrderCreate extends ResourceCreate {\n\t\n\tautorefresh?: boolean\n\tguest?: boolean\n\tcustomer_email?: string\n\tcustomer_password?: string\n\tlanguage_code?: string\n\tshipping_country_code_lock?: string\n\tcoupon_code?: string\n\tgift_card_code?: string\n\tgift_card_or_coupon_code?: string\n\tcart_url?: string\n\treturn_url?: string\n\tterms_url?: string\n\tprivacy_url?: string\n\n\tmarket?: MarketRel\n\tcustomer?: CustomerRel\n\tshipping_address?: AddressRel\n\tbilling_address?: AddressRel\n\tpayment_method?: PaymentMethodRel\n\tpayment_source?: AdyenPaymentRel | BraintreePaymentRel | CheckoutComPaymentRel | ExternalPaymentRel | PaypalPaymentRel | StripePaymentRel | WireTransferRel\n\n}\n\n\ninterface OrderUpdate extends ResourceUpdate {\n\t\n\tautorefresh?: boolean\n\tguest?: boolean\n\tcustomer_email?: string\n\tcustomer_password?: string\n\tlanguage_code?: string\n\tshipping_country_code_lock?: string\n\tcoupon_code?: string\n\tgift_card_code?: string\n\tgift_card_or_coupon_code?: string\n\tcart_url?: string\n\treturn_url?: string\n\tterms_url?: string\n\tprivacy_url?: string\n\t_archive?: boolean\n\t_unarchive?: boolean\n\t_place?: boolean\n\t_cancel?: boolean\n\t_approve?: boolean\n\t_approve_and_capture?: boolean\n\t_authorize?: boolean\n\t_authorization_amount_cents?: number\n\t_capture?: boolean\n\t_refund?: boolean\n\t_update_taxes?: boolean\n\t_billing_address_clone_id?: string\n\t_shipping_address_clone_id?: string\n\t_customer_payment_source_id?: string\n\t_shipping_address_same_as_billing?: boolean\n\t_billing_address_same_as_shipping?: boolean\n\t_save_payment_source_to_customer_wallet?: boolean\n\t_save_shipping_address_to_customer_address_book?: boolean\n\t_save_billing_address_to_customer_address_book?: boolean\n\t_refresh?: boolean\n\n\tmarket?: MarketRel\n\tcustomer?: CustomerRel\n\tshipping_address?: AddressRel\n\tbilling_address?: AddressRel\n\tpayment_method?: PaymentMethodRel\n\tpayment_source?: AdyenPaymentRel | BraintreePaymentRel | CheckoutComPaymentRel | ExternalPaymentRel | PaypalPaymentRel | StripePaymentRel | WireTransferRel\n\n}\n\n\nclass Orders extends ApiResource {\n\n\tstatic readonly TYPE: 'orders' = 'orders'\n\t// static readonly PATH = 'orders'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Order>> {\n\t\treturn this.resources.list({ type: Orders.TYPE }, params, options)\n\t}\n\n\tasync create(resource: OrderCreate, options?: ResourcesConfig): Promise<Order> {\n\t\treturn this.resources.create({ ...resource, type: Orders.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Order> {\n\t\treturn this.resources.retrieve<Order>({ type: Orders.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: OrderUpdate, options?: ResourcesConfig): Promise<Order> {\n\t\treturn this.resources.update({ ...resource, type: Orders.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Orders.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrder(resource: any): resource is Order {\n\t\treturn resource.type && (resource.type === Orders.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Orders.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Orders.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrderRel {\n\t\treturn (typeof id === 'string') ? { id, type: Orders.TYPE } : {id: id.id, type: Orders.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Orders.TYPE\n\t}\n\n}\n\n\nexport default Orders\n\nexport { Order, OrderCreate, OrderUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsRetrieve } from '../query'\n\n\n\ntype OrganizationRel = ResourceId & { type: typeof Organizations.TYPE }\n\n\ninterface Organization extends Resource {\n\t\n\tname?: string\n\tslug?: string\n\tdomain?: string\n\tsupport_phone?: string\n\tsupport_email?: string\n\tlogo_url?: string\n\tfavicon_url?: string\n\tprimary_color?: string\n\tcontrast_color?: string\n\tgtm_id?: string\n\tgtm_id_test?: string\n\tdiscount_disabled?: boolean\n\taccount_disabled?: boolean\n\tacceptance_disabled?: boolean\n\t\n}\n\n\nclass Organizations extends ApiResource {\n\n\tstatic readonly TYPE: 'organization' = 'organization'\n\t// static readonly PATH = 'organization'\n\n\tasync retrieve(params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Organization> {\n\t\treturn this.resources.singleton<Organization>({ type: Organizations.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisOrganization(resource: any): resource is Organization {\n\t\treturn resource.type && (resource.type === Organizations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Organizations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Organizations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): OrganizationRel {\n\t\treturn (typeof id === 'string') ? { id, type: Organizations.TYPE } : {id: id.id, type: Organizations.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Organizations.TYPE\n\t}\n\n}\n\n\nexport default Organizations\n\nexport { Organization }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { Parcel } from './parcels'\nimport { Attachment } from './attachments'\n\n\ntype PackageRel = ResourceId & { type: typeof Packages.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\n\n\ninterface Package extends Resource {\n\t\n\tname?: string\n\tcode?: string\n\tlength?: number\n\twidth?: number\n\theight?: number\n\tunit_of_length?: string\n\n\tstock_location?: StockLocation\n\tparcels?: Parcel[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface PackageCreate extends ResourceCreate {\n\t\n\tname?: string\n\tcode?: string\n\tlength?: number\n\twidth?: number\n\theight?: number\n\tunit_of_length?: string\n\n\tstock_location?: StockLocationRel\n\n}\n\n\ninterface PackageUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tcode?: string\n\tlength?: number\n\twidth?: number\n\theight?: number\n\tunit_of_length?: string\n\n\tstock_location?: StockLocationRel\n\n}\n\n\nclass Packages extends ApiResource {\n\n\tstatic readonly TYPE: 'packages' = 'packages'\n\t// static readonly PATH = 'packages'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Package>> {\n\t\treturn this.resources.list({ type: Packages.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PackageCreate, options?: ResourcesConfig): Promise<Package> {\n\t\treturn this.resources.create({ ...resource, type: Packages.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Package> {\n\t\treturn this.resources.retrieve<Package>({ type: Packages.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PackageUpdate, options?: ResourcesConfig): Promise<Package> {\n\t\treturn this.resources.update({ ...resource, type: Packages.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Packages.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPackage(resource: any): resource is Package {\n\t\treturn resource.type && (resource.type === Packages.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Packages.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Packages.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PackageRel {\n\t\treturn (typeof id === 'string') ? { id, type: Packages.TYPE } : {id: id.id, type: Packages.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Packages.TYPE\n\t}\n\n}\n\n\nexport default Packages\n\nexport { Package, PackageCreate, PackageUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Parcel } from './parcels'\nimport { StockLineItem } from './stock_line_items'\n\n\ntype ParcelLineItemRel = ResourceId & { type: typeof ParcelLineItems.TYPE }\ntype ParcelRel = ResourceId & { type: 'parcels' }\ntype StockLineItemRel = ResourceId & { type: 'stock_line_items' }\n\n\ninterface ParcelLineItem extends Resource {\n\t\n\tsku_code?: string\n\tquantity?: number\n\n\tparcel?: Parcel\n\tstock_line_item?: StockLineItem\n\t/**\n\t* @deprecated This field should not be used as it may be removed in the future without notice\n\t*/\n\tshipment_line_item?: object\n\n}\n\n\ninterface ParcelLineItemCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tquantity: number\n\n\tparcel?: ParcelRel\n\tstock_line_item?: StockLineItemRel\n\t/**\n\t* @deprecated This field should not be used as it may be removed in the future without notice\n\t*/\n\tshipment_line_item?: object\n\n}\n\n\ntype ParcelLineItemUpdate = ResourceUpdate\n\n\nclass ParcelLineItems extends ApiResource {\n\n\tstatic readonly TYPE: 'parcel_line_items' = 'parcel_line_items'\n\t// static readonly PATH = 'parcel_line_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ParcelLineItem>> {\n\t\treturn this.resources.list({ type: ParcelLineItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ParcelLineItemCreate, options?: ResourcesConfig): Promise<ParcelLineItem> {\n\t\treturn this.resources.create({ ...resource, type: ParcelLineItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ParcelLineItem> {\n\t\treturn this.resources.retrieve<ParcelLineItem>({ type: ParcelLineItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ParcelLineItemUpdate, options?: ResourcesConfig): Promise<ParcelLineItem> {\n\t\treturn this.resources.update({ ...resource, type: ParcelLineItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ParcelLineItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisParcelLineItem(resource: any): resource is ParcelLineItem {\n\t\treturn resource.type && (resource.type === ParcelLineItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ParcelLineItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ParcelLineItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ParcelLineItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: ParcelLineItems.TYPE } : {id: id.id, type: ParcelLineItems.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ParcelLineItems.TYPE\n\t}\n\n}\n\n\nexport default ParcelLineItems\n\nexport { ParcelLineItem, ParcelLineItemCreate, ParcelLineItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Shipment } from './shipments'\nimport { Package } from './packages'\nimport { ParcelLineItem } from './parcel_line_items'\nimport { Attachment } from './attachments'\n\n\ntype ParcelRel = ResourceId & { type: typeof Parcels.TYPE }\ntype ShipmentRel = ResourceId & { type: 'shipments' }\ntype PackageRel = ResourceId & { type: 'packages' }\n\n\ninterface Parcel extends Resource {\n\t\n\tnumber?: string\n\tweight?: number\n\tunit_of_weight?: string\n\teel_pfc?: string\n\tcontents_type?: string\n\tcontents_explanation?: string\n\tcustoms_certify?: boolean\n\tcustoms_signer?: string\n\tnon_delivery_option?: string\n\trestriction_type?: string\n\trestriction_comments?: string\n\tcustoms_info_required?: boolean\n\tshipping_label_url?: string\n\tshipping_label_file_type?: string\n\tshipping_label_size?: string\n\tshipping_label_resolution?: string\n\ttracking_number?: string\n\ttracking_status?: string\n\ttracking_status_detail?: string\n\ttracking_status_updated_at?: string\n\ttracking_details?: string\n\tcarrier_weight_oz?: string\n\tsigned_by?: string\n\tincoterm?: string\n\n\tshipment?: Shipment\n\tpackage?: Package\n\tparcel_line_items?: ParcelLineItem[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ParcelCreate extends ResourceCreate {\n\t\n\tweight?: number\n\tunit_of_weight?: string\n\teel_pfc?: string\n\tcontents_type?: string\n\tcontents_explanation?: string\n\tcustoms_certify?: boolean\n\tcustoms_signer?: string\n\tnon_delivery_option?: string\n\trestriction_type?: string\n\trestriction_comments?: string\n\tcustoms_info_required?: boolean\n\ttracking_number?: string\n\ttracking_status?: string\n\ttracking_status_detail?: string\n\ttracking_status_updated_at?: string\n\ttracking_details?: string\n\tcarrier_weight_oz?: string\n\tsigned_by?: string\n\tincoterm?: string\n\n\tshipment?: ShipmentRel\n\tpackage?: PackageRel\n\n}\n\n\ninterface ParcelUpdate extends ResourceUpdate {\n\t\n\tweight?: number\n\tunit_of_weight?: string\n\teel_pfc?: string\n\tcontents_type?: string\n\tcontents_explanation?: string\n\tcustoms_certify?: boolean\n\tcustoms_signer?: string\n\tnon_delivery_option?: string\n\trestriction_type?: string\n\trestriction_comments?: string\n\tcustoms_info_required?: boolean\n\ttracking_number?: string\n\ttracking_status?: string\n\ttracking_status_detail?: string\n\ttracking_status_updated_at?: string\n\ttracking_details?: string\n\tcarrier_weight_oz?: string\n\tsigned_by?: string\n\tincoterm?: string\n\n\tshipment?: ShipmentRel\n\tpackage?: PackageRel\n\n}\n\n\nclass Parcels extends ApiResource {\n\n\tstatic readonly TYPE: 'parcels' = 'parcels'\n\t// static readonly PATH = 'parcels'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Parcel>> {\n\t\treturn this.resources.list({ type: Parcels.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ParcelCreate, options?: ResourcesConfig): Promise<Parcel> {\n\t\treturn this.resources.create({ ...resource, type: Parcels.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Parcel> {\n\t\treturn this.resources.retrieve<Parcel>({ type: Parcels.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ParcelUpdate, options?: ResourcesConfig): Promise<Parcel> {\n\t\treturn this.resources.update({ ...resource, type: Parcels.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Parcels.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisParcel(resource: any): resource is Parcel {\n\t\treturn resource.type && (resource.type === Parcels.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Parcels.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Parcels.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ParcelRel {\n\t\treturn (typeof id === 'string') ? { id, type: Parcels.TYPE } : {id: id.id, type: Parcels.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Parcels.TYPE\n\t}\n\n}\n\n\nexport default Parcels\n\nexport { Parcel, ParcelCreate, ParcelUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\n\n\ntype PaymentGatewayRel = ResourceId & { type: typeof PaymentGateways.TYPE }\n\n\ninterface PaymentGateway extends Resource {\n\t\n\tname?: string\n\n\tpayment_methods?: PaymentMethod[]\n\n}\n\n\ninterface PaymentGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\t\n}\n\n\ninterface PaymentGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\t\n}\n\n\nclass PaymentGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'payment_gateways' = 'payment_gateways'\n\t// static readonly PATH = 'payment_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PaymentGateway>> {\n\t\treturn this.resources.list({ type: PaymentGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PaymentGatewayCreate, options?: ResourcesConfig): Promise<PaymentGateway> {\n\t\treturn this.resources.create({ ...resource, type: PaymentGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PaymentGateway> {\n\t\treturn this.resources.retrieve<PaymentGateway>({ type: PaymentGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PaymentGatewayUpdate, options?: ResourcesConfig): Promise<PaymentGateway> {\n\t\treturn this.resources.update({ ...resource, type: PaymentGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PaymentGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPaymentGateway(resource: any): resource is PaymentGateway {\n\t\treturn resource.type && (resource.type === PaymentGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PaymentGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PaymentGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PaymentGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: PaymentGateways.TYPE } : {id: id.id, type: PaymentGateways.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn PaymentGateways.TYPE\n\t}\n\n}\n\n\nexport default PaymentGateways\n\nexport { PaymentGateway, PaymentGatewayCreate, PaymentGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PaymentGateway } from './payment_gateways'\nimport { Attachment } from './attachments'\n\n\ntype PaymentMethodRel = ResourceId & { type: typeof PaymentMethods.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PaymentGatewayRel = ResourceId & { type: 'payment_gateways' }\n\n\ninterface PaymentMethod extends Resource {\n\t\n\tpayment_source_type?: string\n\tname?: string\n\tdisabled_at?: string\n\tprice_amount_cents?: number\n\tprice_amount_float?: number\n\tformatted_price_amount?: string\n\n\tmarket?: Market\n\tpayment_gateway?: PaymentGateway\n\tattachments?: Attachment[]\n\n}\n\n\ninterface PaymentMethodCreate extends ResourceCreate {\n\t\n\tpayment_source_type: string\n\tprice_amount_cents: number\n\n\tmarket?: MarketRel\n\tpayment_gateway?: PaymentGatewayRel\n\n}\n\n\ninterface PaymentMethodUpdate extends ResourceUpdate {\n\t\n\tpayment_source_type?: string\n\tprice_amount_cents?: number\n\n\tmarket?: MarketRel\n\tpayment_gateway?: PaymentGatewayRel\n\n}\n\n\nclass PaymentMethods extends ApiResource {\n\n\tstatic readonly TYPE: 'payment_methods' = 'payment_methods'\n\t// static readonly PATH = 'payment_methods'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PaymentMethod>> {\n\t\treturn this.resources.list({ type: PaymentMethods.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PaymentMethodCreate, options?: ResourcesConfig): Promise<PaymentMethod> {\n\t\treturn this.resources.create({ ...resource, type: PaymentMethods.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PaymentMethod> {\n\t\treturn this.resources.retrieve<PaymentMethod>({ type: PaymentMethods.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PaymentMethodUpdate, options?: ResourcesConfig): Promise<PaymentMethod> {\n\t\treturn this.resources.update({ ...resource, type: PaymentMethods.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PaymentMethods.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPaymentMethod(resource: any): resource is PaymentMethod {\n\t\treturn resource.type && (resource.type === PaymentMethods.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PaymentMethods.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PaymentMethods.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PaymentMethodRel {\n\t\treturn (typeof id === 'string') ? { id, type: PaymentMethods.TYPE } : {id: id.id, type: PaymentMethods.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn PaymentMethods.TYPE\n\t}\n\n}\n\n\nexport default PaymentMethods\n\nexport { PaymentMethod, PaymentMethodCreate, PaymentMethodUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { PaypalPayment } from './paypal_payments'\n\n\ntype PaypalGatewayRel = ResourceId & { type: typeof PaypalGateways.TYPE }\n\n\ninterface PaypalGateway extends Resource {\n\t\n\tname?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tpaypal_payments?: PaypalPayment[]\n\n}\n\n\ninterface PaypalGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tclient_id: string\n\tclient_secret: string\n\tmode: string\n\t\n}\n\n\ninterface PaypalGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tclient_id?: string\n\tclient_secret?: string\n\tmode?: string\n\t\n}\n\n\nclass PaypalGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'paypal_gateways' = 'paypal_gateways'\n\t// static readonly PATH = 'paypal_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PaypalGateway>> {\n\t\treturn this.resources.list({ type: PaypalGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PaypalGatewayCreate, options?: ResourcesConfig): Promise<PaypalGateway> {\n\t\treturn this.resources.create({ ...resource, type: PaypalGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PaypalGateway> {\n\t\treturn this.resources.retrieve<PaypalGateway>({ type: PaypalGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PaypalGatewayUpdate, options?: ResourcesConfig): Promise<PaypalGateway> {\n\t\treturn this.resources.update({ ...resource, type: PaypalGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PaypalGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPaypalGateway(resource: any): resource is PaypalGateway {\n\t\treturn resource.type && (resource.type === PaypalGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PaypalGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PaypalGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PaypalGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: PaypalGateways.TYPE } : {id: id.id, type: PaypalGateways.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn PaypalGateways.TYPE\n\t}\n\n}\n\n\nexport default PaypalGateways\n\nexport { PaypalGateway, PaypalGatewayCreate, PaypalGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype PaypalPaymentRel = ResourceId & { type: typeof PaypalPayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface PaypalPayment extends Resource {\n\t\n\treturn_url?: string\n\tcancel_url?: string\n\tnote_to_payer?: string\n\tpaypal_payer_id?: string\n\tname?: string\n\tpaypal_id?: string\n\tstatus?: string\n\tapproval_url?: string\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface PaypalPaymentCreate extends ResourceCreate {\n\t\n\treturn_url: string\n\tcancel_url: string\n\tnote_to_payer?: string\n\n\torder?: OrderRel\n\n}\n\n\ninterface PaypalPaymentUpdate extends ResourceUpdate {\n\t\n\tpaypal_payer_id?: string\n\n\torder?: OrderRel\n\n}\n\n\nclass PaypalPayments extends ApiResource {\n\n\tstatic readonly TYPE: 'paypal_payments' = 'paypal_payments'\n\t// static readonly PATH = 'paypal_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PaypalPayment>> {\n\t\treturn this.resources.list({ type: PaypalPayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PaypalPaymentCreate, options?: ResourcesConfig): Promise<PaypalPayment> {\n\t\treturn this.resources.create({ ...resource, type: PaypalPayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PaypalPayment> {\n\t\treturn this.resources.retrieve<PaypalPayment>({ type: PaypalPayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PaypalPaymentUpdate, options?: ResourcesConfig): Promise<PaypalPayment> {\n\t\treturn this.resources.update({ ...resource, type: PaypalPayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PaypalPayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPaypalPayment(resource: any): resource is PaypalPayment {\n\t\treturn resource.type && (resource.type === PaypalPayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PaypalPayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PaypalPayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PaypalPaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: PaypalPayments.TYPE } : {id: id.id, type: PaypalPayments.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn PaypalPayments.TYPE\n\t}\n\n}\n\n\nexport default PaypalPayments\n\nexport { PaypalPayment, PaypalPaymentCreate, PaypalPaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\n\n\ntype PercentageDiscountPromotionRel = ResourceId & { type: typeof PercentageDiscountPromotions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype PromotionRuleRel = ResourceId & { type: 'promotion_rules' }\ntype OrderAmountPromotionRuleRel = ResourceId & { type: 'order_amount_promotion_rules' }\ntype SkuListPromotionRuleRel = ResourceId & { type: 'sku_list_promotion_rules' }\ntype CouponCodesPromotionRuleRel = ResourceId & { type: 'coupon_codes_promotion_rules' }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\n\n\ninterface PercentageDiscountPromotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\tpercentage?: number\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\tsku_list?: SkuList\n\tskus?: Sku[]\n\n}\n\n\ninterface PercentageDiscountPromotionCreate extends ResourceCreate {\n\t\n\tname: string\n\tstarts_at: string\n\texpires_at: string\n\ttotal_usage_limit: number\n\tpercentage: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\tsku_list?: SkuListRel\n\n}\n\n\ninterface PercentageDiscountPromotionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\tpercentage?: number\n\n\tmarket?: MarketRel\n\tpromotion_rules?: PromotionRuleRel[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRuleRel\n\tsku_list_promotion_rule?: SkuListPromotionRuleRel\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel\n\tsku_list?: SkuListRel\n\n}\n\n\nclass PercentageDiscountPromotions extends ApiResource {\n\n\tstatic readonly TYPE: 'percentage_discount_promotions' = 'percentage_discount_promotions'\n\t// static readonly PATH = 'percentage_discount_promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PercentageDiscountPromotion>> {\n\t\treturn this.resources.list({ type: PercentageDiscountPromotions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PercentageDiscountPromotionCreate, options?: ResourcesConfig): Promise<PercentageDiscountPromotion> {\n\t\treturn this.resources.create({ ...resource, type: PercentageDiscountPromotions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PercentageDiscountPromotion> {\n\t\treturn this.resources.retrieve<PercentageDiscountPromotion>({ type: PercentageDiscountPromotions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PercentageDiscountPromotionUpdate, options?: ResourcesConfig): Promise<PercentageDiscountPromotion> {\n\t\treturn this.resources.update({ ...resource, type: PercentageDiscountPromotions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PercentageDiscountPromotions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPercentageDiscountPromotion(resource: any): resource is PercentageDiscountPromotion {\n\t\treturn resource.type && (resource.type === PercentageDiscountPromotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PercentageDiscountPromotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PercentageDiscountPromotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PercentageDiscountPromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: PercentageDiscountPromotions.TYPE } : {id: id.id, type: PercentageDiscountPromotions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn PercentageDiscountPromotions.TYPE\n\t}\n\n}\n\n\nexport default PercentageDiscountPromotions\n\nexport { PercentageDiscountPromotion, PercentageDiscountPromotionCreate, PercentageDiscountPromotionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Price } from './prices'\nimport { Attachment } from './attachments'\n\n\ntype PriceListRel = ResourceId & { type: typeof PriceLists.TYPE }\n\n\ninterface PriceList extends Resource {\n\t\n\tname?: string\n\tcurrency_code?: string\n\ttax_included?: boolean\n\n\tprices?: Price[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface PriceListCreate extends ResourceCreate {\n\t\n\tname: string\n\tcurrency_code: string\n\ttax_included?: boolean\n\t\n}\n\n\ninterface PriceListUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tcurrency_code?: string\n\ttax_included?: boolean\n\t\n}\n\n\nclass PriceLists extends ApiResource {\n\n\tstatic readonly TYPE: 'price_lists' = 'price_lists'\n\t// static readonly PATH = 'price_lists'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PriceList>> {\n\t\treturn this.resources.list({ type: PriceLists.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PriceListCreate, options?: ResourcesConfig): Promise<PriceList> {\n\t\treturn this.resources.create({ ...resource, type: PriceLists.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<PriceList> {\n\t\treturn this.resources.retrieve<PriceList>({ type: PriceLists.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PriceListUpdate, options?: ResourcesConfig): Promise<PriceList> {\n\t\treturn this.resources.update({ ...resource, type: PriceLists.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: PriceLists.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPriceList(resource: any): resource is PriceList {\n\t\treturn resource.type && (resource.type === PriceLists.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PriceLists.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PriceLists.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PriceListRel {\n\t\treturn (typeof id === 'string') ? { id, type: PriceLists.TYPE } : {id: id.id, type: PriceLists.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn PriceLists.TYPE\n\t}\n\n}\n\n\nexport default PriceLists\n\nexport { PriceList, PriceListCreate, PriceListUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PriceList } from './price_lists'\nimport { Sku } from './skus'\nimport { Attachment } from './attachments'\n\n\ntype PriceRel = ResourceId & { type: typeof Prices.TYPE }\ntype PriceListRel = ResourceId & { type: 'price_lists' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface Price extends Resource {\n\t\n\tcurrency_code?: string\n\tsku_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tcompare_at_amount_cents?: number\n\tcompare_at_amount_float?: number\n\tformatted_compare_at_amount?: string\n\n\tprice_list?: PriceList\n\tsku?: Sku\n\tattachments?: Attachment[]\n\n}\n\n\ninterface PriceCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tamount_cents: number\n\tcompare_at_amount_cents: number\n\n\tprice_list?: PriceListRel\n\tsku?: SkuRel\n\n}\n\n\ninterface PriceUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\tamount_cents?: number\n\tcompare_at_amount_cents?: number\n\n\tprice_list?: PriceListRel\n\tsku?: SkuRel\n\n}\n\n\nclass Prices extends ApiResource {\n\n\tstatic readonly TYPE: 'prices' = 'prices'\n\t// static readonly PATH = 'prices'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Price>> {\n\t\treturn this.resources.list({ type: Prices.TYPE }, params, options)\n\t}\n\n\tasync create(resource: PriceCreate, options?: ResourcesConfig): Promise<Price> {\n\t\treturn this.resources.create({ ...resource, type: Prices.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Price> {\n\t\treturn this.resources.retrieve<Price>({ type: Prices.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: PriceUpdate, options?: ResourcesConfig): Promise<Price> {\n\t\treturn this.resources.update({ ...resource, type: Prices.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Prices.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPrice(resource: any): resource is Price {\n\t\treturn resource.type && (resource.type === Prices.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Prices.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Prices.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PriceRel {\n\t\treturn (typeof id === 'string') ? { id, type: Prices.TYPE } : {id: id.id, type: Prices.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Prices.TYPE\n\t}\n\n}\n\n\nexport default Prices\n\nexport { Price, PriceCreate, PriceUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { FreeGiftPromotion } from './free_gift_promotions'\nimport { FixedPricePromotion } from './fixed_price_promotions'\nimport { ExternalPromotion } from './external_promotions'\n\n\ntype PromotionRuleRel = ResourceId & { type: typeof PromotionRules.TYPE }\n\n\ninterface PromotionRule extends Resource {\n\t\n\tpromotion?: PercentageDiscountPromotion | FreeShippingPromotion | FixedAmountPromotion | FreeGiftPromotion | FixedPricePromotion | ExternalPromotion\n\n}\n\n\nclass PromotionRules extends ApiResource {\n\n\tstatic readonly TYPE: 'promotion_rules' = 'promotion_rules'\n\t// static readonly PATH = 'promotion_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<PromotionRule>> {\n\t\treturn this.resources.list({ type: PromotionRules.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPromotionRule(resource: any): resource is PromotionRule {\n\t\treturn resource.type && (resource.type === PromotionRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(PromotionRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(PromotionRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PromotionRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: PromotionRules.TYPE } : {id: id.id, type: PromotionRules.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn PromotionRules.TYPE\n\t}\n\n}\n\n\nexport default PromotionRules\n\nexport { PromotionRule }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { Market } from './markets'\nimport { PromotionRule } from './promotion_rules'\nimport { OrderAmountPromotionRule } from './order_amount_promotion_rules'\nimport { SkuListPromotionRule } from './sku_list_promotion_rules'\nimport { CouponCodesPromotionRule } from './coupon_codes_promotion_rules'\nimport { Attachment } from './attachments'\n\n\ntype PromotionRel = ResourceId & { type: typeof Promotions.TYPE }\n\n\ninterface Promotion extends Resource {\n\t\n\tname?: string\n\tstarts_at?: string\n\texpires_at?: string\n\ttotal_usage_limit?: number\n\ttotal_usage_count?: number\n\tactive?: boolean\n\n\tmarket?: Market\n\tpromotion_rules?: PromotionRule[]\n\torder_amount_promotion_rule?: OrderAmountPromotionRule\n\tsku_list_promotion_rule?: SkuListPromotionRule\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule\n\tattachments?: Attachment[]\n\n}\n\n\nclass Promotions extends ApiResource {\n\n\tstatic readonly TYPE: 'promotions' = 'promotions'\n\t// static readonly PATH = 'promotions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Promotion>> {\n\t\treturn this.resources.list({ type: Promotions.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisPromotion(resource: any): resource is Promotion {\n\t\treturn resource.type && (resource.type === Promotions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Promotions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Promotions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): PromotionRel {\n\t\treturn (typeof id === 'string') ? { id, type: Promotions.TYPE } : {id: id.id, type: Promotions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Promotions.TYPE\n\t}\n\n}\n\n\nexport default Promotions\n\nexport { Promotion }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Capture } from './captures'\n\n\ntype RefundRel = ResourceId & { type: typeof Refunds.TYPE }\n\n\ninterface Refund extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\n\torder?: Order\n\treference_capture?: Capture\n\n}\n\n\nclass Refunds extends ApiResource {\n\n\tstatic readonly TYPE: 'refunds' = 'refunds'\n\t// static readonly PATH = 'refunds'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Refund>> {\n\t\treturn this.resources.list({ type: Refunds.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Refund> {\n\t\treturn this.resources.retrieve<Refund>({ type: Refunds.TYPE, id }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisRefund(resource: any): resource is Refund {\n\t\treturn resource.type && (resource.type === Refunds.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Refunds.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Refunds.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): RefundRel {\n\t\treturn (typeof id === 'string') ? { id, type: Refunds.TYPE } : {id: id.id, type: Refunds.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Refunds.TYPE\n\t}\n\n}\n\n\nexport default Refunds\n\nexport { Refund }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Return } from './returns'\nimport { LineItem } from './line_items'\n\n\ntype ReturnLineItemRel = ResourceId & { type: typeof ReturnLineItems.TYPE }\ntype ReturnRel = ResourceId & { type: 'returns' }\ntype LineItemRel = ResourceId & { type: 'line_items' }\n\n\ninterface ReturnLineItem extends Resource {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tname?: string\n\tquantity?: number\n\treturn_reason?: object\n\trestocked_at?: string\n\n\treturn?: Return\n\tline_item?: LineItem\n\n}\n\n\ninterface ReturnLineItemCreate extends ResourceCreate {\n\t\n\tquantity: number\n\treturn_reason?: object\n\n\treturn?: ReturnRel\n\tline_item?: LineItemRel\n\n}\n\n\ninterface ReturnLineItemUpdate extends ResourceUpdate {\n\t\n\tquantity?: number\n\t_restock?: boolean\n\treturn_reason?: object\n\t\n}\n\n\nclass ReturnLineItems extends ApiResource {\n\n\tstatic readonly TYPE: 'return_line_items' = 'return_line_items'\n\t// static readonly PATH = 'return_line_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ReturnLineItem>> {\n\t\treturn this.resources.list({ type: ReturnLineItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ReturnLineItemCreate, options?: ResourcesConfig): Promise<ReturnLineItem> {\n\t\treturn this.resources.create({ ...resource, type: ReturnLineItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ReturnLineItem> {\n\t\treturn this.resources.retrieve<ReturnLineItem>({ type: ReturnLineItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ReturnLineItemUpdate, options?: ResourcesConfig): Promise<ReturnLineItem> {\n\t\treturn this.resources.update({ ...resource, type: ReturnLineItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ReturnLineItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisReturnLineItem(resource: any): resource is ReturnLineItem {\n\t\treturn resource.type && (resource.type === ReturnLineItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ReturnLineItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ReturnLineItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ReturnLineItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: ReturnLineItems.TYPE } : {id: id.id, type: ReturnLineItems.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ReturnLineItems.TYPE\n\t}\n\n}\n\n\nexport default ReturnLineItems\n\nexport { ReturnLineItem, ReturnLineItemCreate, ReturnLineItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Customer } from './customers'\nimport { StockLocation } from './stock_locations'\nimport { Address } from './addresses'\nimport { ReturnLineItem } from './return_line_items'\nimport { Attachment } from './attachments'\n\n\ntype ReturnRel = ResourceId & { type: typeof Returns.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\n\n\ninterface Return extends Resource {\n\t\n\tnumber?: string\n\tstatus?: string\n\tcustomer_email?: string\n\tskus_count?: number\n\tapproved_at?: string\n\tcancelled_at?: string\n\tshipped_at?: string\n\trejected_at?: string\n\treceived_at?: string\n\tarchived_at?: string\n\n\torder?: Order\n\tcustomer?: Customer\n\tstock_location?: StockLocation\n\torigin_address?: Address\n\tdestination_address?: Address\n\treturn_line_items?: ReturnLineItem[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ReturnCreate extends ResourceCreate {\n\t\n\torder?: OrderRel\n\tstock_location?: StockLocationRel\n\n}\n\n\ninterface ReturnUpdate extends ResourceUpdate {\n\t\n\t_request?: boolean\n\t_approve?: boolean\n\t_cancel?: boolean\n\t_ship?: boolean\n\t_reject?: boolean\n\t_receive?: boolean\n\t_restock?: boolean\n\t_archive?: boolean\n\t_unarchive?: boolean\n\n\tstock_location?: StockLocationRel\n\n}\n\n\nclass Returns extends ApiResource {\n\n\tstatic readonly TYPE: 'returns' = 'returns'\n\t// static readonly PATH = 'returns'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Return>> {\n\t\treturn this.resources.list({ type: Returns.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ReturnCreate, options?: ResourcesConfig): Promise<Return> {\n\t\treturn this.resources.create({ ...resource, type: Returns.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Return> {\n\t\treturn this.resources.retrieve<Return>({ type: Returns.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ReturnUpdate, options?: ResourcesConfig): Promise<Return> {\n\t\treturn this.resources.update({ ...resource, type: Returns.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Returns.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisReturn(resource: any): resource is Return {\n\t\treturn resource.type && (resource.type === Returns.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Returns.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Returns.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ReturnRel {\n\t\treturn (typeof id === 'string') ? { id, type: Returns.TYPE } : {id: id.id, type: Returns.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Returns.TYPE\n\t}\n\n}\n\n\nexport default Returns\n\nexport { Return, ReturnCreate, ReturnUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { ShippingCategory } from './shipping_categories'\nimport { StockLocation } from './stock_locations'\nimport { Address } from './addresses'\nimport { ShippingMethod } from './shipping_methods'\nimport { DeliveryLeadTime } from './delivery_lead_times'\nimport { StockLineItem } from './stock_line_items'\nimport { StockTransfer } from './stock_transfers'\nimport { CarrierAccount } from './carrier_accounts'\nimport { Parcel } from './parcels'\nimport { Attachment } from './attachments'\n\n\ntype ShipmentRel = ResourceId & { type: typeof Shipments.TYPE }\ntype ShippingMethodRel = ResourceId & { type: 'shipping_methods' }\n\n\ninterface Shipment extends Resource {\n\t\n\tnumber?: string\n\tstatus?: string\n\tcurrency_code?: string\n\tcost_amount_cents?: number\n\tcost_amount_float?: number\n\tformatted_cost_amount?: string\n\tskus_count?: number\n\tselected_rate_id?: string\n\trates?: object[]\n\tpurchase_error_code?: string\n\tpurchase_error_message?: string\n\tget_rates_started_at?: string\n\tget_rates_completed_at?: string\n\tpurchase_started_at?: string\n\tpurchase_completed_at?: string\n\tpurchase_failed_at?: string\n\n\torder?: Order\n\tshipping_category?: ShippingCategory\n\tstock_location?: StockLocation\n\torigin_address?: Address\n\tshipping_address?: Address\n\tshipping_method?: ShippingMethod\n\tdelivery_lead_time?: DeliveryLeadTime\n\t/**\n\t* @deprecated This field should not be used as it may be removed in the future without notice\n\t*/\n\tshipment_line_items?: object[]\n\tstock_line_items?: StockLineItem[]\n\tstock_transfers?: StockTransfer[]\n\tavailable_shipping_methods?: ShippingMethod[]\n\tcarrier_accounts?: CarrierAccount[]\n\tparcels?: Parcel[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ShipmentUpdate extends ResourceUpdate {\n\t\n\t_on_hold?: boolean\n\t_picking?: boolean\n\t_packing?: boolean\n\t_ready_to_ship?: boolean\n\t_ship?: boolean\n\t_get_rates?: boolean\n\tselected_rate_id?: string\n\t_purchase?: boolean\n\n\tshipping_method?: ShippingMethodRel\n\n}\n\n\nclass Shipments extends ApiResource {\n\n\tstatic readonly TYPE: 'shipments' = 'shipments'\n\t// static readonly PATH = 'shipments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Shipment>> {\n\t\treturn this.resources.list({ type: Shipments.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Shipment> {\n\t\treturn this.resources.retrieve<Shipment>({ type: Shipments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ShipmentUpdate, options?: ResourcesConfig): Promise<Shipment> {\n\t\treturn this.resources.update({ ...resource, type: Shipments.TYPE }, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisShipment(resource: any): resource is Shipment {\n\t\treturn resource.type && (resource.type === Shipments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Shipments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Shipments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ShipmentRel {\n\t\treturn (typeof id === 'string') ? { id, type: Shipments.TYPE } : {id: id.id, type: Shipments.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Shipments.TYPE\n\t}\n\n}\n\n\nexport default Shipments\n\nexport { Shipment, ShipmentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Sku } from './skus'\nimport { Attachment } from './attachments'\n\n\ntype ShippingCategoryRel = ResourceId & { type: typeof ShippingCategories.TYPE }\n\n\ninterface ShippingCategory extends Resource {\n\t\n\tname?: string\n\n\tskus?: Sku[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ShippingCategoryCreate extends ResourceCreate {\n\t\n\tname: string\n\t\n}\n\n\ninterface ShippingCategoryUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\t\n}\n\n\nclass ShippingCategories extends ApiResource {\n\n\tstatic readonly TYPE: 'shipping_categories' = 'shipping_categories'\n\t// static readonly PATH = 'shipping_categories'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ShippingCategory>> {\n\t\treturn this.resources.list({ type: ShippingCategories.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ShippingCategoryCreate, options?: ResourcesConfig): Promise<ShippingCategory> {\n\t\treturn this.resources.create({ ...resource, type: ShippingCategories.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ShippingCategory> {\n\t\treturn this.resources.retrieve<ShippingCategory>({ type: ShippingCategories.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ShippingCategoryUpdate, options?: ResourcesConfig): Promise<ShippingCategory> {\n\t\treturn this.resources.update({ ...resource, type: ShippingCategories.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ShippingCategories.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisShippingCategory(resource: any): resource is ShippingCategory {\n\t\treturn resource.type && (resource.type === ShippingCategories.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ShippingCategories.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ShippingCategories.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ShippingCategoryRel {\n\t\treturn (typeof id === 'string') ? { id, type: ShippingCategories.TYPE } : {id: id.id, type: ShippingCategories.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ShippingCategories.TYPE\n\t}\n\n}\n\n\nexport default ShippingCategories\n\nexport { ShippingCategory, ShippingCategoryCreate, ShippingCategoryUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { ShippingZone } from './shipping_zones'\nimport { ShippingCategory } from './shipping_categories'\nimport { DeliveryLeadTime } from './delivery_lead_times'\nimport { Attachment } from './attachments'\n\n\ntype ShippingMethodRel = ResourceId & { type: typeof ShippingMethods.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\ntype ShippingZoneRel = ResourceId & { type: 'shipping_zones' }\ntype ShippingCategoryRel = ResourceId & { type: 'shipping_categories' }\n\n\ninterface ShippingMethod extends Resource {\n\t\n\tname?: string\n\tdisabled_at?: string\n\tcurrency_code?: string\n\tprice_amount_cents?: number\n\tprice_amount_float?: number\n\tformatted_price_amount?: string\n\tfree_over_amount_cents?: number\n\tfree_over_amount_float?: number\n\tformatted_free_over_amount?: string\n\tprice_amount_for_shipment_cents?: number\n\tprice_amount_for_shipment_float?: number\n\tformatted_price_amount_for_shipment?: string\n\n\tmarket?: Market\n\tshipping_zone?: ShippingZone\n\tshipping_category?: ShippingCategory\n\tdelivery_lead_time_for_shipment?: DeliveryLeadTime\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ShippingMethodCreate extends ResourceCreate {\n\t\n\tname: string\n\tprice_amount_cents: number\n\tfree_over_amount_cents?: number\n\n\tmarket?: MarketRel\n\tshipping_zone?: ShippingZoneRel\n\tshipping_category?: ShippingCategoryRel\n\n}\n\n\ninterface ShippingMethodUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tprice_amount_cents?: number\n\tfree_over_amount_cents?: number\n\n\tmarket?: MarketRel\n\tshipping_zone?: ShippingZoneRel\n\tshipping_category?: ShippingCategoryRel\n\n}\n\n\nclass ShippingMethods extends ApiResource {\n\n\tstatic readonly TYPE: 'shipping_methods' = 'shipping_methods'\n\t// static readonly PATH = 'shipping_methods'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ShippingMethod>> {\n\t\treturn this.resources.list({ type: ShippingMethods.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ShippingMethodCreate, options?: ResourcesConfig): Promise<ShippingMethod> {\n\t\treturn this.resources.create({ ...resource, type: ShippingMethods.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ShippingMethod> {\n\t\treturn this.resources.retrieve<ShippingMethod>({ type: ShippingMethods.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ShippingMethodUpdate, options?: ResourcesConfig): Promise<ShippingMethod> {\n\t\treturn this.resources.update({ ...resource, type: ShippingMethods.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ShippingMethods.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisShippingMethod(resource: any): resource is ShippingMethod {\n\t\treturn resource.type && (resource.type === ShippingMethods.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ShippingMethods.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ShippingMethods.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ShippingMethodRel {\n\t\treturn (typeof id === 'string') ? { id, type: ShippingMethods.TYPE } : {id: id.id, type: ShippingMethods.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ShippingMethods.TYPE\n\t}\n\n}\n\n\nexport default ShippingMethods\n\nexport { ShippingMethod, ShippingMethodCreate, ShippingMethodUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Attachment } from './attachments'\n\n\ntype ShippingZoneRel = ResourceId & { type: typeof ShippingZones.TYPE }\n\n\ninterface ShippingZone extends Resource {\n\t\n\tname?: string\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\n\tattachments?: Attachment[]\n\n}\n\n\ninterface ShippingZoneCreate extends ResourceCreate {\n\t\n\tname: string\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\t\n}\n\n\ninterface ShippingZoneUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\t\n}\n\n\nclass ShippingZones extends ApiResource {\n\n\tstatic readonly TYPE: 'shipping_zones' = 'shipping_zones'\n\t// static readonly PATH = 'shipping_zones'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<ShippingZone>> {\n\t\treturn this.resources.list({ type: ShippingZones.TYPE }, params, options)\n\t}\n\n\tasync create(resource: ShippingZoneCreate, options?: ResourcesConfig): Promise<ShippingZone> {\n\t\treturn this.resources.create({ ...resource, type: ShippingZones.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<ShippingZone> {\n\t\treturn this.resources.retrieve<ShippingZone>({ type: ShippingZones.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: ShippingZoneUpdate, options?: ResourcesConfig): Promise<ShippingZone> {\n\t\treturn this.resources.update({ ...resource, type: ShippingZones.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: ShippingZones.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisShippingZone(resource: any): resource is ShippingZone {\n\t\treturn resource.type && (resource.type === ShippingZones.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(ShippingZones.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(ShippingZones.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): ShippingZoneRel {\n\t\treturn (typeof id === 'string') ? { id, type: ShippingZones.TYPE } : {id: id.id, type: ShippingZones.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn ShippingZones.TYPE\n\t}\n\n}\n\n\nexport default ShippingZones\n\nexport { ShippingZone, ShippingZoneCreate, ShippingZoneUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\n\n\ntype SkuListItemRel = ResourceId & { type: typeof SkuListItems.TYPE }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface SkuListItem extends Resource {\n\t\n\tposition?: number\n\tquantity?: number\n\n\tsku_list?: SkuList\n\tsku?: Sku\n\n}\n\n\ninterface SkuListItemCreate extends ResourceCreate {\n\t\n\tposition: number\n\tquantity: number\n\n\tsku_list?: SkuListRel\n\tsku?: SkuRel\n\n}\n\n\ninterface SkuListItemUpdate extends ResourceUpdate {\n\t\n\tposition?: number\n\tquantity?: number\n\t\n}\n\n\nclass SkuListItems extends ApiResource {\n\n\tstatic readonly TYPE: 'sku_list_items' = 'sku_list_items'\n\t// static readonly PATH = 'sku_list_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<SkuListItem>> {\n\t\treturn this.resources.list({ type: SkuListItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuListItemCreate, options?: ResourcesConfig): Promise<SkuListItem> {\n\t\treturn this.resources.create({ ...resource, type: SkuListItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<SkuListItem> {\n\t\treturn this.resources.retrieve<SkuListItem>({ type: SkuListItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuListItemUpdate, options?: ResourcesConfig): Promise<SkuListItem> {\n\t\treturn this.resources.update({ ...resource, type: SkuListItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: SkuListItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSkuListItem(resource: any): resource is SkuListItem {\n\t\treturn resource.type && (resource.type === SkuListItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(SkuListItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(SkuListItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuListItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: SkuListItems.TYPE } : {id: id.id, type: SkuListItems.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn SkuListItems.TYPE\n\t}\n\n}\n\n\nexport default SkuListItems\n\nexport { SkuListItem, SkuListItemCreate, SkuListItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PercentageDiscountPromotion } from './percentage_discount_promotions'\nimport { FreeShippingPromotion } from './free_shipping_promotions'\nimport { FixedAmountPromotion } from './fixed_amount_promotions'\nimport { FreeGiftPromotion } from './free_gift_promotions'\nimport { FixedPricePromotion } from './fixed_price_promotions'\nimport { ExternalPromotion } from './external_promotions'\nimport { SkuList } from './sku_lists'\nimport { Sku } from './skus'\n\n\ntype SkuListPromotionRuleRel = ResourceId & { type: typeof SkuListPromotionRules.TYPE }\ntype PercentageDiscountPromotionRel = ResourceId & { type: 'percentage_discount_promotions' }\ntype FreeShippingPromotionRel = ResourceId & { type: 'free_shipping_promotions' }\ntype FixedAmountPromotionRel = ResourceId & { type: 'fixed_amount_promotions' }\ntype FreeGiftPromotionRel = ResourceId & { type: 'free_gift_promotions' }\ntype FixedPricePromotionRel = ResourceId & { type: 'fixed_price_promotions' }\ntype ExternalPromotionRel = ResourceId & { type: 'external_promotions' }\ntype SkuListRel = ResourceId & { type: 'sku_lists' }\n\n\ninterface SkuListPromotionRule extends Resource {\n\t\n\tall_skus?: boolean\n\tmin_quantity?: number\n\n\tpromotion?: PercentageDiscountPromotion | FreeShippingPromotion | FixedAmountPromotion | FreeGiftPromotion | FixedPricePromotion | ExternalPromotion\n\tsku_list?: SkuList\n\tskus?: Sku[]\n\n}\n\n\ninterface SkuListPromotionRuleCreate extends ResourceCreate {\n\t\n\tall_skus?: boolean\n\tmin_quantity?: number\n\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | FreeGiftPromotionRel | FixedPricePromotionRel | ExternalPromotionRel\n\tsku_list?: SkuListRel\n\n}\n\n\ninterface SkuListPromotionRuleUpdate extends ResourceUpdate {\n\t\n\tall_skus?: boolean\n\tmin_quantity?: number\n\n\tpromotion?: PercentageDiscountPromotionRel | FreeShippingPromotionRel | FixedAmountPromotionRel | FreeGiftPromotionRel | FixedPricePromotionRel | ExternalPromotionRel\n\tsku_list?: SkuListRel\n\n}\n\n\nclass SkuListPromotionRules extends ApiResource {\n\n\tstatic readonly TYPE: 'sku_list_promotion_rules' = 'sku_list_promotion_rules'\n\t// static readonly PATH = 'sku_list_promotion_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<SkuListPromotionRule>> {\n\t\treturn this.resources.list({ type: SkuListPromotionRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuListPromotionRuleCreate, options?: ResourcesConfig): Promise<SkuListPromotionRule> {\n\t\treturn this.resources.create({ ...resource, type: SkuListPromotionRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<SkuListPromotionRule> {\n\t\treturn this.resources.retrieve<SkuListPromotionRule>({ type: SkuListPromotionRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuListPromotionRuleUpdate, options?: ResourcesConfig): Promise<SkuListPromotionRule> {\n\t\treturn this.resources.update({ ...resource, type: SkuListPromotionRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: SkuListPromotionRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSkuListPromotionRule(resource: any): resource is SkuListPromotionRule {\n\t\treturn resource.type && (resource.type === SkuListPromotionRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(SkuListPromotionRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(SkuListPromotionRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuListPromotionRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: SkuListPromotionRules.TYPE } : {id: id.id, type: SkuListPromotionRules.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn SkuListPromotionRules.TYPE\n\t}\n\n}\n\n\nexport default SkuListPromotionRules\n\nexport { SkuListPromotionRule, SkuListPromotionRuleCreate, SkuListPromotionRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Sku } from './skus'\nimport { SkuListItem } from './sku_list_items'\nimport { Bundle } from './bundles'\n\n\ntype SkuListRel = ResourceId & { type: typeof SkuLists.TYPE }\n\n\ninterface SkuList extends Resource {\n\t\n\tname?: string\n\tslug?: string\n\tdescription?: string\n\timage_url?: string\n\tmanual?: boolean\n\tsku_code_regex?: string\n\n\tskus?: Sku[]\n\tsku_list_items?: SkuListItem[]\n\tbundles?: Bundle[]\n\n}\n\n\ninterface SkuListCreate extends ResourceCreate {\n\t\n\tname: string\n\tdescription?: string\n\timage_url?: string\n\tmanual?: boolean\n\tsku_code_regex?: string\n\t\n}\n\n\ninterface SkuListUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tmanual?: boolean\n\tsku_code_regex?: string\n\t\n}\n\n\nclass SkuLists extends ApiResource {\n\n\tstatic readonly TYPE: 'sku_lists' = 'sku_lists'\n\t// static readonly PATH = 'sku_lists'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<SkuList>> {\n\t\treturn this.resources.list({ type: SkuLists.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuListCreate, options?: ResourcesConfig): Promise<SkuList> {\n\t\treturn this.resources.create({ ...resource, type: SkuLists.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<SkuList> {\n\t\treturn this.resources.retrieve<SkuList>({ type: SkuLists.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuListUpdate, options?: ResourcesConfig): Promise<SkuList> {\n\t\treturn this.resources.update({ ...resource, type: SkuLists.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: SkuLists.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSkuList(resource: any): resource is SkuList {\n\t\treturn resource.type && (resource.type === SkuLists.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(SkuLists.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(SkuLists.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuListRel {\n\t\treturn (typeof id === 'string') ? { id, type: SkuLists.TYPE } : {id: id.id, type: SkuLists.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn SkuLists.TYPE\n\t}\n\n}\n\n\nexport default SkuLists\n\nexport { SkuList, SkuListCreate, SkuListUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype SkuOptionRel = ResourceId & { type: typeof SkuOptions.TYPE }\ntype MarketRel = ResourceId & { type: 'markets' }\n\n\ninterface SkuOption extends Resource {\n\t\n\tname?: string\n\tdescription?: string\n\tprice_amount_cents?: number\n\tprice_amount_float?: number\n\tformatted_price_amount?: string\n\tdelay_hours?: number\n\tdelay_days?: number\n\tsku_code_regex?: string\n\n\tmarket?: Market\n\tattachments?: Attachment[]\n\n}\n\n\ninterface SkuOptionCreate extends ResourceCreate {\n\t\n\tname: string\n\tdescription?: string\n\tprice_amount_cents?: number\n\tdelay_hours?: number\n\tsku_code_regex?: string\n\n\tmarket?: MarketRel\n\n}\n\n\ninterface SkuOptionUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tdescription?: string\n\tprice_amount_cents?: number\n\tdelay_hours?: number\n\tsku_code_regex?: string\n\n\tmarket?: MarketRel\n\n}\n\n\nclass SkuOptions extends ApiResource {\n\n\tstatic readonly TYPE: 'sku_options' = 'sku_options'\n\t// static readonly PATH = 'sku_options'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<SkuOption>> {\n\t\treturn this.resources.list({ type: SkuOptions.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuOptionCreate, options?: ResourcesConfig): Promise<SkuOption> {\n\t\treturn this.resources.create({ ...resource, type: SkuOptions.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<SkuOption> {\n\t\treturn this.resources.retrieve<SkuOption>({ type: SkuOptions.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuOptionUpdate, options?: ResourcesConfig): Promise<SkuOption> {\n\t\treturn this.resources.update({ ...resource, type: SkuOptions.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: SkuOptions.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSkuOption(resource: any): resource is SkuOption {\n\t\treturn resource.type && (resource.type === SkuOptions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(SkuOptions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(SkuOptions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuOptionRel {\n\t\treturn (typeof id === 'string') ? { id, type: SkuOptions.TYPE } : {id: id.id, type: SkuOptions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn SkuOptions.TYPE\n\t}\n\n}\n\n\nexport default SkuOptions\n\nexport { SkuOption, SkuOptionCreate, SkuOptionUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { ShippingCategory } from './shipping_categories'\nimport { Price } from './prices'\nimport { StockItem } from './stock_items'\nimport { DeliveryLeadTime } from './delivery_lead_times'\nimport { SkuOption } from './sku_options'\nimport { Attachment } from './attachments'\n\n\ntype SkuRel = ResourceId & { type: typeof Skus.TYPE }\ntype ShippingCategoryRel = ResourceId & { type: 'shipping_categories' }\n\n\ninterface Sku extends Resource {\n\t\n\tcode?: string\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tpieces_per_pack?: number\n\tweight?: number\n\tunit_of_weight?: string\n\ths_tariff_number?: string\n\tdo_not_ship?: boolean\n\tdo_not_track?: boolean\n\tinventory?: object\n\n\tshipping_category?: ShippingCategory\n\tprices?: Price[]\n\tstock_items?: StockItem[]\n\tdelivery_lead_times?: DeliveryLeadTime[]\n\tsku_options?: SkuOption[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface SkuCreate extends ResourceCreate {\n\t\n\tcode: string\n\tname: string\n\tdescription?: string\n\timage_url?: string\n\tpieces_per_pack?: number\n\tweight?: number\n\tunit_of_weight?: string\n\ths_tariff_number?: string\n\tdo_not_ship?: boolean\n\tdo_not_track?: boolean\n\n\tshipping_category?: ShippingCategoryRel\n\n}\n\n\ninterface SkuUpdate extends ResourceUpdate {\n\t\n\tcode?: string\n\tname?: string\n\tdescription?: string\n\timage_url?: string\n\tpieces_per_pack?: number\n\tweight?: number\n\tunit_of_weight?: string\n\ths_tariff_number?: string\n\tdo_not_ship?: boolean\n\tdo_not_track?: boolean\n\n\tshipping_category?: ShippingCategoryRel\n\n}\n\n\nclass Skus extends ApiResource {\n\n\tstatic readonly TYPE: 'skus' = 'skus'\n\t// static readonly PATH = 'skus'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Sku>> {\n\t\treturn this.resources.list({ type: Skus.TYPE }, params, options)\n\t}\n\n\tasync create(resource: SkuCreate, options?: ResourcesConfig): Promise<Sku> {\n\t\treturn this.resources.create({ ...resource, type: Skus.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Sku> {\n\t\treturn this.resources.retrieve<Sku>({ type: Skus.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: SkuUpdate, options?: ResourcesConfig): Promise<Sku> {\n\t\treturn this.resources.update({ ...resource, type: Skus.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Skus.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisSku(resource: any): resource is Sku {\n\t\treturn resource.type && (resource.type === Skus.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Skus.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Skus.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): SkuRel {\n\t\treturn (typeof id === 'string') ? { id, type: Skus.TYPE } : {id: id.id, type: Skus.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Skus.TYPE\n\t}\n\n}\n\n\nexport default Skus\n\nexport { Sku, SkuCreate, SkuUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { StockLocation } from './stock_locations'\nimport { Sku } from './skus'\nimport { Attachment } from './attachments'\n\n\ntype StockItemRel = ResourceId & { type: typeof StockItems.TYPE }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype SkuRel = ResourceId & { type: 'skus' }\n\n\ninterface StockItem extends Resource {\n\t\n\tsku_code?: string\n\tquantity?: number\n\n\tstock_location?: StockLocation\n\tsku?: Sku\n\tattachments?: Attachment[]\n\n}\n\n\ninterface StockItemCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tquantity: number\n\n\tstock_location?: StockLocationRel\n\tsku?: SkuRel\n\n}\n\n\ninterface StockItemUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\tquantity?: number\n\n\tstock_location?: StockLocationRel\n\tsku?: SkuRel\n\n}\n\n\nclass StockItems extends ApiResource {\n\n\tstatic readonly TYPE: 'stock_items' = 'stock_items'\n\t// static readonly PATH = 'stock_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StockItem>> {\n\t\treturn this.resources.list({ type: StockItems.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StockItemCreate, options?: ResourcesConfig): Promise<StockItem> {\n\t\treturn this.resources.create({ ...resource, type: StockItems.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StockItem> {\n\t\treturn this.resources.retrieve<StockItem>({ type: StockItems.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StockItemUpdate, options?: ResourcesConfig): Promise<StockItem> {\n\t\treturn this.resources.update({ ...resource, type: StockItems.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StockItems.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStockItem(resource: any): resource is StockItem {\n\t\treturn resource.type && (resource.type === StockItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StockItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StockItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StockItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: StockItems.TYPE } : {id: id.id, type: StockItems.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn StockItems.TYPE\n\t}\n\n}\n\n\nexport default StockItems\n\nexport { StockItem, StockItemCreate, StockItemUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Shipment } from './shipments'\nimport { LineItem } from './line_items'\nimport { StockItem } from './stock_items'\n\n\ntype StockLineItemRel = ResourceId & { type: typeof StockLineItems.TYPE }\n\n\ninterface StockLineItem extends Resource {\n\t\n\tsku_code?: string\n\tbundle_code?: string\n\tquantity?: number\n\n\tshipment?: Shipment\n\tline_item?: LineItem\n\tstock_item?: StockItem\n\n}\n\n\nclass StockLineItems extends ApiResource {\n\n\tstatic readonly TYPE: 'stock_line_items' = 'stock_line_items'\n\t// static readonly PATH = 'stock_line_items'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StockLineItem>> {\n\t\treturn this.resources.list({ type: StockLineItems.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StockLineItem> {\n\t\treturn this.resources.retrieve<StockLineItem>({ type: StockLineItems.TYPE, id }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStockLineItem(resource: any): resource is StockLineItem {\n\t\treturn resource.type && (resource.type === StockLineItems.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StockLineItems.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StockLineItems.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StockLineItemRel {\n\t\treturn (typeof id === 'string') ? { id, type: StockLineItems.TYPE } : {id: id.id, type: StockLineItems.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn StockLineItems.TYPE\n\t}\n\n}\n\n\nexport default StockLineItems\n\nexport { StockLineItem }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Address } from './addresses'\nimport { InventoryStockLocation } from './inventory_stock_locations'\nimport { InventoryReturnLocation } from './inventory_return_locations'\nimport { StockItem } from './stock_items'\nimport { StockTransfer } from './stock_transfers'\nimport { Attachment } from './attachments'\n\n\ntype StockLocationRel = ResourceId & { type: typeof StockLocations.TYPE }\ntype AddressRel = ResourceId & { type: 'addresses' }\n\n\ninterface StockLocation extends Resource {\n\t\n\tnumber?: number\n\tname?: string\n\tlabel_format?: string\n\tsuppress_etd?: boolean\n\n\taddress?: Address\n\tinventory_stock_locations?: InventoryStockLocation[]\n\tinventory_return_locations?: InventoryReturnLocation[]\n\tstock_items?: StockItem[]\n\tstock_transfers?: StockTransfer[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface StockLocationCreate extends ResourceCreate {\n\t\n\tname: string\n\tlabel_format?: string\n\tsuppress_etd?: boolean\n\n\taddress?: AddressRel\n\n}\n\n\ninterface StockLocationUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tlabel_format?: string\n\tsuppress_etd?: boolean\n\n\taddress?: AddressRel\n\n}\n\n\nclass StockLocations extends ApiResource {\n\n\tstatic readonly TYPE: 'stock_locations' = 'stock_locations'\n\t// static readonly PATH = 'stock_locations'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StockLocation>> {\n\t\treturn this.resources.list({ type: StockLocations.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StockLocationCreate, options?: ResourcesConfig): Promise<StockLocation> {\n\t\treturn this.resources.create({ ...resource, type: StockLocations.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StockLocation> {\n\t\treturn this.resources.retrieve<StockLocation>({ type: StockLocations.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StockLocationUpdate, options?: ResourcesConfig): Promise<StockLocation> {\n\t\treturn this.resources.update({ ...resource, type: StockLocations.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StockLocations.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStockLocation(resource: any): resource is StockLocation {\n\t\treturn resource.type && (resource.type === StockLocations.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StockLocations.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StockLocations.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StockLocationRel {\n\t\treturn (typeof id === 'string') ? { id, type: StockLocations.TYPE } : {id: id.id, type: StockLocations.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn StockLocations.TYPE\n\t}\n\n}\n\n\nexport default StockLocations\n\nexport { StockLocation, StockLocationCreate, StockLocationUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Sku } from './skus'\nimport { StockLocation } from './stock_locations'\nimport { Shipment } from './shipments'\nimport { LineItem } from './line_items'\n\n\ntype StockTransferRel = ResourceId & { type: typeof StockTransfers.TYPE }\ntype SkuRel = ResourceId & { type: 'skus' }\ntype StockLocationRel = ResourceId & { type: 'stock_locations' }\ntype ShipmentRel = ResourceId & { type: 'shipments' }\ntype LineItemRel = ResourceId & { type: 'line_items' }\n\n\ninterface StockTransfer extends Resource {\n\t\n\tsku_code?: string\n\tstatus?: string\n\tquantity?: number\n\tcompleted_at?: string\n\tcancelled_at?: string\n\n\tsku?: Sku\n\torigin_stock_location?: StockLocation\n\tdestination_stock_location?: StockLocation\n\tshipment?: Shipment\n\tline_item?: LineItem\n\n}\n\n\ninterface StockTransferCreate extends ResourceCreate {\n\t\n\tsku_code?: string\n\tquantity: number\n\n\tsku?: SkuRel\n\torigin_stock_location?: StockLocationRel\n\tdestination_stock_location?: StockLocationRel\n\tshipment?: ShipmentRel\n\tline_item?: LineItemRel\n\n}\n\n\ninterface StockTransferUpdate extends ResourceUpdate {\n\t\n\tsku_code?: string\n\t_upcoming?: boolean\n\t_picking?: boolean\n\t_in_transit?: boolean\n\t_complete?: boolean\n\t_cancel?: boolean\n\n\tsku?: SkuRel\n\torigin_stock_location?: StockLocationRel\n\tdestination_stock_location?: StockLocationRel\n\n}\n\n\nclass StockTransfers extends ApiResource {\n\n\tstatic readonly TYPE: 'stock_transfers' = 'stock_transfers'\n\t// static readonly PATH = 'stock_transfers'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StockTransfer>> {\n\t\treturn this.resources.list({ type: StockTransfers.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StockTransferCreate, options?: ResourcesConfig): Promise<StockTransfer> {\n\t\treturn this.resources.create({ ...resource, type: StockTransfers.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StockTransfer> {\n\t\treturn this.resources.retrieve<StockTransfer>({ type: StockTransfers.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StockTransferUpdate, options?: ResourcesConfig): Promise<StockTransfer> {\n\t\treturn this.resources.update({ ...resource, type: StockTransfers.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StockTransfers.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStockTransfer(resource: any): resource is StockTransfer {\n\t\treturn resource.type && (resource.type === StockTransfers.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StockTransfers.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StockTransfers.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StockTransferRel {\n\t\treturn (typeof id === 'string') ? { id, type: StockTransfers.TYPE } : {id: id.id, type: StockTransfers.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn StockTransfers.TYPE\n\t}\n\n}\n\n\nexport default StockTransfers\n\nexport { StockTransfer, StockTransferCreate, StockTransferUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { PaymentMethod } from './payment_methods'\nimport { StripePayment } from './stripe_payments'\n\n\ntype StripeGatewayRel = ResourceId & { type: typeof StripeGateways.TYPE }\n\n\ninterface StripeGateway extends Resource {\n\t\n\tname?: string\n\twebhook_endpoint_id?: string\n\twebhook_endpoint_secret?: string\n\twebhook_endpoint_url?: string\n\n\tpayment_methods?: PaymentMethod[]\n\tstripe_payments?: StripePayment[]\n\n}\n\n\ninterface StripeGatewayCreate extends ResourceCreate {\n\t\n\tname: string\n\tlogin: string\n\tpublishable_key?: string\n\t\n}\n\n\ninterface StripeGatewayUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\t\n}\n\n\nclass StripeGateways extends ApiResource {\n\n\tstatic readonly TYPE: 'stripe_gateways' = 'stripe_gateways'\n\t// static readonly PATH = 'stripe_gateways'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StripeGateway>> {\n\t\treturn this.resources.list({ type: StripeGateways.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StripeGatewayCreate, options?: ResourcesConfig): Promise<StripeGateway> {\n\t\treturn this.resources.create({ ...resource, type: StripeGateways.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StripeGateway> {\n\t\treturn this.resources.retrieve<StripeGateway>({ type: StripeGateways.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StripeGatewayUpdate, options?: ResourcesConfig): Promise<StripeGateway> {\n\t\treturn this.resources.update({ ...resource, type: StripeGateways.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StripeGateways.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStripeGateway(resource: any): resource is StripeGateway {\n\t\treturn resource.type && (resource.type === StripeGateways.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StripeGateways.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StripeGateways.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StripeGatewayRel {\n\t\treturn (typeof id === 'string') ? { id, type: StripeGateways.TYPE } : {id: id.id, type: StripeGateways.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn StripeGateways.TYPE\n\t}\n\n}\n\n\nexport default StripeGateways\n\nexport { StripeGateway, StripeGatewayCreate, StripeGatewayUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { PaymentGateway } from './payment_gateways'\n\n\ntype StripePaymentRel = ResourceId & { type: typeof StripePayments.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface StripePayment extends Resource {\n\t\n\tclient_secret?: string\n\tpublishable_key?: string\n\toptions?: object\n\tpayment_method?: object\n\n\torder?: Order\n\tpayment_gateway?: PaymentGateway\n\n}\n\n\ninterface StripePaymentCreate extends ResourceCreate {\n\t\n\toptions?: object\n\n\torder?: OrderRel\n\n}\n\n\ninterface StripePaymentUpdate extends ResourceUpdate {\n\t\n\toptions?: object\n\t_refresh?: boolean\n\n\torder?: OrderRel\n\n}\n\n\nclass StripePayments extends ApiResource {\n\n\tstatic readonly TYPE: 'stripe_payments' = 'stripe_payments'\n\t// static readonly PATH = 'stripe_payments'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<StripePayment>> {\n\t\treturn this.resources.list({ type: StripePayments.TYPE }, params, options)\n\t}\n\n\tasync create(resource: StripePaymentCreate, options?: ResourcesConfig): Promise<StripePayment> {\n\t\treturn this.resources.create({ ...resource, type: StripePayments.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<StripePayment> {\n\t\treturn this.resources.retrieve<StripePayment>({ type: StripePayments.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: StripePaymentUpdate, options?: ResourcesConfig): Promise<StripePayment> {\n\t\treturn this.resources.update({ ...resource, type: StripePayments.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: StripePayments.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisStripePayment(resource: any): resource is StripePayment {\n\t\treturn resource.type && (resource.type === StripePayments.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(StripePayments.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(StripePayments.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): StripePaymentRel {\n\t\treturn (typeof id === 'string') ? { id, type: StripePayments.TYPE } : {id: id.id, type: StripePayments.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn StripePayments.TYPE\n\t}\n\n}\n\n\nexport default StripePayments\n\nexport { StripePayment, StripePaymentCreate, StripePaymentUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype TaxCalculatorRel = ResourceId & { type: typeof TaxCalculators.TYPE }\n\n\ninterface TaxCalculator extends Resource {\n\t\n\tname?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\nclass TaxCalculators extends ApiResource {\n\n\tstatic readonly TYPE: 'tax_calculators' = 'tax_calculators'\n\t// static readonly PATH = 'tax_calculators'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<TaxCalculator>> {\n\t\treturn this.resources.list({ type: TaxCalculators.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTaxCalculator(resource: any): resource is TaxCalculator {\n\t\treturn resource.type && (resource.type === TaxCalculators.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(TaxCalculators.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(TaxCalculators.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TaxCalculatorRel {\n\t\treturn (typeof id === 'string') ? { id, type: TaxCalculators.TYPE } : {id: id.id, type: TaxCalculators.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn TaxCalculators.TYPE\n\t}\n\n}\n\n\nexport default TaxCalculators\n\nexport { TaxCalculator }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Sku } from './skus'\nimport { AvalaraAccount } from './avalara_accounts'\nimport { TaxjarAccount } from './taxjar_accounts'\nimport { ManualTaxCalculator } from './manual_tax_calculators'\nimport { ExternalTaxCalculator } from './external_tax_calculators'\nimport { Attachment } from './attachments'\n\n\ntype TaxCategoryRel = ResourceId & { type: typeof TaxCategories.TYPE }\ntype SkuRel = ResourceId & { type: 'skus' }\ntype AvalaraAccountRel = ResourceId & { type: 'avalara_accounts' }\ntype TaxjarAccountRel = ResourceId & { type: 'taxjar_accounts' }\ntype ManualTaxCalculatorRel = ResourceId & { type: 'manual_tax_calculators' }\ntype ExternalTaxCalculatorRel = ResourceId & { type: 'external_tax_calculators' }\n\n\ninterface TaxCategory extends Resource {\n\t\n\tcode?: string\n\tsku_code?: string\n\n\tsku?: Sku\n\ttax_calculator?: AvalaraAccount | TaxjarAccount | ManualTaxCalculator | ExternalTaxCalculator\n\tattachments?: Attachment[]\n\n}\n\n\ninterface TaxCategoryCreate extends ResourceCreate {\n\t\n\tcode: string\n\tsku_code?: string\n\n\tsku?: SkuRel\n\ttax_calculator?: AvalaraAccountRel | TaxjarAccountRel | ManualTaxCalculatorRel | ExternalTaxCalculatorRel\n\n}\n\n\ninterface TaxCategoryUpdate extends ResourceUpdate {\n\t\n\tcode?: string\n\tsku_code?: string\n\n\tsku?: SkuRel\n\n}\n\n\nclass TaxCategories extends ApiResource {\n\n\tstatic readonly TYPE: 'tax_categories' = 'tax_categories'\n\t// static readonly PATH = 'tax_categories'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<TaxCategory>> {\n\t\treturn this.resources.list({ type: TaxCategories.TYPE }, params, options)\n\t}\n\n\tasync create(resource: TaxCategoryCreate, options?: ResourcesConfig): Promise<TaxCategory> {\n\t\treturn this.resources.create({ ...resource, type: TaxCategories.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<TaxCategory> {\n\t\treturn this.resources.retrieve<TaxCategory>({ type: TaxCategories.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: TaxCategoryUpdate, options?: ResourcesConfig): Promise<TaxCategory> {\n\t\treturn this.resources.update({ ...resource, type: TaxCategories.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: TaxCategories.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTaxCategory(resource: any): resource is TaxCategory {\n\t\treturn resource.type && (resource.type === TaxCategories.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(TaxCategories.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(TaxCategories.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TaxCategoryRel {\n\t\treturn (typeof id === 'string') ? { id, type: TaxCategories.TYPE } : {id: id.id, type: TaxCategories.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn TaxCategories.TYPE\n\t}\n\n}\n\n\nexport default TaxCategories\n\nexport { TaxCategory, TaxCategoryCreate, TaxCategoryUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { ManualTaxCalculator } from './manual_tax_calculators'\n\n\ntype TaxRuleRel = ResourceId & { type: typeof TaxRules.TYPE }\ntype ManualTaxCalculatorRel = ResourceId & { type: 'manual_tax_calculators' }\n\n\ninterface TaxRule extends Resource {\n\t\n\tname?: string\n\ttax_rate?: number\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\tfreight_taxable?: boolean\n\tpayment_method_taxable?: boolean\n\tgift_card_taxable?: boolean\n\tadjustment_taxable?: boolean\n\tbreakdown?: object\n\n\tmanual_tax_calculator?: ManualTaxCalculator\n\n}\n\n\ninterface TaxRuleCreate extends ResourceCreate {\n\t\n\tname: string\n\ttax_rate?: number\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\tfreight_taxable?: boolean\n\tpayment_method_taxable?: boolean\n\tgift_card_taxable?: boolean\n\tadjustment_taxable?: boolean\n\n\tmanual_tax_calculator?: ManualTaxCalculatorRel\n\n}\n\n\ninterface TaxRuleUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\ttax_rate?: number\n\tcountry_code_regex?: string\n\tnot_country_code_regex?: string\n\tstate_code_regex?: string\n\tnot_state_code_regex?: string\n\tzip_code_regex?: string\n\tnot_zip_code_regex?: string\n\tfreight_taxable?: boolean\n\tpayment_method_taxable?: boolean\n\tgift_card_taxable?: boolean\n\tadjustment_taxable?: boolean\n\n\tmanual_tax_calculator?: ManualTaxCalculatorRel\n\n}\n\n\nclass TaxRules extends ApiResource {\n\n\tstatic readonly TYPE: 'tax_rules' = 'tax_rules'\n\t// static readonly PATH = 'tax_rules'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<TaxRule>> {\n\t\treturn this.resources.list({ type: TaxRules.TYPE }, params, options)\n\t}\n\n\tasync create(resource: TaxRuleCreate, options?: ResourcesConfig): Promise<TaxRule> {\n\t\treturn this.resources.create({ ...resource, type: TaxRules.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<TaxRule> {\n\t\treturn this.resources.retrieve<TaxRule>({ type: TaxRules.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: TaxRuleUpdate, options?: ResourcesConfig): Promise<TaxRule> {\n\t\treturn this.resources.update({ ...resource, type: TaxRules.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: TaxRules.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTaxRule(resource: any): resource is TaxRule {\n\t\treturn resource.type && (resource.type === TaxRules.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(TaxRules.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(TaxRules.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TaxRuleRel {\n\t\treturn (typeof id === 'string') ? { id, type: TaxRules.TYPE } : {id: id.id, type: TaxRules.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn TaxRules.TYPE\n\t}\n\n}\n\n\nexport default TaxRules\n\nexport { TaxRule, TaxRuleCreate, TaxRuleUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { TaxCategory } from './tax_categories'\nimport { Market } from './markets'\nimport { Attachment } from './attachments'\n\n\ntype TaxjarAccountRel = ResourceId & { type: typeof TaxjarAccounts.TYPE }\ntype TaxCategoryRel = ResourceId & { type: 'tax_categories' }\n\n\ninterface TaxjarAccount extends Resource {\n\t\n\tname?: string\n\n\ttax_categories?: TaxCategory[]\n\tmarkets?: Market[]\n\tattachments?: Attachment[]\n\n}\n\n\ninterface TaxjarAccountCreate extends ResourceCreate {\n\t\n\tname: string\n\tapi_key: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\ninterface TaxjarAccountUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\tapi_key?: string\n\n\ttax_categories?: TaxCategoryRel[]\n\n}\n\n\nclass TaxjarAccounts extends ApiResource {\n\n\tstatic readonly TYPE: 'taxjar_accounts' = 'taxjar_accounts'\n\t// static readonly PATH = 'taxjar_accounts'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<TaxjarAccount>> {\n\t\treturn this.resources.list({ type: TaxjarAccounts.TYPE }, params, options)\n\t}\n\n\tasync create(resource: TaxjarAccountCreate, options?: ResourcesConfig): Promise<TaxjarAccount> {\n\t\treturn this.resources.create({ ...resource, type: TaxjarAccounts.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<TaxjarAccount> {\n\t\treturn this.resources.retrieve<TaxjarAccount>({ type: TaxjarAccounts.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: TaxjarAccountUpdate, options?: ResourcesConfig): Promise<TaxjarAccount> {\n\t\treturn this.resources.update({ ...resource, type: TaxjarAccounts.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: TaxjarAccounts.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTaxjarAccount(resource: any): resource is TaxjarAccount {\n\t\treturn resource.type && (resource.type === TaxjarAccounts.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(TaxjarAccounts.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(TaxjarAccounts.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TaxjarAccountRel {\n\t\treturn (typeof id === 'string') ? { id, type: TaxjarAccounts.TYPE } : {id: id.id, type: TaxjarAccounts.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn TaxjarAccounts.TYPE\n\t}\n\n}\n\n\nexport default TaxjarAccounts\n\nexport { TaxjarAccount, TaxjarAccountCreate, TaxjarAccountUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList } from '../query'\n\nimport { Order } from './orders'\n\n\ntype TransactionRel = ResourceId & { type: typeof Transactions.TYPE }\n\n\ninterface Transaction extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\n\torder?: Order\n\n}\n\n\nclass Transactions extends ApiResource {\n\n\tstatic readonly TYPE: 'transactions' = 'transactions'\n\t// static readonly PATH = 'transactions'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Transaction>> {\n\t\treturn this.resources.list({ type: Transactions.TYPE }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisTransaction(resource: any): resource is Transaction {\n\t\treturn resource.type && (resource.type === Transactions.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Transactions.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Transactions.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): TransactionRel {\n\t\treturn (typeof id === 'string') ? { id, type: Transactions.TYPE } : {id: id.id, type: Transactions.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Transactions.TYPE\n\t}\n\n}\n\n\nexport default Transactions\n\nexport { Transaction }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\nimport { Authorization } from './authorizations'\n\n\ntype VoidRel = ResourceId & { type: typeof Voids.TYPE }\n\n\ninterface Void extends Resource {\n\t\n\tnumber?: string\n\tcurrency_code?: string\n\tamount_cents?: number\n\tamount_float?: number\n\tformatted_amount?: string\n\tsucceeded?: boolean\n\tmessage?: string\n\terror_code?: string\n\terror_detail?: string\n\ttoken?: string\n\tgateway_transaction_id?: string\n\n\torder?: Order\n\treference_authorization?: Authorization\n\n}\n\n\nclass Voids extends ApiResource {\n\n\tstatic readonly TYPE: 'voids' = 'voids'\n\t// static readonly PATH = 'voids'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Void>> {\n\t\treturn this.resources.list({ type: Voids.TYPE }, params, options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Void> {\n\t\treturn this.resources.retrieve<Void>({ type: Voids.TYPE, id }, params, options)\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisVoid(resource: any): resource is Void {\n\t\treturn resource.type && (resource.type === Voids.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Voids.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Voids.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): VoidRel {\n\t\treturn (typeof id === 'string') ? { id, type: Voids.TYPE } : {id: id.id, type: Voids.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Voids.TYPE\n\t}\n\n}\n\n\nexport default Voids\n\nexport { Void }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { EventCallback } from './event_callbacks'\n\n\ntype WebhookRel = ResourceId & { type: typeof Webhooks.TYPE }\n\n\ninterface Webhook extends Resource {\n\t\n\tname?: string\n\ttopic?: string\n\tcallback_url?: string\n\tinclude_resources?: string[]\n\tcircuit_state?: string\n\tcircuit_failure_count?: number\n\n\tlast_event_callbacks?: EventCallback[]\n\n}\n\n\ninterface WebhookCreate extends ResourceCreate {\n\t\n\tname?: string\n\ttopic: string\n\tcallback_url: string\n\tinclude_resources?: string[]\n\t\n}\n\n\ninterface WebhookUpdate extends ResourceUpdate {\n\t\n\tname?: string\n\ttopic?: string\n\tcallback_url?: string\n\tinclude_resources?: string[]\n\t_reset_circuit?: boolean\n\t\n}\n\n\nclass Webhooks extends ApiResource {\n\n\tstatic readonly TYPE: 'webhooks' = 'webhooks'\n\t// static readonly PATH = 'webhooks'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<Webhook>> {\n\t\treturn this.resources.list({ type: Webhooks.TYPE }, params, options)\n\t}\n\n\tasync create(resource: WebhookCreate, options?: ResourcesConfig): Promise<Webhook> {\n\t\treturn this.resources.create({ ...resource, type: Webhooks.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<Webhook> {\n\t\treturn this.resources.retrieve<Webhook>({ type: Webhooks.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: WebhookUpdate, options?: ResourcesConfig): Promise<Webhook> {\n\t\treturn this.resources.update({ ...resource, type: Webhooks.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: Webhooks.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisWebhook(resource: any): resource is Webhook {\n\t\treturn resource.type && (resource.type === Webhooks.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(Webhooks.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(Webhooks.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): WebhookRel {\n\t\treturn (typeof id === 'string') ? { id, type: Webhooks.TYPE } : {id: id.id, type: Webhooks.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn Webhooks.TYPE\n\t}\n\n}\n\n\nexport default Webhooks\n\nexport { Webhook, WebhookCreate, WebhookUpdate }\n","/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\n\nimport { ApiResource, Resource, ResourceCreate, ResourceUpdate, ResourcesConfig, ResourceId, ListResponse } from '../resource'\nimport { /* QueryBuilderRetrieve, QueryBuilderList, */QueryParamsList, QueryParamsRetrieve } from '../query'\n\nimport { Order } from './orders'\n\n\ntype WireTransferRel = ResourceId & { type: typeof WireTransfers.TYPE }\ntype OrderRel = ResourceId & { type: 'orders' }\n\n\ninterface WireTransfer extends Resource {\n\t\n\torder?: Order\n\n}\n\n\ninterface WireTransferCreate extends ResourceCreate {\n\t\n\torder?: OrderRel\n\n}\n\n\ninterface WireTransferUpdate extends ResourceUpdate {\n\t\n\torder?: OrderRel\n\n}\n\n\nclass WireTransfers extends ApiResource {\n\n\tstatic readonly TYPE: 'wire_transfers' = 'wire_transfers'\n\t// static readonly PATH = 'wire_transfers'\n\n\tasync list(params?: QueryParamsList, options?: ResourcesConfig): Promise<ListResponse<WireTransfer>> {\n\t\treturn this.resources.list({ type: WireTransfers.TYPE }, params, options)\n\t}\n\n\tasync create(resource: WireTransferCreate, options?: ResourcesConfig): Promise<WireTransfer> {\n\t\treturn this.resources.create({ ...resource, type: WireTransfers.TYPE } , options)\n\t}\n\n\tasync retrieve(id: string, params?: QueryParamsRetrieve, options?: ResourcesConfig): Promise<WireTransfer> {\n\t\treturn this.resources.retrieve<WireTransfer>({ type: WireTransfers.TYPE, id }, params, options)\n\t}\n\n\tasync update(resource: WireTransferUpdate, options?: ResourcesConfig): Promise<WireTransfer> {\n\t\treturn this.resources.update({ ...resource, type: WireTransfers.TYPE }, options)\n\t}\n\n\tasync delete(id: string, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete({ type: WireTransfers.TYPE, id }, options)\n\t}\n\t\n\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisWireTransfer(resource: any): resource is WireTransfer {\n\t\treturn resource.type && (resource.type === WireTransfers.TYPE)\n\t}\n\n\t/*\n\tfilter(): QueryBuilderRetrieve {\n\t\treturn new QueryBuilderRetrieve(WireTransfers.TYPE)\n\t}\n\t*/\n\n\t/*\n\tfilterList(): QueryBuilderList {\n\t\treturn new QueryBuilderList(WireTransfers.TYPE)\n\t}\n\t*/\n\n\trelationship(id: string | ResourceId): WireTransferRel {\n\t\treturn (typeof id === 'string') ? { id, type: WireTransfers.TYPE } : {id: id.id, type: WireTransfers.TYPE }\n\t}\n\n\ttype(): string {\n\t\treturn WireTransfers.TYPE\n\t}\n\n}\n\n\nexport default WireTransfers\n\nexport { WireTransfer, WireTransferCreate, WireTransferUpdate }\n","\n// ##__API_RESOURCES_START__##\n// ##__API_RESOURCES_TEMPLATE:: export { default as ##__RESOURCE_CLASS__## } from './resources/##__RESOURCE_TYPE__##'\n/**\n * ©2021 Commerce Layer Inc.\n * Source code generated automatically by SDK codegen from OpenAPI schema 2.7.3\n **/\nexport { default as Addresses } from './resources/addresses'\nexport { default as Adjustments } from './resources/adjustments'\nexport { default as AdyenGateways } from './resources/adyen_gateways'\nexport { default as AdyenPayments } from './resources/adyen_payments'\nexport { default as Applications } from './resources/application'\nexport { default as Attachments } from './resources/attachments'\nexport { default as Authorizations } from './resources/authorizations'\nexport { default as AvalaraAccounts } from './resources/avalara_accounts'\nexport { default as BillingInfoValidationRules } from './resources/billing_info_validation_rules'\nexport { default as BingGeocoders } from './resources/bing_geocoders'\nexport { default as BraintreeGateways } from './resources/braintree_gateways'\nexport { default as BraintreePayments } from './resources/braintree_payments'\nexport { default as Bundles } from './resources/bundles'\nexport { default as Captures } from './resources/captures'\nexport { default as CarrierAccounts } from './resources/carrier_accounts'\nexport { default as CheckoutComGateways } from './resources/checkout_com_gateways'\nexport { default as CheckoutComPayments } from './resources/checkout_com_payments'\nexport { default as CouponCodesPromotionRules } from './resources/coupon_codes_promotion_rules'\nexport { default as CouponRecipients } from './resources/coupon_recipients'\nexport { default as Coupons } from './resources/coupons'\nexport { default as CustomerAddresses } from './resources/customer_addresses'\nexport { default as CustomerGroups } from './resources/customer_groups'\nexport { default as CustomerPasswordResets } from './resources/customer_password_resets'\nexport { default as CustomerPaymentSources } from './resources/customer_payment_sources'\nexport { default as CustomerSubscriptions } from './resources/customer_subscriptions'\nexport { default as Customers } from './resources/customers'\nexport { default as DeliveryLeadTimes } from './resources/delivery_lead_times'\nexport { default as EventCallbacks } from './resources/event_callbacks'\nexport { default as ExternalGateways } from './resources/external_gateways'\nexport { default as ExternalPayments } from './resources/external_payments'\nexport { default as ExternalPromotions } from './resources/external_promotions'\nexport { default as ExternalTaxCalculators } from './resources/external_tax_calculators'\nexport { default as FixedAmountPromotions } from './resources/fixed_amount_promotions'\nexport { default as FixedPricePromotions } from './resources/fixed_price_promotions'\nexport { default as FreeGiftPromotions } from './resources/free_gift_promotions'\nexport { default as FreeShippingPromotions } from './resources/free_shipping_promotions'\nexport { default as Geocoders } from './resources/geocoders'\nexport { default as GiftCardRecipients } from './resources/gift_card_recipients'\nexport { default as GiftCards } from './resources/gift_cards'\nexport { default as GoogleGeocoders } from './resources/google_geocoders'\nexport { default as Imports } from './resources/imports'\nexport { default as InStockSubscriptions } from './resources/in_stock_subscriptions'\nexport { default as InventoryModels } from './resources/inventory_models'\nexport { default as InventoryReturnLocations } from './resources/inventory_return_locations'\nexport { default as InventoryStockLocations } from './resources/inventory_stock_locations'\nexport { default as LineItemOptions } from './resources/line_item_options'\nexport { default as LineItems } from './resources/line_items'\nexport { default as ManualGateways } from './resources/manual_gateways'\nexport { default as ManualTaxCalculators } from './resources/manual_tax_calculators'\nexport { default as Markets } from './resources/markets'\nexport { default as Merchants } from './resources/merchants'\nexport { default as OrderAmountPromotionRules } from './resources/order_amount_promotion_rules'\nexport { default as OrderCopies } from './resources/order_copies'\nexport { default as OrderSubscriptions } from './resources/order_subscriptions'\nexport { default as OrderValidationRules } from './resources/order_validation_rules'\nexport { default as Orders } from './resources/orders'\nexport { default as Organizations } from './resources/organization'\nexport { default as Packages } from './resources/packages'\nexport { default as ParcelLineItems } from './resources/parcel_line_items'\nexport { default as Parcels } from './resources/parcels'\nexport { default as PaymentGateways } from './resources/payment_gateways'\nexport { default as PaymentMethods } from './resources/payment_methods'\nexport { default as PaypalGateways } from './resources/paypal_gateways'\nexport { default as PaypalPayments } from './resources/paypal_payments'\nexport { default as PercentageDiscountPromotions } from './resources/percentage_discount_promotions'\nexport { default as PriceLists } from './resources/price_lists'\nexport { default as Prices } from './resources/prices'\nexport { default as PromotionRules } from './resources/promotion_rules'\nexport { default as Promotions } from './resources/promotions'\nexport { default as Refunds } from './resources/refunds'\nexport { default as ReturnLineItems } from './resources/return_line_items'\nexport { default as Returns } from './resources/returns'\nexport { default as Shipments } from './resources/shipments'\nexport { default as ShippingCategories } from './resources/shipping_categories'\nexport { default as ShippingMethods } from './resources/shipping_methods'\nexport { default as ShippingZones } from './resources/shipping_zones'\nexport { default as SkuListItems } from './resources/sku_list_items'\nexport { default as SkuListPromotionRules } from './resources/sku_list_promotion_rules'\nexport { default as SkuLists } from './resources/sku_lists'\nexport { default as SkuOptions } from './resources/sku_options'\nexport { default as Skus } from './resources/skus'\nexport { default as StockItems } from './resources/stock_items'\nexport { default as StockLineItems } from './resources/stock_line_items'\nexport { default as StockLocations } from './resources/stock_locations'\nexport { default as StockTransfers } from './resources/stock_transfers'\nexport { default as StripeGateways } from './resources/stripe_gateways'\nexport { default as StripePayments } from './resources/stripe_payments'\nexport { default as TaxCalculators } from './resources/tax_calculators'\nexport { default as TaxCategories } from './resources/tax_categories'\nexport { default as TaxRules } from './resources/tax_rules'\nexport { default as TaxjarAccounts } from './resources/taxjar_accounts'\nexport { default as Transactions } from './resources/transactions'\nexport { default as Voids } from './resources/voids'\nexport { default as Webhooks } from './resources/webhooks'\nexport { default as WireTransfers } from './resources/wire_transfers'\n// ##__API_RESOURCES_STOP__##\n\n\nexport type ResourceTypeLock =\n// ##__API_RESOURCE_TYPES_START__##\n\t'addresses'\n|\t'adjustments'\n|\t'adyen_gateways'\n|\t'adyen_payments'\n|\t'application'\n|\t'attachments'\n|\t'authorizations'\n|\t'avalara_accounts'\n|\t'billing_info_validation_rules'\n|\t'bing_geocoders'\n|\t'braintree_gateways'\n|\t'braintree_payments'\n|\t'bundles'\n|\t'captures'\n|\t'carrier_accounts'\n|\t'checkout_com_gateways'\n|\t'checkout_com_payments'\n|\t'coupon_codes_promotion_rules'\n|\t'coupon_recipients'\n|\t'coupons'\n|\t'customer_addresses'\n|\t'customer_groups'\n|\t'customer_password_resets'\n|\t'customer_payment_sources'\n|\t'customer_subscriptions'\n|\t'customers'\n|\t'delivery_lead_times'\n|\t'event_callbacks'\n|\t'external_gateways'\n|\t'external_payments'\n|\t'external_promotions'\n|\t'external_tax_calculators'\n|\t'fixed_amount_promotions'\n|\t'fixed_price_promotions'\n|\t'free_gift_promotions'\n|\t'free_shipping_promotions'\n|\t'geocoders'\n|\t'gift_card_recipients'\n|\t'gift_cards'\n|\t'google_geocoders'\n|\t'imports'\n|\t'in_stock_subscriptions'\n|\t'inventory_models'\n|\t'inventory_return_locations'\n|\t'inventory_stock_locations'\n|\t'line_item_options'\n|\t'line_items'\n|\t'manual_gateways'\n|\t'manual_tax_calculators'\n|\t'markets'\n|\t'merchants'\n|\t'order_amount_promotion_rules'\n|\t'order_copies'\n|\t'order_subscriptions'\n|\t'order_validation_rules'\n|\t'orders'\n|\t'organization'\n|\t'packages'\n|\t'parcel_line_items'\n|\t'parcels'\n|\t'payment_gateways'\n|\t'payment_methods'\n|\t'paypal_gateways'\n|\t'paypal_payments'\n|\t'percentage_discount_promotions'\n|\t'price_lists'\n|\t'prices'\n|\t'promotion_rules'\n|\t'promotions'\n|\t'refunds'\n|\t'return_line_items'\n|\t'returns'\n|\t'shipments'\n|\t'shipping_categories'\n|\t'shipping_methods'\n|\t'shipping_zones'\n|\t'sku_list_items'\n|\t'sku_list_promotion_rules'\n|\t'sku_lists'\n|\t'sku_options'\n|\t'skus'\n|\t'stock_items'\n|\t'stock_line_items'\n|\t'stock_locations'\n|\t'stock_transfers'\n|\t'stripe_gateways'\n|\t'stripe_payments'\n|\t'tax_calculators'\n|\t'tax_categories'\n|\t'tax_rules'\n|\t'taxjar_accounts'\n|\t'transactions'\n|\t'voids'\n|\t'webhooks'\n|\t'wire_transfers'\n// ##__API_RESOURCE_TYPES_STOP__##\n\n\nexport const resourceList = [\n// ##__API_RESOURCE_LIST_START__##\n\t'addresses',\n\t'adjustments',\n\t'adyen_gateways',\n\t'adyen_payments',\n\t'application',\n\t'attachments',\n\t'authorizations',\n\t'avalara_accounts',\n\t'billing_info_validation_rules',\n\t'bing_geocoders',\n\t'braintree_gateways',\n\t'braintree_payments',\n\t'bundles',\n\t'captures',\n\t'carrier_accounts',\n\t'checkout_com_gateways',\n\t'checkout_com_payments',\n\t'coupon_codes_promotion_rules',\n\t'coupon_recipients',\n\t'coupons',\n\t'customer_addresses',\n\t'customer_groups',\n\t'customer_password_resets',\n\t'customer_payment_sources',\n\t'customer_subscriptions',\n\t'customers',\n\t'delivery_lead_times',\n\t'event_callbacks',\n\t'external_gateways',\n\t'external_payments',\n\t'external_promotions',\n\t'external_tax_calculators',\n\t'fixed_amount_promotions',\n\t'fixed_price_promotions',\n\t'free_gift_promotions',\n\t'free_shipping_promotions',\n\t'geocoders',\n\t'gift_card_recipients',\n\t'gift_cards',\n\t'google_geocoders',\n\t'imports',\n\t'in_stock_subscriptions',\n\t'inventory_models',\n\t'inventory_return_locations',\n\t'inventory_stock_locations',\n\t'line_item_options',\n\t'line_items',\n\t'manual_gateways',\n\t'manual_tax_calculators',\n\t'markets',\n\t'merchants',\n\t'order_amount_promotion_rules',\n\t'order_copies',\n\t'order_subscriptions',\n\t'order_validation_rules',\n\t'orders',\n\t'organization',\n\t'packages',\n\t'parcel_line_items',\n\t'parcels',\n\t'payment_gateways',\n\t'payment_methods',\n\t'paypal_gateways',\n\t'paypal_payments',\n\t'percentage_discount_promotions',\n\t'price_lists',\n\t'prices',\n\t'promotion_rules',\n\t'promotions',\n\t'refunds',\n\t'return_line_items',\n\t'returns',\n\t'shipments',\n\t'shipping_categories',\n\t'shipping_methods',\n\t'shipping_zones',\n\t'sku_list_items',\n\t'sku_list_promotion_rules',\n\t'sku_lists',\n\t'sku_options',\n\t'skus',\n\t'stock_items',\n\t'stock_line_items',\n\t'stock_locations',\n\t'stock_transfers',\n\t'stripe_gateways',\n\t'stripe_payments',\n\t'tax_calculators',\n\t'tax_categories',\n\t'tax_rules',\n\t'taxjar_accounts',\n\t'transactions',\n\t'voids',\n\t'webhooks',\n\t'wire_transfers'\n// ##__API_RESOURCE_LIST_STOP__##\n] as const\n\n\n/*\ntype ResourceInfo = {\n\tname: string;\n\ttype: string;\n\tapi: string;\n}\n\n\nexport const resourceMap: { [res: string]: ResourceInfo } = {\n\t// ##__API_RESOURCE_MAP_START__##\n\taddresses: { name: 'address', type: 'addresses', api: 'addresses' },\n\tadjustments: { name: 'adjustment', type: 'adjustments', api: 'adjustments' },\n\tadyen_gateways: { name: 'adyen_gateway', type: 'adyen_gateways', api: 'adyen_gateways' },\n\tadyen_payments: { name: 'adyen_payment', type: 'adyen_payments', api: 'adyen_payments' },\n\tapplication: { name: 'application', type: 'application', api: 'application' },\n\tattachments: { name: 'attachment', type: 'attachments', api: 'attachments' },\n\tauthorizations: { name: 'authorization', type: 'authorizations', api: 'authorizations' },\n\tavalara_accounts: { name: 'avalara_account', type: 'avalara_accounts', api: 'avalara_accounts' },\n\tbilling_info_validation_rules: { name: 'billing_info_validation_rule', type: 'billing_info_validation_rules', api: 'billing_info_validation_rules' },\n\tbing_geocoders: { name: 'bing_geocoder', type: 'bing_geocoders', api: 'bing_geocoders' },\n\tbraintree_gateways: { name: 'braintree_gateway', type: 'braintree_gateways', api: 'braintree_gateways' },\n\tbraintree_payments: { name: 'braintree_payment', type: 'braintree_payments', api: 'braintree_payments' },\n\tbundles: { name: 'bundle', type: 'bundles', api: 'bundles' },\n\tcaptures: { name: 'capture', type: 'captures', api: 'captures' },\n\tcarrier_accounts: { name: 'carrier_account', type: 'carrier_accounts', api: 'carrier_accounts' },\n\tcheckout_com_gateways: { name: 'checkout_com_gateway', type: 'checkout_com_gateways', api: 'checkout_com_gateways' },\n\tcheckout_com_payments: { name: 'checkout_com_payment', type: 'checkout_com_payments', api: 'checkout_com_payments' },\n\tcoupon_codes_promotion_rules: { name: 'coupon_codes_promotion_rule', type: 'coupon_codes_promotion_rules', api: 'coupon_codes_promotion_rules' },\n\tcoupons: { name: 'coupon', type: 'coupons', api: 'coupons' },\n\tcustomer_addresses: { name: 'customer_address', type: 'customer_addresses', api: 'customer_addresses' },\n\tcustomer_groups: { name: 'customer_group', type: 'customer_groups', api: 'customer_groups' },\n\tcustomer_password_resets: { name: 'customer_password_reset', type: 'customer_password_resets', api: 'customer_password_resets' },\n\tcustomer_payment_sources: { name: 'customer_payment_source', type: 'customer_payment_sources', api: 'customer_payment_sources' },\n\tcustomer_subscriptions: { name: 'customer_subscription', type: 'customer_subscriptions', api: 'customer_subscriptions' },\n\tcustomers: { name: 'customer', type: 'customers', api: 'customers' },\n\tdelivery_lead_times: { name: 'delivery_lead_time', type: 'delivery_lead_times', api: 'delivery_lead_times' },\n\texternal_gateways: { name: 'external_gateway', type: 'external_gateways', api: 'external_gateways' },\n\texternal_payments: { name: 'external_payment', type: 'external_payments', api: 'external_payments' },\n\texternal_promotions: { name: 'external_promotion', type: 'external_promotions', api: 'external_promotions' },\n\texternal_tax_calculators: { name: 'external_tax_calculator', type: 'external_tax_calculators', api: 'external_tax_calculators' },\n\tfixed_amount_promotions: { name: 'fixed_amount_promotion', type: 'fixed_amount_promotions', api: 'fixed_amount_promotions' },\n\tfree_shipping_promotions: { name: 'free_shipping_promotion', type: 'free_shipping_promotions', api: 'free_shipping_promotions' },\n\tgeocoders: { name: 'geocoder', type: 'geocoders', api: 'geocoders' },\n\tgift_card_recipients: { name: 'gift_card_recipient', type: 'gift_card_recipients', api: 'gift_card_recipients' },\n\tgift_cards: { name: 'gift_card', type: 'gift_cards', api: 'gift_cards' },\n\tgoogle_geocoders: { name: 'google_geocoder', type: 'google_geocoders', api: 'google_geocoders' },\n\timports: { name: 'import', type: 'imports', api: 'imports' },\n\tin_stock_subscriptions: { name: 'in_stock_subscription', type: 'in_stock_subscriptions', api: 'in_stock_subscriptions' },\n\tinventory_models: { name: 'inventory_model', type: 'inventory_models', api: 'inventory_models' },\n\tinventory_return_locations: { name: 'inventory_return_location', type: 'inventory_return_locations', api: 'inventory_return_locations' },\n\tinventory_stock_locations: { name: 'inventory_stock_location', type: 'inventory_stock_locations', api: 'inventory_stock_locations' },\n\tline_item_options: { name: 'line_item_option', type: 'line_item_options', api: 'line_item_options' },\n\tline_items: { name: 'line_item', type: 'line_items', api: 'line_items' },\n\tmanual_gateways: { name: 'manual_gateway', type: 'manual_gateways', api: 'manual_gateways' },\n\tmanual_tax_calculators: { name: 'manual_tax_calculator', type: 'manual_tax_calculators', api: 'manual_tax_calculators' },\n\tmarkets: { name: 'market', type: 'markets', api: 'markets' },\n\tmerchants: { name: 'merchant', type: 'merchants', api: 'merchants' },\n\torder_amount_promotion_rules: { name: 'order_amount_promotion_rule', type: 'order_amount_promotion_rules', api: 'order_amount_promotion_rules' },\n\torder_copies: { name: 'order_copy', type: 'order_copies', api: 'order_copies' },\n\torder_subscriptions: { name: 'order_subscription', type: 'order_subscriptions', api: 'order_subscriptions' },\n\torders: { name: 'order', type: 'orders', api: 'orders' },\n\torganization: { name: 'organization', type: 'organization', api: 'organization' },\n\tpackages: { name: 'package', type: 'packages', api: 'packages' },\n\tparcel_line_items: { name: 'parcel_line_item', type: 'parcel_line_items', api: 'parcel_line_items' },\n\tparcels: { name: 'parcel', type: 'parcels', api: 'parcels' },\n\tpayment_gateways: { name: 'payment_gateway', type: 'payment_gateways', api: 'payment_gateways' },\n\tpayment_methods: { name: 'payment_method', type: 'payment_methods', api: 'payment_methods' },\n\tpaypal_gateways: { name: 'paypal_gateway', type: 'paypal_gateways', api: 'paypal_gateways' },\n\tpaypal_payments: { name: 'paypal_payment', type: 'paypal_payments', api: 'paypal_payments' },\n\tpercentage_discount_promotions: { name: 'percentage_discount_promotion', type: 'percentage_discount_promotions', api: 'percentage_discount_promotions' },\n\tprice_lists: { name: 'price_list', type: 'price_lists', api: 'price_lists' },\n\tprices: { name: 'price', type: 'prices', api: 'prices' },\n\tpromotion_rules: { name: 'promotion_rule', type: 'promotion_rules', api: 'promotion_rules' },\n\tpromotions: { name: 'promotion', type: 'promotions', api: 'promotions' },\n\trefunds: { name: 'refund', type: 'refunds', api: 'refunds' },\n\treturn_line_items: { name: 'return_line_item', type: 'return_line_items', api: 'return_line_items' },\n\treturns: { name: 'return', type: 'returns', api: 'returns' },\n\tshipments: { name: 'shipment', type: 'shipments', api: 'shipments' },\n\tshipping_categories: { name: 'shipping_category', type: 'shipping_categories', api: 'shipping_categories' },\n\tshipping_methods: { name: 'shipping_method', type: 'shipping_methods', api: 'shipping_methods' },\n\tshipping_zones: { name: 'shipping_zone', type: 'shipping_zones', api: 'shipping_zones' },\n\tsku_list_items: { name: 'sku_list_item', type: 'sku_list_items', api: 'sku_list_items' },\n\tsku_list_promotion_rules: { name: 'sku_list_promotion_rule', type: 'sku_list_promotion_rules', api: 'sku_list_promotion_rules' },\n\tsku_lists: { name: 'sku_list', type: 'sku_lists', api: 'sku_lists' },\n\tsku_options: { name: 'sku_option', type: 'sku_options', api: 'sku_options' },\n\tskus: { name: 'sku', type: 'skus', api: 'skus' },\n\tstock_items: { name: 'stock_item', type: 'stock_items', api: 'stock_items' },\n\tstock_line_items: { name: 'stock_line_item', type: 'stock_line_items', api: 'stock_line_items' },\n\tstock_locations: { name: 'stock_location', type: 'stock_locations', api: 'stock_locations' },\n\tstock_transfers: { name: 'stock_transfer', type: 'stock_transfers', api: 'stock_transfers' },\n\tstripe_gateways: { name: 'stripe_gateway', type: 'stripe_gateways', api: 'stripe_gateways' },\n\tstripe_payments: { name: 'stripe_payment', type: 'stripe_payments', api: 'stripe_payments' },\n\ttax_calculators: { name: 'tax_calculator', type: 'tax_calculators', api: 'tax_calculators' },\n\ttax_categories: { name: 'tax_category', type: 'tax_categories', api: 'tax_categories' },\n\ttax_rules: { name: 'tax_rule', type: 'tax_rules', api: 'tax_rules' },\n\ttaxjar_accounts: { name: 'taxjar_account', type: 'taxjar_accounts', api: 'taxjar_accounts' },\n\ttransactions: { name: 'transaction', type: 'transactions', api: 'transactions' },\n\tvoids: { name: 'void', type: 'voids', api: 'voids' },\n\twebhooks: { name: 'webhook', type: 'webhooks', api: 'webhooks' },\n\twire_transfers: { name: 'wire_transfer', type: 'wire_transfers', api: 'wire_transfers' }\n\t// ##__API_RESOURCE_MAP_STOP__##\n} as const\n*/","\nimport * as api from './api'\nimport ApiError from './error'\n\n\n/* Static functions */\nexport const CommerceLayerStatic = {\n\n\tresources: (): readonly string[] => {\n\t\treturn api.resourceList\n\t},\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisApiError: (error: any): error is ApiError => {\n\t\treturn ApiError.isApiError(error)\n\t},\n\n}\n","\nimport * as api from './api'\nimport ApiError from './error'\nimport type { ErrorInterceptor, InterceptorType, RawResponseReader, RequestInterceptor, ResponseInterceptor, ResponseObj } from './interceptor'\n// import QueryBuilder, { QueryBuilderRetrieve, QueryBuilderList } from './query'\nimport { CommerceLayerStatic } from './static'\nimport ResourceAdapter, { ResourcesConfig, ResourcesInitConfig } from './resource'\n\n\ntype SdkConfig = {}\n\ntype CommerceLayerInitConfig = SdkConfig & ResourcesInitConfig\ntype CommerceLayerConfig = SdkConfig & ResourcesConfig\n\n\n\nclass CommerceLayerClient {\n\n\t#adapter: ResourceAdapter\n\t#organization: string\n\n\t// ##__CL_RESOURCES_DEF_START__##\n\t// ##__CL_RESOURCES_DEF_TEMPLATE:: ##__TAB__####__RESOURCE_TYPE__##: api.##__RESOURCE_CLASS__##\n\taddresses: api.Addresses\n\tadjustments: api.Adjustments\n\tadyen_gateways: api.AdyenGateways\n\tadyen_payments: api.AdyenPayments\n\tapplication: api.Applications\n\tattachments: api.Attachments\n\tauthorizations: api.Authorizations\n\tavalara_accounts: api.AvalaraAccounts\n\tbilling_info_validation_rules: api.BillingInfoValidationRules\n\tbing_geocoders: api.BingGeocoders\n\tbraintree_gateways: api.BraintreeGateways\n\tbraintree_payments: api.BraintreePayments\n\tbundles: api.Bundles\n\tcaptures: api.Captures\n\tcarrier_accounts: api.CarrierAccounts\n\tcheckout_com_gateways: api.CheckoutComGateways\n\tcheckout_com_payments: api.CheckoutComPayments\n\tcoupon_codes_promotion_rules: api.CouponCodesPromotionRules\n\tcoupon_recipients: api.CouponRecipients\n\tcoupons: api.Coupons\n\tcustomer_addresses: api.CustomerAddresses\n\tcustomer_groups: api.CustomerGroups\n\tcustomer_password_resets: api.CustomerPasswordResets\n\tcustomer_payment_sources: api.CustomerPaymentSources\n\tcustomer_subscriptions: api.CustomerSubscriptions\n\tcustomers: api.Customers\n\tdelivery_lead_times: api.DeliveryLeadTimes\n\tevent_callbacks: api.EventCallbacks\n\texternal_gateways: api.ExternalGateways\n\texternal_payments: api.ExternalPayments\n\texternal_promotions: api.ExternalPromotions\n\texternal_tax_calculators: api.ExternalTaxCalculators\n\tfixed_amount_promotions: api.FixedAmountPromotions\n\tfixed_price_promotions: api.FixedPricePromotions\n\tfree_gift_promotions: api.FreeGiftPromotions\n\tfree_shipping_promotions: api.FreeShippingPromotions\n\tgeocoders: api.Geocoders\n\tgift_card_recipients: api.GiftCardRecipients\n\tgift_cards: api.GiftCards\n\tgoogle_geocoders: api.GoogleGeocoders\n\timports: api.Imports\n\tin_stock_subscriptions: api.InStockSubscriptions\n\tinventory_models: api.InventoryModels\n\tinventory_return_locations: api.InventoryReturnLocations\n\tinventory_stock_locations: api.InventoryStockLocations\n\tline_item_options: api.LineItemOptions\n\tline_items: api.LineItems\n\tmanual_gateways: api.ManualGateways\n\tmanual_tax_calculators: api.ManualTaxCalculators\n\tmarkets: api.Markets\n\tmerchants: api.Merchants\n\torder_amount_promotion_rules: api.OrderAmountPromotionRules\n\torder_copies: api.OrderCopies\n\torder_subscriptions: api.OrderSubscriptions\n\torder_validation_rules: api.OrderValidationRules\n\torders: api.Orders\n\torganization: api.Organizations\n\tpackages: api.Packages\n\tparcel_line_items: api.ParcelLineItems\n\tparcels: api.Parcels\n\tpayment_gateways: api.PaymentGateways\n\tpayment_methods: api.PaymentMethods\n\tpaypal_gateways: api.PaypalGateways\n\tpaypal_payments: api.PaypalPayments\n\tpercentage_discount_promotions: api.PercentageDiscountPromotions\n\tprice_lists: api.PriceLists\n\tprices: api.Prices\n\tpromotion_rules: api.PromotionRules\n\tpromotions: api.Promotions\n\trefunds: api.Refunds\n\treturn_line_items: api.ReturnLineItems\n\treturns: api.Returns\n\tshipments: api.Shipments\n\tshipping_categories: api.ShippingCategories\n\tshipping_methods: api.ShippingMethods\n\tshipping_zones: api.ShippingZones\n\tsku_list_items: api.SkuListItems\n\tsku_list_promotion_rules: api.SkuListPromotionRules\n\tsku_lists: api.SkuLists\n\tsku_options: api.SkuOptions\n\tskus: api.Skus\n\tstock_items: api.StockItems\n\tstock_line_items: api.StockLineItems\n\tstock_locations: api.StockLocations\n\tstock_transfers: api.StockTransfers\n\tstripe_gateways: api.StripeGateways\n\tstripe_payments: api.StripePayments\n\ttax_calculators: api.TaxCalculators\n\ttax_categories: api.TaxCategories\n\ttax_rules: api.TaxRules\n\ttaxjar_accounts: api.TaxjarAccounts\n\ttransactions: api.Transactions\n\tvoids: api.Voids\n\twebhooks: api.Webhooks\n\twire_transfers: api.WireTransfers\n\t// ##__CL_RESOURCES_DEF_STOP__##\n\n\n\tconstructor(config: CommerceLayerInitConfig) {\n\n\t\tthis.#adapter = new ResourceAdapter(config)\n\t\tthis.#organization = config.organization\n\n\t\t// ##__CL_RESOURCES_INIT_START__##\n\t\t// ##__CL_RESOURCES_INIT_TEMPLATE:: ##__TAB__####__TAB__##this.##__RESOURCE_TYPE__## = new api.##__RESOURCE_CLASS__##(this.#adapter)\n\t\tthis.addresses = new api.Addresses(this.#adapter)\n\t\tthis.adjustments = new api.Adjustments(this.#adapter)\n\t\tthis.adyen_gateways = new api.AdyenGateways(this.#adapter)\n\t\tthis.adyen_payments = new api.AdyenPayments(this.#adapter)\n\t\tthis.application = new api.Applications(this.#adapter)\n\t\tthis.attachments = new api.Attachments(this.#adapter)\n\t\tthis.authorizations = new api.Authorizations(this.#adapter)\n\t\tthis.avalara_accounts = new api.AvalaraAccounts(this.#adapter)\n\t\tthis.billing_info_validation_rules = new api.BillingInfoValidationRules(this.#adapter)\n\t\tthis.bing_geocoders = new api.BingGeocoders(this.#adapter)\n\t\tthis.braintree_gateways = new api.BraintreeGateways(this.#adapter)\n\t\tthis.braintree_payments = new api.BraintreePayments(this.#adapter)\n\t\tthis.bundles = new api.Bundles(this.#adapter)\n\t\tthis.captures = new api.Captures(this.#adapter)\n\t\tthis.carrier_accounts = new api.CarrierAccounts(this.#adapter)\n\t\tthis.checkout_com_gateways = new api.CheckoutComGateways(this.#adapter)\n\t\tthis.checkout_com_payments = new api.CheckoutComPayments(this.#adapter)\n\t\tthis.coupon_codes_promotion_rules = new api.CouponCodesPromotionRules(this.#adapter)\n\t\tthis.coupon_recipients = new api.CouponRecipients(this.#adapter)\n\t\tthis.coupons = new api.Coupons(this.#adapter)\n\t\tthis.customer_addresses = new api.CustomerAddresses(this.#adapter)\n\t\tthis.customer_groups = new api.CustomerGroups(this.#adapter)\n\t\tthis.customer_password_resets = new api.CustomerPasswordResets(this.#adapter)\n\t\tthis.customer_payment_sources = new api.CustomerPaymentSources(this.#adapter)\n\t\tthis.customer_subscriptions = new api.CustomerSubscriptions(this.#adapter)\n\t\tthis.customers = new api.Customers(this.#adapter)\n\t\tthis.delivery_lead_times = new api.DeliveryLeadTimes(this.#adapter)\n\t\tthis.event_callbacks = new api.EventCallbacks(this.#adapter)\n\t\tthis.external_gateways = new api.ExternalGateways(this.#adapter)\n\t\tthis.external_payments = new api.ExternalPayments(this.#adapter)\n\t\tthis.external_promotions = new api.ExternalPromotions(this.#adapter)\n\t\tthis.external_tax_calculators = new api.ExternalTaxCalculators(this.#adapter)\n\t\tthis.fixed_amount_promotions = new api.FixedAmountPromotions(this.#adapter)\n\t\tthis.fixed_price_promotions = new api.FixedPricePromotions(this.#adapter)\n\t\tthis.free_gift_promotions = new api.FreeGiftPromotions(this.#adapter)\n\t\tthis.free_shipping_promotions = new api.FreeShippingPromotions(this.#adapter)\n\t\tthis.geocoders = new api.Geocoders(this.#adapter)\n\t\tthis.gift_card_recipients = new api.GiftCardRecipients(this.#adapter)\n\t\tthis.gift_cards = new api.GiftCards(this.#adapter)\n\t\tthis.google_geocoders = new api.GoogleGeocoders(this.#adapter)\n\t\tthis.imports = new api.Imports(this.#adapter)\n\t\tthis.in_stock_subscriptions = new api.InStockSubscriptions(this.#adapter)\n\t\tthis.inventory_models = new api.InventoryModels(this.#adapter)\n\t\tthis.inventory_return_locations = new api.InventoryReturnLocations(this.#adapter)\n\t\tthis.inventory_stock_locations = new api.InventoryStockLocations(this.#adapter)\n\t\tthis.line_item_options = new api.LineItemOptions(this.#adapter)\n\t\tthis.line_items = new api.LineItems(this.#adapter)\n\t\tthis.manual_gateways = new api.ManualGateways(this.#adapter)\n\t\tthis.manual_tax_calculators = new api.ManualTaxCalculators(this.#adapter)\n\t\tthis.markets = new api.Markets(this.#adapter)\n\t\tthis.merchants = new api.Merchants(this.#adapter)\n\t\tthis.order_amount_promotion_rules = new api.OrderAmountPromotionRules(this.#adapter)\n\t\tthis.order_copies = new api.OrderCopies(this.#adapter)\n\t\tthis.order_subscriptions = new api.OrderSubscriptions(this.#adapter)\n\t\tthis.order_validation_rules = new api.OrderValidationRules(this.#adapter)\n\t\tthis.orders = new api.Orders(this.#adapter)\n\t\tthis.organization = new api.Organizations(this.#adapter)\n\t\tthis.packages = new api.Packages(this.#adapter)\n\t\tthis.parcel_line_items = new api.ParcelLineItems(this.#adapter)\n\t\tthis.parcels = new api.Parcels(this.#adapter)\n\t\tthis.payment_gateways = new api.PaymentGateways(this.#adapter)\n\t\tthis.payment_methods = new api.PaymentMethods(this.#adapter)\n\t\tthis.paypal_gateways = new api.PaypalGateways(this.#adapter)\n\t\tthis.paypal_payments = new api.PaypalPayments(this.#adapter)\n\t\tthis.percentage_discount_promotions = new api.PercentageDiscountPromotions(this.#adapter)\n\t\tthis.price_lists = new api.PriceLists(this.#adapter)\n\t\tthis.prices = new api.Prices(this.#adapter)\n\t\tthis.promotion_rules = new api.PromotionRules(this.#adapter)\n\t\tthis.promotions = new api.Promotions(this.#adapter)\n\t\tthis.refunds = new api.Refunds(this.#adapter)\n\t\tthis.return_line_items = new api.ReturnLineItems(this.#adapter)\n\t\tthis.returns = new api.Returns(this.#adapter)\n\t\tthis.shipments = new api.Shipments(this.#adapter)\n\t\tthis.shipping_categories = new api.ShippingCategories(this.#adapter)\n\t\tthis.shipping_methods = new api.ShippingMethods(this.#adapter)\n\t\tthis.shipping_zones = new api.ShippingZones(this.#adapter)\n\t\tthis.sku_list_items = new api.SkuListItems(this.#adapter)\n\t\tthis.sku_list_promotion_rules = new api.SkuListPromotionRules(this.#adapter)\n\t\tthis.sku_lists = new api.SkuLists(this.#adapter)\n\t\tthis.sku_options = new api.SkuOptions(this.#adapter)\n\t\tthis.skus = new api.Skus(this.#adapter)\n\t\tthis.stock_items = new api.StockItems(this.#adapter)\n\t\tthis.stock_line_items = new api.StockLineItems(this.#adapter)\n\t\tthis.stock_locations = new api.StockLocations(this.#adapter)\n\t\tthis.stock_transfers = new api.StockTransfers(this.#adapter)\n\t\tthis.stripe_gateways = new api.StripeGateways(this.#adapter)\n\t\tthis.stripe_payments = new api.StripePayments(this.#adapter)\n\t\tthis.tax_calculators = new api.TaxCalculators(this.#adapter)\n\t\tthis.tax_categories = new api.TaxCategories(this.#adapter)\n\t\tthis.tax_rules = new api.TaxRules(this.#adapter)\n\t\tthis.taxjar_accounts = new api.TaxjarAccounts(this.#adapter)\n\t\tthis.transactions = new api.Transactions(this.#adapter)\n\t\tthis.voids = new api.Voids(this.#adapter)\n\t\tthis.webhooks = new api.Webhooks(this.#adapter)\n\t\tthis.wire_transfers = new api.WireTransfers(this.#adapter)\n\t\t// ##__CL_RESOURCES_INIT_STOP__##\n\n\t}\n\n\n\tget currentOrganization(): string { return this.#organization }\n\n\n\tconfig(config: CommerceLayerConfig): void {\n\n\t\tif (!config) return\n\n\t\t// CommerceLayer config\n\t\tif (config.organization) this.#organization = config.organization\n\n\t\t// ResourceAdapter config\n\t\tthis.#adapter.config(config)\n\n\t}\n\n\n\t/*\n\tqueryBuilder(resource: string): QueryBuilderRetrieve {\n\t\treturn new QueryBuilder(resource)\n\t}\n\t*/\n\n\t\n\tresources(): readonly string[] {\n\t\treturn CommerceLayerStatic.resources()\n\t}\n\t\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\tisApiError(error: any): error is ApiError {\n\t\treturn CommerceLayerStatic.isApiError(error)\n\t}\n\n\n\taddRequestInterceptor(onFulfilled?: RequestInterceptor, onRejected?: ErrorInterceptor): number {\n\t\treturn this.#adapter.interceptors.request.use(onFulfilled, onRejected)\n\t}\n\n\taddResponseInterceptor(onFulfilled?: ResponseInterceptor, onRejected?: ErrorInterceptor): number {\n\t\treturn this.#adapter.interceptors.response.use(onFulfilled, onRejected)\n\t}\n\n\tremoveInterceptor(type: InterceptorType, id: number): void {\n\t\treturn this.#adapter.interceptors[type].eject(id)\n\t}\n\n\n\taddRawResponseReader(): RawResponseReader {\n\n\t\tconst reader: RawResponseReader = {\n\t\t\tid: undefined,\n\t\t\trawResponse: undefined,\n\t\t}\n\n\t\tfunction rawResponseInterceptor(response: ResponseObj): ResponseObj {\n\t\t\treader.rawResponse = response?.data\n\t\t\treturn response\n\t\t}\n\t\t\n\t\tconst interceptor = this.addResponseInterceptor(rawResponseInterceptor)\n\t\treader.id = interceptor\n\n\t\treturn reader\n\n\t}\n\n\tremoveRawResponseReader(reader: number | RawResponseReader): void {\n\t\tconst id = (typeof reader === 'number') ? reader : reader.id\n\t\tif (id) return this.removeInterceptor('response', id)\n\t}\n\n}\n\n\n\nconst CommerceLayer = (config: CommerceLayerInitConfig): CommerceLayerClient => {\n\treturn new CommerceLayerClient(config)\n}\n\n\nexport default CommerceLayer\n\nexport type { CommerceLayerClient, CommerceLayerConfig, CommerceLayerInitConfig }\n"],"names":["ErrorType","runtime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","generator","create","Generator","context","Context","_invoke","state","method","arg","Error","undefined","done","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","makeInvokeMethod","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","result","__await","then","unwrapped","error","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","ApiError","message","_this","GENERIC","isApiError","RESPONSE","first","errors","baseURL","organization","domain","toLowerCase","handleError","apiError","axios","isAxiosError","response","status","code","String","data","request","REQUEST","CLIENT","ApiClient","options","baseUrl","accessToken","axiosConfig","timeout","headers","interceptors","_classPrivateFieldLooseBase","config","def","defaults","path","body","url","isResourceId","resource","id","denormalize","links","included","Array","isArray","map","res","denormalizeResource","findIncluded","rel","find","inc","attributes","relationships","r","normalize","field","includes","normalized","generateQueryStringParams","params","qp","include","join","fields","entries","filters","pageNumber","pageSize","sort","isParamsList","ListResponse","meta","last","get","index","ResourceAdapter","singleton","queryParams","assign","retrieve","list","pageCount","Number","_res$meta","page_count","recordCount","_res$meta2","record_count","currentPage","recordsPerPage","update","ApiResource","adapter","resources","Addresses","TYPE","isAddress","relationship","Adjustments","isAdjustment","AdyenGateways","isAdyenGateway","AdyenPayments","isAdyenPayment","Applications","isApplication","Attachments","isAttachment","Authorizations","isAuthorization","AvalaraAccounts","isAvalaraAccount","BillingInfoValidationRules","isBillingInfoValidationRule","BingGeocoders","isBingGeocoder","BraintreeGateways","isBraintreeGateway","BraintreePayments","isBraintreePayment","Bundles","isBundle","Captures","isCapture","CarrierAccounts","isCarrierAccount","CheckoutComGateways","isCheckoutComGateway","CheckoutComPayments","isCheckoutComPayment","CouponCodesPromotionRules","isCouponCodesPromotionRule","CouponRecipients","isCouponRecipient","Coupons","isCoupon","CustomerAddresses","isCustomerAddress","CustomerGroups","isCustomerGroup","CustomerPasswordResets","isCustomerPasswordReset","CustomerPaymentSources","isCustomerPaymentSource","CustomerSubscriptions","isCustomerSubscription","Customers","isCustomer","DeliveryLeadTimes","isDeliveryLeadTime","EventCallbacks","isEventCallback","ExternalGateways","isExternalGateway","ExternalPayments","isExternalPayment","ExternalPromotions","isExternalPromotion","ExternalTaxCalculators","isExternalTaxCalculator","FixedAmountPromotions","isFixedAmountPromotion","FixedPricePromotions","isFixedPricePromotion","FreeGiftPromotions","isFreeGiftPromotion","FreeShippingPromotions","isFreeShippingPromotion","Geocoders","isGeocoder","GiftCardRecipients","isGiftCardRecipient","GiftCards","isGiftCard","GoogleGeocoders","isGoogleGeocoder","Imports","isImport","InStockSubscriptions","isInStockSubscription","InventoryModels","isInventoryModel","InventoryReturnLocations","isInventoryReturnLocation","InventoryStockLocations","isInventoryStockLocation","LineItemOptions","isLineItemOption","LineItems","isLineItem","ManualGateways","isManualGateway","ManualTaxCalculators","isManualTaxCalculator","Markets","isMarket","Merchants","isMerchant","OrderAmountPromotionRules","isOrderAmountPromotionRule","OrderCopies","isOrderCopy","OrderSubscriptions","isOrderSubscription","OrderValidationRules","isOrderValidationRule","Orders","isOrder","Organizations","isOrganization","Packages","isPackage","ParcelLineItems","isParcelLineItem","Parcels","isParcel","PaymentGateways","isPaymentGateway","PaymentMethods","isPaymentMethod","PaypalGateways","isPaypalGateway","PaypalPayments","isPaypalPayment","PercentageDiscountPromotions","isPercentageDiscountPromotion","PriceLists","isPriceList","Prices","isPrice","PromotionRules","isPromotionRule","Promotions","isPromotion","Refunds","isRefund","ReturnLineItems","isReturnLineItem","Returns","isReturn","Shipments","isShipment","ShippingCategories","isShippingCategory","ShippingMethods","isShippingMethod","ShippingZones","isShippingZone","SkuListItems","isSkuListItem","SkuListPromotionRules","isSkuListPromotionRule","SkuLists","isSkuList","SkuOptions","isSkuOption","Skus","isSku","StockItems","isStockItem","StockLineItems","isStockLineItem","StockLocations","isStockLocation","StockTransfers","isStockTransfer","StripeGateways","isStripeGateway","StripePayments","isStripePayment","TaxCalculators","isTaxCalculator","TaxCategories","isTaxCategory","TaxRules","isTaxRule","TaxjarAccounts","isTaxjarAccount","Transactions","isTransaction","Voids","isVoid","Webhooks","isWebhook","WireTransfers","isWireTransfer","resourceList","CommerceLayerStatic","api","CommerceLayerClient","addresses","adjustments","adyen_gateways","adyen_payments","application","attachments","authorizations","avalara_accounts","billing_info_validation_rules","bing_geocoders","braintree_gateways","braintree_payments","bundles","captures","carrier_accounts","checkout_com_gateways","checkout_com_payments","coupon_codes_promotion_rules","coupon_recipients","coupons","customer_addresses","customer_groups","customer_password_resets","customer_payment_sources","customer_subscriptions","customers","delivery_lead_times","event_callbacks","external_gateways","external_payments","external_promotions","external_tax_calculators","fixed_amount_promotions","fixed_price_promotions","free_gift_promotions","free_shipping_promotions","geocoders","gift_card_recipients","gift_cards","google_geocoders","imports","in_stock_subscriptions","inventory_models","inventory_return_locations","inventory_stock_locations","line_item_options","line_items","manual_gateways","manual_tax_calculators","markets","merchants","order_amount_promotion_rules","order_copies","order_subscriptions","order_validation_rules","orders","packages","parcel_line_items","parcels","payment_gateways","payment_methods","paypal_gateways","paypal_payments","percentage_discount_promotions","price_lists","prices","promotion_rules","promotions","refunds","return_line_items","returns","shipments","shipping_categories","shipping_methods","shipping_zones","sku_list_items","sku_list_promotion_rules","sku_lists","sku_options","skus","stock_items","stock_line_items","stock_locations","stock_transfers","stripe_gateways","stripe_payments","tax_calculators","tax_categories","tax_rules","taxjar_accounts","transactions","voids","webhooks","wire_transfers","addRequestInterceptor","onFulfilled","onRejected","use","addResponseInterceptor","removeInterceptor","eject","addRawResponseReader","reader","rawResponse","interceptor","removeRawResponseReader"],"mappings":"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"}