@revenexx/node 0.4.0 → 0.5.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.
- package/dist/client.d.mts +1 -0
- package/dist/client.d.ts +1 -0
- package/dist/client.js +3 -3
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +3 -3
- package/dist/client.mjs.map +1 -1
- package/dist/enums/market-readiness-report-warning-reasons.d.mts +9 -0
- package/dist/enums/market-readiness-report-warning-reasons.d.ts +9 -0
- package/dist/enums/market-readiness-report-warning-reasons.js +14 -0
- package/dist/enums/market-readiness-report-warning-reasons.js.map +1 -0
- package/dist/enums/market-readiness-report-warning-reasons.mjs +13 -0
- package/dist/enums/market-readiness-report-warning-reasons.mjs.map +1 -0
- package/dist/enums/market-readiness-warning-reasons.d.mts +9 -0
- package/dist/enums/market-readiness-warning-reasons.d.ts +9 -0
- package/dist/enums/market-readiness-warning-reasons.js +14 -0
- package/dist/enums/market-readiness-warning-reasons.js.map +1 -0
- package/dist/enums/market-readiness-warning-reasons.mjs +13 -0
- package/dist/enums/market-readiness-warning-reasons.mjs.map +1 -0
- package/dist/enums/product-defaults-result-reason.d.mts +6 -0
- package/dist/enums/product-defaults-result-reason.d.ts +6 -0
- package/dist/enums/product-defaults-result-reason.js +11 -0
- package/dist/enums/product-defaults-result-reason.js.map +1 -0
- package/dist/enums/product-defaults-result-reason.mjs +10 -0
- package/dist/enums/product-defaults-result-reason.mjs.map +1 -0
- package/dist/enums/punchout-vocabularies-get-name.d.mts +1 -0
- package/dist/enums/punchout-vocabularies-get-name.d.ts +1 -0
- package/dist/enums/punchout-vocabularies-get-name.js +1 -0
- package/dist/enums/punchout-vocabularies-get-name.js.map +1 -1
- package/dist/enums/punchout-vocabularies-get-name.mjs +1 -0
- package/dist/enums/punchout-vocabularies-get-name.mjs.map +1 -1
- package/dist/index.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -1
- package/dist/models.d.mts +160 -12
- package/dist/models.d.ts +160 -12
- package/dist/services/ads-accounts.d.mts +1 -0
- package/dist/services/ads-accounts.d.ts +1 -0
- package/dist/services/ads-conversions.d.mts +1 -0
- package/dist/services/ads-conversions.d.ts +1 -0
- package/dist/services/ads-feeds.d.mts +1 -0
- package/dist/services/ads-feeds.d.ts +1 -0
- package/dist/services/ads-jobs.d.mts +1 -0
- package/dist/services/ads-jobs.d.ts +1 -0
- package/dist/services/ads-links.d.mts +1 -0
- package/dist/services/ads-links.d.ts +1 -0
- package/dist/services/ads-rules.d.mts +1 -0
- package/dist/services/ads-rules.d.ts +1 -0
- package/dist/services/ads-spend.d.mts +1 -0
- package/dist/services/ads-spend.d.ts +1 -0
- package/dist/services/ads-syncs.d.mts +1 -0
- package/dist/services/ads-syncs.d.ts +1 -0
- package/dist/services/ads-vocabularies.d.mts +1 -0
- package/dist/services/ads-vocabularies.d.ts +1 -0
- package/dist/services/apps.d.mts +1 -0
- package/dist/services/apps.d.ts +1 -0
- package/dist/services/audiences-audiences.d.mts +1 -0
- package/dist/services/audiences-audiences.d.ts +1 -0
- package/dist/services/audiences-members.d.mts +1 -0
- package/dist/services/audiences-members.d.ts +1 -0
- package/dist/services/audiences-rules.d.mts +1 -0
- package/dist/services/audiences-rules.d.ts +1 -0
- package/dist/services/audit.d.mts +1 -0
- package/dist/services/audit.d.ts +1 -0
- package/dist/services/avatars.d.mts +1 -0
- package/dist/services/avatars.d.ts +1 -0
- package/dist/services/campaigns-assets.d.mts +1 -0
- package/dist/services/campaigns-assets.d.ts +1 -0
- package/dist/services/campaigns-attribution.d.mts +1 -0
- package/dist/services/campaigns-attribution.d.ts +1 -0
- package/dist/services/campaigns-budgets.d.mts +1 -0
- package/dist/services/campaigns-budgets.d.ts +1 -0
- package/dist/services/campaigns-calendar.d.mts +1 -0
- package/dist/services/campaigns-calendar.d.ts +1 -0
- package/dist/services/campaigns-campaigns.d.mts +1 -0
- package/dist/services/campaigns-campaigns.d.ts +1 -0
- package/dist/services/campaigns-spend.d.mts +1 -0
- package/dist/services/campaigns-spend.d.ts +1 -0
- package/dist/services/campaigns-tasks.d.mts +1 -0
- package/dist/services/campaigns-tasks.d.ts +1 -0
- package/dist/services/campaigns-touches.d.mts +1 -0
- package/dist/services/campaigns-touches.d.ts +1 -0
- package/dist/services/campaigns-vocabularies.d.mts +1 -0
- package/dist/services/campaigns-vocabularies.d.ts +1 -0
- package/dist/services/carts-io.d.mts +1 -0
- package/dist/services/carts-io.d.ts +1 -0
- package/dist/services/carts-items.d.mts +1 -0
- package/dist/services/carts-items.d.ts +1 -0
- package/dist/services/carts.d.mts +1 -0
- package/dist/services/carts.d.ts +1 -0
- package/dist/services/channels.d.mts +1 -0
- package/dist/services/channels.d.ts +1 -0
- package/dist/services/consent-manager-delivery.d.mts +1 -0
- package/dist/services/consent-manager-delivery.d.ts +1 -0
- package/dist/services/consent-manager-policy.d.mts +1 -0
- package/dist/services/consent-manager-policy.d.ts +1 -0
- package/dist/services/consent-manager-records.d.mts +1 -0
- package/dist/services/consent-manager-records.d.ts +1 -0
- package/dist/services/consent-manager-registry.d.mts +1 -0
- package/dist/services/consent-manager-registry.d.ts +1 -0
- package/dist/services/cost-centers.d.mts +9 -8
- package/dist/services/cost-centers.d.ts +9 -8
- package/dist/services/cost-centers.js +19 -13
- package/dist/services/cost-centers.js.map +1 -1
- package/dist/services/cost-centers.mjs +19 -13
- package/dist/services/cost-centers.mjs.map +1 -1
- package/dist/services/customers-contacts.d.mts +1 -0
- package/dist/services/customers-contacts.d.ts +1 -0
- package/dist/services/customers-follow-ups.d.mts +1 -0
- package/dist/services/customers-follow-ups.d.ts +1 -0
- package/dist/services/customers-leads.d.mts +1 -0
- package/dist/services/customers-leads.d.ts +1 -0
- package/dist/services/customers-organizations.d.mts +1 -0
- package/dist/services/customers-organizations.d.ts +1 -0
- package/dist/services/customers-roles.d.mts +1 -0
- package/dist/services/customers-roles.d.ts +1 -0
- package/dist/services/customers-segments.d.mts +1 -0
- package/dist/services/customers-segments.d.ts +1 -0
- package/dist/services/customers-value-lists.d.mts +1 -0
- package/dist/services/customers-value-lists.d.ts +1 -0
- package/dist/services/customers.d.mts +1 -0
- package/dist/services/customers.d.ts +1 -0
- package/dist/services/documents-kinds.d.mts +1 -0
- package/dist/services/documents-kinds.d.ts +1 -0
- package/dist/services/documents-register.d.mts +1 -0
- package/dist/services/documents-register.d.ts +1 -0
- package/dist/services/events.d.mts +1 -0
- package/dist/services/events.d.ts +1 -0
- package/dist/services/forms.d.mts +1 -0
- package/dist/services/forms.d.ts +1 -0
- package/dist/services/health.d.mts +1 -0
- package/dist/services/health.d.ts +1 -0
- package/dist/services/inventories-locations.d.mts +1 -0
- package/dist/services/inventories-locations.d.ts +1 -0
- package/dist/services/inventories-reservations.d.mts +1 -0
- package/dist/services/inventories-reservations.d.ts +1 -0
- package/dist/services/inventories-stock.d.mts +1 -0
- package/dist/services/inventories-stock.d.ts +1 -0
- package/dist/services/io.d.mts +1 -0
- package/dist/services/io.d.ts +1 -0
- package/dist/services/journeys-enrollments.d.mts +1 -0
- package/dist/services/journeys-enrollments.d.ts +1 -0
- package/dist/services/journeys-jobs.d.mts +1 -0
- package/dist/services/journeys-jobs.d.ts +1 -0
- package/dist/services/journeys-journeys.d.mts +1 -0
- package/dist/services/journeys-journeys.d.ts +1 -0
- package/dist/services/journeys-stats.d.mts +1 -0
- package/dist/services/journeys-stats.d.ts +1 -0
- package/dist/services/journeys-steps.d.mts +1 -0
- package/dist/services/journeys-steps.d.ts +1 -0
- package/dist/services/journeys-templates.d.mts +1 -0
- package/dist/services/journeys-templates.d.ts +1 -0
- package/dist/services/journeys-timeline.d.mts +1 -0
- package/dist/services/journeys-timeline.d.ts +1 -0
- package/dist/services/journeys-versions.d.mts +1 -0
- package/dist/services/journeys-versions.d.ts +1 -0
- package/dist/services/journeys-vocabularies.d.mts +1 -0
- package/dist/services/journeys-vocabularies.d.ts +1 -0
- package/dist/services/journeys-watches.d.mts +1 -0
- package/dist/services/journeys-watches.d.ts +1 -0
- package/dist/services/locale.d.mts +1 -0
- package/dist/services/locale.d.ts +1 -0
- package/dist/services/loyalty-bonus.d.mts +1 -0
- package/dist/services/loyalty-bonus.d.ts +1 -0
- package/dist/services/loyalty-jobs.d.mts +1 -0
- package/dist/services/loyalty-jobs.d.ts +1 -0
- package/dist/services/loyalty-memberships.d.mts +1 -0
- package/dist/services/loyalty-memberships.d.ts +1 -0
- package/dist/services/loyalty-points.d.mts +1 -0
- package/dist/services/loyalty-points.d.ts +1 -0
- package/dist/services/loyalty-programs.d.mts +1 -0
- package/dist/services/loyalty-programs.d.ts +1 -0
- package/dist/services/loyalty-referrals.d.mts +1 -0
- package/dist/services/loyalty-referrals.d.ts +1 -0
- package/dist/services/loyalty-rewards.d.mts +1 -0
- package/dist/services/loyalty-rewards.d.ts +1 -0
- package/dist/services/loyalty-tiers.d.mts +1 -0
- package/dist/services/loyalty-tiers.d.ts +1 -0
- package/dist/services/loyalty-vocabularies.d.mts +1 -0
- package/dist/services/loyalty-vocabularies.d.ts +1 -0
- package/dist/services/mailings-analysis.d.mts +1 -0
- package/dist/services/mailings-analysis.d.ts +1 -0
- package/dist/services/mailings-blocks.d.mts +1 -0
- package/dist/services/mailings-blocks.d.ts +1 -0
- package/dist/services/mailings-health.d.mts +1 -0
- package/dist/services/mailings-health.d.ts +1 -0
- package/dist/services/mailings-mailings.d.mts +1 -0
- package/dist/services/mailings-mailings.d.ts +1 -0
- package/dist/services/mailings-recipients.d.mts +1 -0
- package/dist/services/mailings-recipients.d.ts +1 -0
- package/dist/services/mailings-send.d.mts +1 -0
- package/dist/services/mailings-send.d.ts +1 -0
- package/dist/services/mailings-variants.d.mts +1 -0
- package/dist/services/mailings-variants.d.ts +1 -0
- package/dist/services/mailings-vocabularies.d.mts +1 -0
- package/dist/services/mailings-vocabularies.d.ts +1 -0
- package/dist/services/marketing-consents-evidence.d.mts +1 -0
- package/dist/services/marketing-consents-evidence.d.ts +1 -0
- package/dist/services/marketing-consents-subscriptions.d.mts +1 -0
- package/dist/services/marketing-consents-subscriptions.d.ts +1 -0
- package/dist/services/marketing-consents-types.d.mts +1 -0
- package/dist/services/marketing-consents-types.d.ts +1 -0
- package/dist/services/markets.d.mts +5 -4
- package/dist/services/markets.d.ts +5 -4
- package/dist/services/markets.js.map +1 -1
- package/dist/services/markets.mjs.map +1 -1
- package/dist/services/messaging.d.mts +1 -0
- package/dist/services/messaging.d.ts +1 -0
- package/dist/services/orderlists.d.mts +1 -0
- package/dist/services/orderlists.d.ts +1 -0
- package/dist/services/orders.d.mts +1 -0
- package/dist/services/orders.d.ts +1 -0
- package/dist/services/pages-collaboration.d.mts +1 -0
- package/dist/services/pages-collaboration.d.ts +1 -0
- package/dist/services/pages-delivery.d.mts +1 -0
- package/dist/services/pages-delivery.d.ts +1 -0
- package/dist/services/pages-editor.d.mts +1 -0
- package/dist/services/pages-editor.d.ts +1 -0
- package/dist/services/pages.d.mts +1 -0
- package/dist/services/pages.d.ts +1 -0
- package/dist/services/payments-ledger.d.mts +1 -0
- package/dist/services/payments-ledger.d.ts +1 -0
- package/dist/services/payments-methods.d.mts +20 -0
- package/dist/services/payments-methods.d.ts +20 -0
- package/dist/services/payments-methods.js +24 -0
- package/dist/services/payments-methods.js.map +1 -1
- package/dist/services/payments-methods.mjs +24 -0
- package/dist/services/payments-methods.mjs.map +1 -1
- package/dist/services/payments-providers.d.mts +3 -2
- package/dist/services/payments-providers.d.ts +3 -2
- package/dist/services/payments-providers.js.map +1 -1
- package/dist/services/payments-providers.mjs.map +1 -1
- package/dist/services/prices.d.mts +1 -0
- package/dist/services/prices.d.ts +1 -0
- package/dist/services/procurement.d.mts +1 -0
- package/dist/services/procurement.d.ts +1 -0
- package/dist/services/products-assets.d.mts +1 -0
- package/dist/services/products-assets.d.ts +1 -0
- package/dist/services/products-categories.d.mts +1 -0
- package/dist/services/products-categories.d.ts +1 -0
- package/dist/services/products-data-model.d.mts +20 -0
- package/dist/services/products-data-model.d.ts +20 -0
- package/dist/services/products-data-model.js +29 -0
- package/dist/services/products-data-model.js.map +1 -1
- package/dist/services/products-data-model.mjs +29 -0
- package/dist/services/products-data-model.mjs.map +1 -1
- package/dist/services/products-manufacturers.d.mts +1 -0
- package/dist/services/products-manufacturers.d.ts +1 -0
- package/dist/services/products-references.d.mts +1 -0
- package/dist/services/products-references.d.ts +1 -0
- package/dist/services/products.d.mts +20 -0
- package/dist/services/products.d.ts +20 -0
- package/dist/services/products.js +24 -0
- package/dist/services/products.js.map +1 -1
- package/dist/services/products.mjs +24 -0
- package/dist/services/products.mjs.map +1 -1
- package/dist/services/promotions-evaluation.d.mts +1 -0
- package/dist/services/promotions-evaluation.d.ts +1 -0
- package/dist/services/promotions-promotions.d.mts +1 -0
- package/dist/services/promotions-promotions.d.ts +1 -0
- package/dist/services/promotions-redemptions.d.mts +1 -0
- package/dist/services/promotions-redemptions.d.ts +1 -0
- package/dist/services/promotions-vouchers.d.mts +1 -0
- package/dist/services/promotions-vouchers.d.ts +1 -0
- package/dist/services/punchout.d.mts +4 -3
- package/dist/services/punchout.d.ts +4 -3
- package/dist/services/punchout.js +1 -1
- package/dist/services/punchout.js.map +1 -1
- package/dist/services/punchout.mjs +1 -1
- package/dist/services/punchout.mjs.map +1 -1
- package/dist/services/quotes-acceptance.d.mts +1 -0
- package/dist/services/quotes-acceptance.d.ts +1 -0
- package/dist/services/quotes-pricing.d.mts +1 -0
- package/dist/services/quotes-pricing.d.ts +1 -0
- package/dist/services/quotes-quotes.d.mts +1 -0
- package/dist/services/quotes-quotes.d.ts +1 -0
- package/dist/services/quotes-ranges.d.mts +1 -0
- package/dist/services/quotes-ranges.d.ts +1 -0
- package/dist/services/quotes-trail.d.mts +1 -0
- package/dist/services/quotes-trail.d.ts +1 -0
- package/dist/services/reviews-aggregates.d.mts +1 -0
- package/dist/services/reviews-aggregates.d.ts +1 -0
- package/dist/services/reviews-jobs.d.mts +1 -0
- package/dist/services/reviews-jobs.d.ts +1 -0
- package/dist/services/reviews-moderation.d.mts +1 -0
- package/dist/services/reviews-moderation.d.ts +1 -0
- package/dist/services/reviews-privacy.d.mts +1 -0
- package/dist/services/reviews-privacy.d.ts +1 -0
- package/dist/services/reviews-products.d.mts +1 -0
- package/dist/services/reviews-products.d.ts +1 -0
- package/dist/services/reviews-requests.d.mts +1 -0
- package/dist/services/reviews-requests.d.ts +1 -0
- package/dist/services/reviews-reviews.d.mts +1 -0
- package/dist/services/reviews-reviews.d.ts +1 -0
- package/dist/services/reviews-vocabularies.d.mts +1 -0
- package/dist/services/reviews-vocabularies.d.ts +1 -0
- package/dist/services/sales-reps-acting-for.d.mts +1 -0
- package/dist/services/sales-reps-acting-for.d.ts +1 -0
- package/dist/services/sales-reps-coverage.d.mts +1 -0
- package/dist/services/sales-reps-coverage.d.ts +1 -0
- package/dist/services/sales-reps-roster.d.mts +1 -0
- package/dist/services/sales-reps-roster.d.ts +1 -0
- package/dist/services/search.d.mts +1 -0
- package/dist/services/search.d.ts +1 -0
- package/dist/services/settings.d.mts +1 -0
- package/dist/services/settings.d.ts +1 -0
- package/dist/services/shipping-carriers.d.mts +1 -0
- package/dist/services/shipping-carriers.d.ts +1 -0
- package/dist/services/shipping-methods.d.mts +5 -4
- package/dist/services/shipping-methods.d.ts +5 -4
- package/dist/services/shipping-methods.js.map +1 -1
- package/dist/services/shipping-methods.mjs.map +1 -1
- package/dist/services/shipping-value-lists.d.mts +1 -0
- package/dist/services/shipping-value-lists.d.ts +1 -0
- package/dist/services/sites.d.mts +1 -0
- package/dist/services/sites.d.ts +1 -0
- package/dist/services/storage.d.mts +1 -0
- package/dist/services/storage.d.ts +1 -0
- package/dist/services/tag-manager-container.d.mts +1 -0
- package/dist/services/tag-manager-container.d.ts +1 -0
- package/dist/services/tag-manager-delivery.d.mts +1 -0
- package/dist/services/tag-manager-delivery.d.ts +1 -0
- package/dist/services/tag-manager-tags.d.mts +1 -0
- package/dist/services/tag-manager-tags.d.ts +1 -0
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/cost-centers.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Discarded } from '../enums/discarded';\nimport { BudgetType } from '../enums/budget-type';\nimport { Conditions } from '../enums/conditions';\nimport { CostCentersRestrictionsCreateType } from '../enums/cost-centers-restrictions-create-type';\nimport { CostCentersVocabularyName } from '../enums/cost-centers-vocabulary-name';\n\nexport class CostCenters {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersBudgetChangesList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetChangesList(limit?: number, offset?: number, order?: string): Promise<{}>;\n costCentersBudgetChangesList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/cost-centers/budget-changes';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetChange>}\n */\n costCentersBudgetChangesGet(params: { id: string }): Promise<Models.BudgetChange>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetChange>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetChangesGet(id: string): Promise<Models.BudgetChange>;\n costCentersBudgetChangesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.BudgetChange> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/budget-changes/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {Discarded} params.discarded - Discarded drafts are left out by default. 'include' lists them among the rest, 'only' lists nothing else. Any other value is refused with 400.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersBudgetsList(params?: { limit?: number, offset?: number, order?: string, discarded?: Discarded }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {Discarded} discarded - Discarded drafts are left out by default. 'include' lists them among the rest, 'only' lists nothing else. Any other value is refused with 400.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsList(limit?: number, offset?: number, order?: string, discarded?: Discarded): Promise<{}>;\n costCentersBudgetsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, discarded?: Discarded } | number,\n ...rest: [(number)?, (string)?, (Discarded)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, discarded?: Discarded };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, discarded?: Discarded };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n discarded: rest[2] as Discarded \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const discarded = params.discarded;\n\n\n const apiPath = '/v1/cost-centers/budgets';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof discarded !== 'undefined') {\n apiPayload['discarded'] = discarded;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.costCenterId - \n * @param {string} params.name - \n * @param {boolean} params.active - \n * @param {number} params.initialValue - \n * @param {object} params.metadata - \n * @param {number} params.periodLength - \n * @param {string} params.periodStart - \n * @param {boolean} params.recurring - \n * @param {number} params.sequence - \n * @param {object} params.takeover - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n */\n costCentersBudgetsCreate(params: { costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object }): Promise<Models.Budget>;\n /**\n *\n * @param {string} costCenterId - \n * @param {string} name - \n * @param {boolean} active - \n * @param {number} initialValue - \n * @param {object} metadata - \n * @param {number} periodLength - \n * @param {string} periodStart - \n * @param {boolean} recurring - \n * @param {number} sequence - \n * @param {object} takeover - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsCreate(costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object): Promise<Models.Budget>;\n costCentersBudgetsCreate(\n paramsOrFirst: { costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object } | string,\n ...rest: [(string)?, (boolean)?, (number)?, (object)?, (number)?, (string)?, (boolean)?, (number)?, (object)?] \n ): Promise<Models.Budget> {\n let params: { costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object };\n } else {\n params = {\n costCenterId: paramsOrFirst as string,\n name: rest[0] as string,\n active: rest[1] as boolean,\n initialValue: rest[2] as number,\n metadata: rest[3] as object,\n periodLength: rest[4] as number,\n periodStart: rest[5] as string,\n recurring: rest[6] as boolean,\n sequence: rest[7] as number,\n takeover: rest[8] as object \n };\n }\n \n const costCenterId = params.costCenterId;\n const name = params.name;\n const active = params.active;\n const initialValue = params.initialValue;\n const metadata = params.metadata;\n const periodLength = params.periodLength;\n const periodStart = params.periodStart;\n const recurring = params.recurring;\n const sequence = params.sequence;\n const takeover = params.takeover;\n\n if (typeof costCenterId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"costCenterId\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets';\n const apiPayload: Payload = {};\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof initialValue !== 'undefined') {\n apiPayload['initial_value'] = initialValue;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof periodLength !== 'undefined') {\n apiPayload['period_length'] = periodLength;\n }\n if (typeof periodStart !== 'undefined') {\n apiPayload['period_start'] = periodStart;\n }\n if (typeof recurring !== 'undefined') {\n apiPayload['recurring'] = recurring;\n }\n if (typeof sequence !== 'undefined') {\n apiPayload['sequence'] = sequence;\n }\n if (typeof takeover !== 'undefined') {\n apiPayload['takeover'] = takeover;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.today - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetRolloverResult>}\n */\n costCentersBudgetsRollover(params?: { today?: string }): Promise<Models.BudgetRolloverResult>;\n /**\n *\n * @param {string} today - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetRolloverResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsRollover(today?: string): Promise<Models.BudgetRolloverResult>;\n costCentersBudgetsRollover(\n paramsOrFirst?: { today?: string } | string \n ): Promise<Models.BudgetRolloverResult> {\n let params: { today?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { today?: string };\n } else {\n params = {\n today: paramsOrFirst as string \n };\n }\n \n const today = params.today;\n\n\n const apiPath = '/v1/cost-centers/budgets/rollover/run';\n const apiPayload: Payload = {};\n if (typeof today !== 'undefined') {\n apiPayload['today'] = today;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n */\n costCentersBudgetsGet(params: { id: string }): Promise<Models.Budget>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsGet(id: string): Promise<Models.Budget>;\n costCentersBudgetsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Budget> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {boolean} params.active - \n * @param {string} params.costCenterId - \n * @param {number} params.initialValue - \n * @param {object} params.metadata - \n * @param {string} params.name - \n * @param {number} params.periodLength - \n * @param {string} params.periodStart - \n * @param {boolean} params.recurring - \n * @param {number} params.sequence - \n * @param {object} params.takeover - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n */\n costCentersBudgetsUpdate(params: { id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object }): Promise<Models.Budget>;\n /**\n *\n * @param {string} id - \n * @param {boolean} active - \n * @param {string} costCenterId - \n * @param {number} initialValue - \n * @param {object} metadata - \n * @param {string} name - \n * @param {number} periodLength - \n * @param {string} periodStart - \n * @param {boolean} recurring - \n * @param {number} sequence - \n * @param {object} takeover - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsUpdate(id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object): Promise<Models.Budget>;\n costCentersBudgetsUpdate(\n paramsOrFirst: { id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object } | string,\n ...rest: [(boolean)?, (string)?, (number)?, (object)?, (string)?, (number)?, (string)?, (boolean)?, (number)?, (object)?] \n ): Promise<Models.Budget> {\n let params: { id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object };\n } else {\n params = {\n id: paramsOrFirst as string,\n active: rest[0] as boolean,\n costCenterId: rest[1] as string,\n initialValue: rest[2] as number,\n metadata: rest[3] as object,\n name: rest[4] as string,\n periodLength: rest[5] as number,\n periodStart: rest[6] as string,\n recurring: rest[7] as boolean,\n sequence: rest[8] as number,\n takeover: rest[9] as object \n };\n }\n \n const id = params.id;\n const active = params.active;\n const costCenterId = params.costCenterId;\n const initialValue = params.initialValue;\n const metadata = params.metadata;\n const name = params.name;\n const periodLength = params.periodLength;\n const periodStart = params.periodStart;\n const recurring = params.recurring;\n const sequence = params.sequence;\n const takeover = params.takeover;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof initialValue !== 'undefined') {\n apiPayload['initial_value'] = initialValue;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof periodLength !== 'undefined') {\n apiPayload['period_length'] = periodLength;\n }\n if (typeof periodStart !== 'undefined') {\n apiPayload['period_start'] = periodStart;\n }\n if (typeof recurring !== 'undefined') {\n apiPayload['recurring'] = recurring;\n }\n if (typeof sequence !== 'undefined') {\n apiPayload['sequence'] = sequence;\n }\n if (typeof takeover !== 'undefined') {\n apiPayload['takeover'] = takeover;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {string} params.actor - \n * @param {number} params.amount - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @param {number} params.target - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetAdjustResult>}\n */\n costCentersBudgetsAdjust(params: { id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number }): Promise<Models.BudgetAdjustResult>;\n /**\n *\n * @param {string} id - \n * @param {string} actor - \n * @param {number} amount - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @param {number} target - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetAdjustResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsAdjust(id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number): Promise<Models.BudgetAdjustResult>;\n costCentersBudgetsAdjust(\n paramsOrFirst: { id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number } | string,\n ...rest: [(string)?, (number)?, (string)?, (string)?, (number)?] \n ): Promise<Models.BudgetAdjustResult> {\n let params: { id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number };\n } else {\n params = {\n id: paramsOrFirst as string,\n actor: rest[0] as string,\n amount: rest[1] as number,\n currency: rest[2] as string,\n note: rest[3] as string,\n target: rest[4] as number \n };\n }\n \n const id = params.id;\n const actor = params.actor;\n const amount = params.amount;\n const currency = params.currency;\n const note = params.note;\n const target = params.target;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof actor === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"actor\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets/{id}/adjust'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof actor !== 'undefined') {\n apiPayload['actor'] = actor;\n }\n if (typeof amount !== 'undefined') {\n apiPayload['amount'] = amount;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof target !== 'undefined') {\n apiPayload['target'] = target;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {string} params.actor - \n * @param {string} params.note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetAdjustResult>}\n */\n costCentersBudgetsDiscard(params: { id: string, actor?: string, note?: string }): Promise<Models.BudgetAdjustResult>;\n /**\n *\n * @param {string} id - \n * @param {string} actor - \n * @param {string} note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetAdjustResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsDiscard(id: string, actor?: string, note?: string): Promise<Models.BudgetAdjustResult>;\n costCentersBudgetsDiscard(\n paramsOrFirst: { id: string, actor?: string, note?: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<Models.BudgetAdjustResult> {\n let params: { id: string, actor?: string, note?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, actor?: string, note?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n actor: rest[0] as string,\n note: rest[1] as string \n };\n }\n \n const id = params.id;\n const actor = params.actor;\n const note = params.note;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets/{id}/discard'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof actor !== 'undefined') {\n apiPayload['actor'] = actor;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {object[]} params.allocations - \n * @param {string} params.contactId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {boolean} params.dryRun - true runs the pre-flight (currency, no active budget, tracking-only centres) and answers as the real call would — same status, skipped and refusal — while writing nothing and claiming no key. The purchase request / order id may then be omitted.\n * @param {string} params.note - \n * @param {string} params.orderId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersCommit(params: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {object[]} allocations - \n * @param {string} contactId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {boolean} dryRun - true runs the pre-flight (currency, no active budget, tracking-only centres) and answers as the real call would — same status, skipped and refusal — while writing nothing and claiming no key. The purchase request / order id may then be omitted.\n * @param {string} note - \n * @param {string} orderId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCommit(allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string): Promise<Models.BudgetMovementResult>;\n costCentersCommit(\n paramsOrFirst: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string } | object[],\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('allocations' in paramsOrFirst || 'contactId' in paramsOrFirst || 'currency' in paramsOrFirst || 'dryRun' in paramsOrFirst || 'note' in paramsOrFirst || 'orderId' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string };\n } else {\n params = {\n allocations: paramsOrFirst as object[],\n contactId: rest[0] as string,\n currency: rest[1] as string,\n dryRun: rest[2] as boolean,\n note: rest[3] as string,\n orderId: rest[4] as string \n };\n }\n \n const allocations = params.allocations;\n const contactId = params.contactId;\n const currency = params.currency;\n const dryRun = params.dryRun;\n const note = params.note;\n const orderId = params.orderId;\n\n if (typeof allocations === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"allocations\"');\n }\n\n const apiPath = '/v1/cost-centers/commit';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof dryRun !== 'undefined') {\n apiPayload['dry_run'] = dryRun;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.purchaseRequestId - \n * @param {object[]} params.allocations - Optional: the request's allocations (the reserve's shape; an empty array is the same as none, and only cost_center_id is read), used only to classify its cost centres by budget type. A request holding no reservation whose every centre is tracking-only is then settled with nothing written; one naming a monetary centre, or naming none, is refused with 409 as before. Amounts are read from the ledger, never from here.\n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @param {string} params.orderId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersConfirm(params: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {string} purchaseRequestId - \n * @param {object[]} allocations - Optional: the request's allocations (the reserve's shape; an empty array is the same as none, and only cost_center_id is read), used only to classify its cost centres by budget type. A request holding no reservation whose every centre is tracking-only is then settled with nothing written; one naming a monetary centre, or naming none, is refused with 409 as before. Amounts are read from the ledger, never from here.\n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @param {string} orderId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersConfirm(purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string): Promise<Models.BudgetMovementResult>;\n costCentersConfirm(\n paramsOrFirst: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string } | string,\n ...rest: [(object[])?, (string)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string };\n } else {\n params = {\n purchaseRequestId: paramsOrFirst as string,\n allocations: rest[0] as object[],\n currency: rest[1] as string,\n note: rest[2] as string,\n orderId: rest[3] as string \n };\n }\n \n const purchaseRequestId = params.purchaseRequestId;\n const allocations = params.allocations;\n const currency = params.currency;\n const note = params.note;\n const orderId = params.orderId;\n\n if (typeof purchaseRequestId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"purchaseRequestId\"');\n }\n\n const apiPath = '/v1/cost-centers/confirm';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersContactLimitsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n costCentersContactLimitsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/cost-centers/contact-limits';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.contactId - \n * @param {string} params.currency - \n * @param {object} params.metadata - \n * @param {number} params.monetaryLimit - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n */\n costCentersContactLimitsCreate(params: { contactId: string, currency?: string, metadata?: object, monetaryLimit?: number }): Promise<Models.ContactLimit>;\n /**\n *\n * @param {string} contactId - \n * @param {string} currency - \n * @param {object} metadata - \n * @param {number} monetaryLimit - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsCreate(contactId: string, currency?: string, metadata?: object, monetaryLimit?: number): Promise<Models.ContactLimit>;\n costCentersContactLimitsCreate(\n paramsOrFirst: { contactId: string, currency?: string, metadata?: object, monetaryLimit?: number } | string,\n ...rest: [(string)?, (object)?, (number)?] \n ): Promise<Models.ContactLimit> {\n let params: { contactId: string, currency?: string, metadata?: object, monetaryLimit?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { contactId: string, currency?: string, metadata?: object, monetaryLimit?: number };\n } else {\n params = {\n contactId: paramsOrFirst as string,\n currency: rest[0] as string,\n metadata: rest[1] as object,\n monetaryLimit: rest[2] as number \n };\n }\n \n const contactId = params.contactId;\n const currency = params.currency;\n const metadata = params.metadata;\n const monetaryLimit = params.monetaryLimit;\n\n if (typeof contactId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"contactId\"');\n }\n\n const apiPath = '/v1/cost-centers/contact-limits';\n const apiPayload: Payload = {};\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof monetaryLimit !== 'undefined') {\n apiPayload['monetary_limit'] = monetaryLimit;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersContactLimitsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsDelete(id: string): Promise<{}>;\n costCentersContactLimitsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/contact-limits/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n */\n costCentersContactLimitsGet(params: { id: string }): Promise<Models.ContactLimit>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsGet(id: string): Promise<Models.ContactLimit>;\n costCentersContactLimitsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ContactLimit> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/contact-limits/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {string} params.contactId - \n * @param {string} params.currency - \n * @param {object} params.metadata - \n * @param {number} params.monetaryLimit - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n */\n costCentersContactLimitsUpdate(params: { id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number }): Promise<Models.ContactLimit>;\n /**\n *\n * @param {string} id - \n * @param {string} contactId - \n * @param {string} currency - \n * @param {object} metadata - \n * @param {number} monetaryLimit - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsUpdate(id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number): Promise<Models.ContactLimit>;\n costCentersContactLimitsUpdate(\n paramsOrFirst: { id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number } | string,\n ...rest: [(string)?, (string)?, (object)?, (number)?] \n ): Promise<Models.ContactLimit> {\n let params: { id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number };\n } else {\n params = {\n id: paramsOrFirst as string,\n contactId: rest[0] as string,\n currency: rest[1] as string,\n metadata: rest[2] as object,\n monetaryLimit: rest[3] as number \n };\n }\n \n const id = params.id;\n const contactId = params.contactId;\n const currency = params.currency;\n const metadata = params.metadata;\n const monetaryLimit = params.monetaryLimit;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/contact-limits/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof monetaryLimit !== 'undefined') {\n apiPayload['monetary_limit'] = monetaryLimit;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {string} params.punchoutAccountCode - Code of the punchout account the list is read for. Centres a punchout restriction keeps out of reach of that account are left out (and the total counts only what is returned). Omit for the administrative list, which holds nothing back. A value that is not a non-empty string is refused with 400.\n * @param {string} params.externalId - Exact-match filter on the key the system that OWNS the centre knows it by — how an import finds the row it wrote last run instead of opening a second centre and splitting a budget across the two. Unique per tenant, so this answers at most one centre; a centre nobody imported matches nothing.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersCostCentersList(params?: { limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {string} punchoutAccountCode - Code of the punchout account the list is read for. Centres a punchout restriction keeps out of reach of that account are left out (and the total counts only what is returned). Omit for the administrative list, which holds nothing back. A value that is not a non-empty string is refused with 400.\n * @param {string} externalId - Exact-match filter on the key the system that OWNS the centre knows it by — how an import finds the row it wrote last run instead of opening a second centre and splitting a budget across the two. Unique per tenant, so this answers at most one centre; a centre nobody imported matches nothing.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersList(limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string): Promise<{}>;\n costCentersCostCentersList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string } | number,\n ...rest: [(number)?, (string)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n punchoutAccountCode: rest[2] as string,\n externalId: rest[3] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const punchoutAccountCode = params.punchoutAccountCode;\n const externalId = params.externalId;\n\n\n const apiPath = '/v1/cost-centers/cost-centers';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof punchoutAccountCode !== 'undefined') {\n apiPayload['punchout_account_code'] = punchoutAccountCode;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.code - \n * @param {string} params.name - \n * @param {string} params.accountableContactId - \n * @param {boolean} params.active - \n * @param {BudgetType} params.budgetType - \n * @param {string} params.currency - \n * @param {string} params.externalId - The key this cost centre has in the system that OWNS it — the dimension value an ERP books against, which is rarely the `code` a controller types here. Unique per tenant where it is set, so a repeated import upserts on it instead of matching on a name; a centre opened in the Cockpit carries none and never will.\n * @param {object} params.externalRefs - Every OTHER system that knows this cost centre, keyed by system name — a second ERP, the procurement platform a punchout session comes from, the shop this tenant migrated off. `external_id` names the leading system; this is the rest, and the next one costs no column. Answered on read and carrying no query parameter: the store compares such a field as a WHOLE document, so a filter over part of one is refused. Look the centre up by `external_id` and read this off the answer.\n * @param {object} params.metadata - \n * @param {string} params.organizationId - \n * @param {object} params.sourceData - What the source said about this cost centre, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to send back in `If-Match`, and there is nowhere else to keep it between two runs. `raw` holds the source fields this app does not model — a responsible department, an account range — so an edit here does not silently throw them away.\n * @param {string} params.sourceSyncedAt - When this cost centre was last confirmed against its source. A delta run asks the source for what changed since it, and a controller reads it to see that a feed has gone quiet. An edit made HERE does not touch it — it records when the source was last seen, not when the row changed — so a stale value beside a fresh `updated_at` means somebody is maintaining by hand what the ERP has stopped delivering.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n */\n costCentersCostCentersCreate(params: { code: string, name: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, organizationId?: string, sourceData?: object, sourceSyncedAt?: string }): Promise<Models.CostCenter>;\n /**\n *\n * @param {string} code - \n * @param {string} name - \n * @param {string} accountableContactId - \n * @param {boolean} active - \n * @param {BudgetType} budgetType - \n * @param {string} currency - \n * @param {string} externalId - The key this cost centre has in the system that OWNS it — the dimension value an ERP books against, which is rarely the `code` a controller types here. Unique per tenant where it is set, so a repeated import upserts on it instead of matching on a name; a centre opened in the Cockpit carries none and never will.\n * @param {object} externalRefs - Every OTHER system that knows this cost centre, keyed by system name — a second ERP, the procurement platform a punchout session comes from, the shop this tenant migrated off. `external_id` names the leading system; this is the rest, and the next one costs no column. Answered on read and carrying no query parameter: the store compares such a field as a WHOLE document, so a filter over part of one is refused. Look the centre up by `external_id` and read this off the answer.\n * @param {object} metadata - \n * @param {string} organizationId - \n * @param {object} sourceData - What the source said about this cost centre, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to send back in `If-Match`, and there is nowhere else to keep it between two runs. `raw` holds the source fields this app does not model — a responsible department, an account range — so an edit here does not silently throw them away.\n * @param {string} sourceSyncedAt - When this cost centre was last confirmed against its source. A delta run asks the source for what changed since it, and a controller reads it to see that a feed has gone quiet. An edit made HERE does not touch it — it records when the source was last seen, not when the row changed — so a stale value beside a fresh `updated_at` means somebody is maintaining by hand what the ERP has stopped delivering.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersCreate(code: string, name: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, organizationId?: string, sourceData?: object, sourceSyncedAt?: string): Promise<Models.CostCenter>;\n costCentersCostCentersCreate(\n paramsOrFirst: { code: string, name: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, organizationId?: string, sourceData?: object, sourceSyncedAt?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (BudgetType)?, (string)?, (string)?, (object)?, (object)?, (string)?, (object)?, (string)?] \n ): Promise<Models.CostCenter> {\n let params: { code: string, name: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, organizationId?: string, sourceData?: object, sourceSyncedAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: string, name: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, organizationId?: string, sourceData?: object, sourceSyncedAt?: string };\n } else {\n params = {\n code: paramsOrFirst as string,\n name: rest[0] as string,\n accountableContactId: rest[1] as string,\n active: rest[2] as boolean,\n budgetType: rest[3] as BudgetType,\n currency: rest[4] as string,\n externalId: rest[5] as string,\n externalRefs: rest[6] as object,\n metadata: rest[7] as object,\n organizationId: rest[8] as string,\n sourceData: rest[9] as object,\n sourceSyncedAt: rest[10] as string \n };\n }\n \n const code = params.code;\n const name = params.name;\n const accountableContactId = params.accountableContactId;\n const active = params.active;\n const budgetType = params.budgetType;\n const currency = params.currency;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const metadata = params.metadata;\n const organizationId = params.organizationId;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers';\n const apiPayload: Payload = {};\n if (typeof accountableContactId !== 'undefined') {\n apiPayload['accountable_contact_id'] = accountableContactId;\n }\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof budgetType !== 'undefined') {\n apiPayload['budget_type'] = budgetType;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersCostCentersDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersDelete(id: string): Promise<{}>;\n costCentersCostCentersDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n */\n costCentersCostCentersGet(params: { id: string }): Promise<Models.CostCenter>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersGet(id: string): Promise<Models.CostCenter>;\n costCentersCostCentersGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.CostCenter> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {string} params.accountableContactId - \n * @param {boolean} params.active - \n * @param {BudgetType} params.budgetType - \n * @param {string} params.code - \n * @param {string} params.currency - \n * @param {string} params.externalId - The key this cost centre has in the system that OWNS it — the dimension value an ERP books against, which is rarely the `code` a controller types here. Unique per tenant where it is set, so a repeated import upserts on it instead of matching on a name; a centre opened in the Cockpit carries none and never will.\n * @param {object} params.externalRefs - Every OTHER system that knows this cost centre, keyed by system name — a second ERP, the procurement platform a punchout session comes from, the shop this tenant migrated off. `external_id` names the leading system; this is the rest, and the next one costs no column. Answered on read and carrying no query parameter: the store compares such a field as a WHOLE document, so a filter over part of one is refused. Look the centre up by `external_id` and read this off the answer.\n * @param {object} params.metadata - \n * @param {string} params.name - \n * @param {string} params.organizationId - \n * @param {object} params.sourceData - What the source said about this cost centre, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to send back in `If-Match`, and there is nowhere else to keep it between two runs. `raw` holds the source fields this app does not model — a responsible department, an account range — so an edit here does not silently throw them away.\n * @param {string} params.sourceSyncedAt - When this cost centre was last confirmed against its source. A delta run asks the source for what changed since it, and a controller reads it to see that a feed has gone quiet. An edit made HERE does not touch it — it records when the source was last seen, not when the row changed — so a stale value beside a fresh `updated_at` means somebody is maintaining by hand what the ERP has stopped delivering.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n */\n costCentersCostCentersUpdate(params: { id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string }): Promise<Models.CostCenter>;\n /**\n *\n * @param {string} id - \n * @param {string} accountableContactId - \n * @param {boolean} active - \n * @param {BudgetType} budgetType - \n * @param {string} code - \n * @param {string} currency - \n * @param {string} externalId - The key this cost centre has in the system that OWNS it — the dimension value an ERP books against, which is rarely the `code` a controller types here. Unique per tenant where it is set, so a repeated import upserts on it instead of matching on a name; a centre opened in the Cockpit carries none and never will.\n * @param {object} externalRefs - Every OTHER system that knows this cost centre, keyed by system name — a second ERP, the procurement platform a punchout session comes from, the shop this tenant migrated off. `external_id` names the leading system; this is the rest, and the next one costs no column. Answered on read and carrying no query parameter: the store compares such a field as a WHOLE document, so a filter over part of one is refused. Look the centre up by `external_id` and read this off the answer.\n * @param {object} metadata - \n * @param {string} name - \n * @param {string} organizationId - \n * @param {object} sourceData - What the source said about this cost centre, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to send back in `If-Match`, and there is nowhere else to keep it between two runs. `raw` holds the source fields this app does not model — a responsible department, an account range — so an edit here does not silently throw them away.\n * @param {string} sourceSyncedAt - When this cost centre was last confirmed against its source. A delta run asks the source for what changed since it, and a controller reads it to see that a feed has gone quiet. An edit made HERE does not touch it — it records when the source was last seen, not when the row changed — so a stale value beside a fresh `updated_at` means somebody is maintaining by hand what the ERP has stopped delivering.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersUpdate(id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string): Promise<Models.CostCenter>;\n costCentersCostCentersUpdate(\n paramsOrFirst: { id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string } | string,\n ...rest: [(string)?, (boolean)?, (BudgetType)?, (string)?, (string)?, (string)?, (object)?, (object)?, (string)?, (string)?, (object)?, (string)?] \n ): Promise<Models.CostCenter> {\n let params: { id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n accountableContactId: rest[0] as string,\n active: rest[1] as boolean,\n budgetType: rest[2] as BudgetType,\n code: rest[3] as string,\n currency: rest[4] as string,\n externalId: rest[5] as string,\n externalRefs: rest[6] as object,\n metadata: rest[7] as object,\n name: rest[8] as string,\n organizationId: rest[9] as string,\n sourceData: rest[10] as object,\n sourceSyncedAt: rest[11] as string \n };\n }\n \n const id = params.id;\n const accountableContactId = params.accountableContactId;\n const active = params.active;\n const budgetType = params.budgetType;\n const code = params.code;\n const currency = params.currency;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const metadata = params.metadata;\n const name = params.name;\n const organizationId = params.organizationId;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof accountableContactId !== 'undefined') {\n apiPayload['accountable_contact_id'] = accountableContactId;\n }\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof budgetType !== 'undefined') {\n apiPayload['budget_type'] = budgetType;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n */\n costCentersCostCentersArchive(params: { id: string }): Promise<Models.CostCenter>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersArchive(id: string): Promise<Models.CostCenter>;\n costCentersCostCentersArchive(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.CostCenter> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}/archive'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {number} params.amount - \n * @param {string} params.actor - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @param {string} params.orderId - \n * @param {string} params.purchaseRequestId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterConsumeResult>}\n */\n costCentersCostCentersConsume(params: { id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string }): Promise<Models.CostCenterConsumeResult>;\n /**\n *\n * @param {string} id - \n * @param {number} amount - \n * @param {string} actor - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @param {string} orderId - \n * @param {string} purchaseRequestId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterConsumeResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersConsume(id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string): Promise<Models.CostCenterConsumeResult>;\n costCentersCostCentersConsume(\n paramsOrFirst: { id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string } | string,\n ...rest: [(number)?, (string)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.CostCenterConsumeResult> {\n let params: { id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n amount: rest[0] as number,\n actor: rest[1] as string,\n currency: rest[2] as string,\n note: rest[3] as string,\n orderId: rest[4] as string,\n purchaseRequestId: rest[5] as string \n };\n }\n \n const id = params.id;\n const amount = params.amount;\n const actor = params.actor;\n const currency = params.currency;\n const note = params.note;\n const orderId = params.orderId;\n const purchaseRequestId = params.purchaseRequestId;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof amount === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"amount\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}/consume'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof actor !== 'undefined') {\n apiPayload['actor'] = actor;\n }\n if (typeof amount !== 'undefined') {\n apiPayload['amount'] = amount;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.amount - \n * @param {Conditions[]} params.conditions - \n * @param {string} params.contactId - \n * @param {string} params.costCenterId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.punchoutAccountCode - Code of the punchout account the request is made in. Omit outside a punchout session: a cost centre restricted with mode 'only' is then out of reach, and one restricted with 'except' is offered. A value that is not a non-empty string is refused with 400.\n * @throws {RevenexxException}\n * @returns {Promise<Models.EvaluateResult>}\n */\n costCentersEvaluate(params: { amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string }): Promise<Models.EvaluateResult>;\n /**\n *\n * @param {number} amount - \n * @param {Conditions[]} conditions - \n * @param {string} contactId - \n * @param {string} costCenterId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} punchoutAccountCode - Code of the punchout account the request is made in. Omit outside a punchout session: a cost centre restricted with mode 'only' is then out of reach, and one restricted with 'except' is offered. A value that is not a non-empty string is refused with 400.\n * @throws {RevenexxException}\n * @returns {Promise<Models.EvaluateResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersEvaluate(amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string): Promise<Models.EvaluateResult>;\n costCentersEvaluate(\n paramsOrFirst: { amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string } | number,\n ...rest: [(Conditions[])?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.EvaluateResult> {\n let params: { amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string };\n } else {\n params = {\n amount: paramsOrFirst as number,\n conditions: rest[0] as Conditions[],\n contactId: rest[1] as string,\n costCenterId: rest[2] as string,\n currency: rest[3] as string,\n punchoutAccountCode: rest[4] as string \n };\n }\n \n const amount = params.amount;\n const conditions = params.conditions;\n const contactId = params.contactId;\n const costCenterId = params.costCenterId;\n const currency = params.currency;\n const punchoutAccountCode = params.punchoutAccountCode;\n\n if (typeof amount === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"amount\"');\n }\n\n const apiPath = '/v1/cost-centers/evaluate';\n const apiPayload: Payload = {};\n if (typeof amount !== 'undefined') {\n apiPayload['amount'] = amount;\n }\n if (typeof conditions !== 'undefined') {\n apiPayload['conditions'] = conditions;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof punchoutAccountCode !== 'undefined') {\n apiPayload['punchout_account_code'] = punchoutAccountCode;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.key - Idempotency key of this cancellation within the order (e.g. the cancellation id, or cancellation_id:item_id for one item). A repeat under the same key gives nothing back again.\n * @param {string} params.orderId - \n * @param {object[]} params.allocations - Optional: the amount to give back per cost centre, capped at what the order booked there. Omit to give back everything still booked for the order.\n * @param {string} params.contactId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersRelease(params: { key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {string} key - Idempotency key of this cancellation within the order (e.g. the cancellation id, or cancellation_id:item_id for one item). A repeat under the same key gives nothing back again.\n * @param {string} orderId - \n * @param {object[]} allocations - Optional: the amount to give back per cost centre, capped at what the order booked there. Omit to give back everything still booked for the order.\n * @param {string} contactId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRelease(key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string): Promise<Models.BudgetMovementResult>;\n costCentersRelease(\n paramsOrFirst: { key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string } | string,\n ...rest: [(string)?, (object[])?, (string)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string };\n } else {\n params = {\n key: paramsOrFirst as string,\n orderId: rest[0] as string,\n allocations: rest[1] as object[],\n contactId: rest[2] as string,\n currency: rest[3] as string,\n note: rest[4] as string \n };\n }\n \n const key = params.key;\n const orderId = params.orderId;\n const allocations = params.allocations;\n const contactId = params.contactId;\n const currency = params.currency;\n const note = params.note;\n\n if (typeof key === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"key\"');\n }\n if (typeof orderId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"orderId\"');\n }\n\n const apiPath = '/v1/cost-centers/release';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof key !== 'undefined') {\n apiPayload['key'] = key;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {object[]} params.allocations - \n * @param {string} params.contactId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {boolean} params.dryRun - true runs the pre-flight (currency, no active budget, tracking-only centres) and answers as the real call would — same status, skipped and refusal — while writing nothing and claiming no key. The purchase request / order id may then be omitted.\n * @param {string} params.note - \n * @param {string} params.purchaseRequestId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersReserve(params: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {object[]} allocations - \n * @param {string} contactId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {boolean} dryRun - true runs the pre-flight (currency, no active budget, tracking-only centres) and answers as the real call would — same status, skipped and refusal — while writing nothing and claiming no key. The purchase request / order id may then be omitted.\n * @param {string} note - \n * @param {string} purchaseRequestId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersReserve(allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string): Promise<Models.BudgetMovementResult>;\n costCentersReserve(\n paramsOrFirst: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string } | object[],\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('allocations' in paramsOrFirst || 'contactId' in paramsOrFirst || 'currency' in paramsOrFirst || 'dryRun' in paramsOrFirst || 'note' in paramsOrFirst || 'purchaseRequestId' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string };\n } else {\n params = {\n allocations: paramsOrFirst as object[],\n contactId: rest[0] as string,\n currency: rest[1] as string,\n dryRun: rest[2] as boolean,\n note: rest[3] as string,\n purchaseRequestId: rest[4] as string \n };\n }\n \n const allocations = params.allocations;\n const contactId = params.contactId;\n const currency = params.currency;\n const dryRun = params.dryRun;\n const note = params.note;\n const purchaseRequestId = params.purchaseRequestId;\n\n if (typeof allocations === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"allocations\"');\n }\n\n const apiPath = '/v1/cost-centers/reserve';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof dryRun !== 'undefined') {\n apiPayload['dry_run'] = dryRun;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {object[]} params.allocations - \n * @param {string} params.purchaseRequestId - \n * @param {string} params.contactId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersReserveAdjust(params: { allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {object[]} allocations - \n * @param {string} purchaseRequestId - \n * @param {string} contactId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersReserveAdjust(allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string): Promise<Models.BudgetMovementResult>;\n costCentersReserveAdjust(\n paramsOrFirst: { allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string } | object[],\n ...rest: [(string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('allocations' in paramsOrFirst || 'purchaseRequestId' in paramsOrFirst || 'contactId' in paramsOrFirst || 'currency' in paramsOrFirst || 'note' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string };\n } else {\n params = {\n allocations: paramsOrFirst as object[],\n purchaseRequestId: rest[0] as string,\n contactId: rest[1] as string,\n currency: rest[2] as string,\n note: rest[3] as string \n };\n }\n \n const allocations = params.allocations;\n const purchaseRequestId = params.purchaseRequestId;\n const contactId = params.contactId;\n const currency = params.currency;\n const note = params.note;\n\n if (typeof allocations === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"allocations\"');\n }\n if (typeof purchaseRequestId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"purchaseRequestId\"');\n }\n\n const apiPath = '/v1/cost-centers/reserve/adjust';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersRestrictionsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n costCentersRestrictionsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/cost-centers/restrictions';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.costCenterId - \n * @param {object} params.parameters - \n * @param {CostCentersRestrictionsCreateType} params.type - \n * @param {boolean} params.active - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n */\n costCentersRestrictionsCreate(params: { costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean }): Promise<Models.CostCenterRestriction>;\n /**\n *\n * @param {string} costCenterId - \n * @param {object} parameters - \n * @param {CostCentersRestrictionsCreateType} type - \n * @param {boolean} active - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsCreate(costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean): Promise<Models.CostCenterRestriction>;\n costCentersRestrictionsCreate(\n paramsOrFirst: { costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean } | string,\n ...rest: [(object)?, (CostCentersRestrictionsCreateType)?, (boolean)?] \n ): Promise<Models.CostCenterRestriction> {\n let params: { costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean };\n } else {\n params = {\n costCenterId: paramsOrFirst as string,\n parameters: rest[0] as object,\n type: rest[1] as CostCentersRestrictionsCreateType,\n active: rest[2] as boolean \n };\n }\n \n const costCenterId = params.costCenterId;\n const parameters = params.parameters;\n const type = params.type;\n const active = params.active;\n\n if (typeof costCenterId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"costCenterId\"');\n }\n if (typeof parameters === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"parameters\"');\n }\n if (typeof type === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/v1/cost-centers/restrictions';\n const apiPayload: Payload = {};\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof parameters !== 'undefined') {\n apiPayload['parameters'] = parameters;\n }\n if (typeof type !== 'undefined') {\n apiPayload['type'] = type;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersRestrictionsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsDelete(id: string): Promise<{}>;\n costCentersRestrictionsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/restrictions/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n */\n costCentersRestrictionsGet(params: { id: string }): Promise<Models.CostCenterRestriction>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsGet(id: string): Promise<Models.CostCenterRestriction>;\n costCentersRestrictionsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.CostCenterRestriction> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/restrictions/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {boolean} params.active - \n * @param {string} params.costCenterId - \n * @param {object} params.parameters - \n * @param {CostCentersRestrictionsCreateType} params.type - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n */\n costCentersRestrictionsUpdate(params: { id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType }): Promise<Models.CostCenterRestriction>;\n /**\n *\n * @param {string} id - \n * @param {boolean} active - \n * @param {string} costCenterId - \n * @param {object} parameters - \n * @param {CostCentersRestrictionsCreateType} type - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsUpdate(id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType): Promise<Models.CostCenterRestriction>;\n costCentersRestrictionsUpdate(\n paramsOrFirst: { id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType } | string,\n ...rest: [(boolean)?, (string)?, (object)?, (CostCentersRestrictionsCreateType)?] \n ): Promise<Models.CostCenterRestriction> {\n let params: { id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType };\n } else {\n params = {\n id: paramsOrFirst as string,\n active: rest[0] as boolean,\n costCenterId: rest[1] as string,\n parameters: rest[2] as object,\n type: rest[3] as CostCentersRestrictionsCreateType \n };\n }\n \n const id = params.id;\n const active = params.active;\n const costCenterId = params.costCenterId;\n const parameters = params.parameters;\n const type = params.type;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/restrictions/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof parameters !== 'undefined') {\n apiPayload['parameters'] = parameters;\n }\n if (typeof type !== 'undefined') {\n apiPayload['type'] = type;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {object[]} params.lines - \n * @param {string} params.contactId - \n * @param {string} params.organizationId - \n * @param {string} params.punchoutAccountCode - Code of the punchout account the request is made in. Omit outside a punchout session: a cost centre restricted with mode 'only' is then out of reach, and one restricted with 'except' is offered. A value that is not a non-empty string is refused with 400.\n * @param {string[]} params.roles - \n * @throws {RevenexxException}\n * @returns {Promise<Models.UsableResult>}\n */\n costCentersUsable(params: { lines: object[], contactId?: string, organizationId?: string, punchoutAccountCode?: string, roles?: string[] }): Promise<Models.UsableResult>;\n /**\n *\n * @param {object[]} lines - \n * @param {string} contactId - \n * @param {string} organizationId - \n * @param {string} punchoutAccountCode - Code of the punchout account the request is made in. Omit outside a punchout session: a cost centre restricted with mode 'only' is then out of reach, and one restricted with 'except' is offered. A value that is not a non-empty string is refused with 400.\n * @param {string[]} roles - \n * @throws {RevenexxException}\n * @returns {Promise<Models.UsableResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersUsable(lines: object[], contactId?: string, organizationId?: string, punchoutAccountCode?: string, roles?: string[]): Promise<Models.UsableResult>;\n costCentersUsable(\n paramsOrFirst: { lines: object[], contactId?: string, organizationId?: string, punchoutAccountCode?: string, roles?: string[] } | object[],\n ...rest: [(string)?, (string)?, (string)?, (string[])?] \n ): Promise<Models.UsableResult> {\n let params: { lines: object[], contactId?: string, organizationId?: string, punchoutAccountCode?: string, roles?: string[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('lines' in paramsOrFirst || 'contactId' in paramsOrFirst || 'organizationId' in paramsOrFirst || 'punchoutAccountCode' in paramsOrFirst || 'roles' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { lines: object[], contactId?: string, organizationId?: string, punchoutAccountCode?: string, roles?: string[] };\n } else {\n params = {\n lines: paramsOrFirst as object[],\n contactId: rest[0] as string,\n organizationId: rest[1] as string,\n punchoutAccountCode: rest[2] as string,\n roles: rest[3] as string[] \n };\n }\n \n const lines = params.lines;\n const contactId = params.contactId;\n const organizationId = params.organizationId;\n const punchoutAccountCode = params.punchoutAccountCode;\n const roles = params.roles;\n\n if (typeof lines === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"lines\"');\n }\n\n const apiPath = '/v1/cost-centers/usable';\n const apiPayload: Payload = {};\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof lines !== 'undefined') {\n apiPayload['lines'] = lines;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof punchoutAccountCode !== 'undefined') {\n apiPayload['punchout_account_code'] = punchoutAccountCode;\n }\n if (typeof roles !== 'undefined') {\n apiPayload['roles'] = roles;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCentersVocabularyIndex>}\n */\n costCentersVocabularies(): Promise<Models.CostCentersVocabularyIndex> {\n\n const apiPath = '/v1/cost-centers/vocabularies';\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {CostCentersVocabularyName} params.name - Which vocabulary to read. The enum is exhaustive; anything else is a 404.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCentersVocabulary>}\n */\n costCentersVocabulary(params: { name: CostCentersVocabularyName }): Promise<Models.CostCentersVocabulary>;\n /**\n *\n * @param {CostCentersVocabularyName} name - Which vocabulary to read. The enum is exhaustive; anything else is a 404.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCentersVocabulary>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersVocabulary(name: CostCentersVocabularyName): Promise<Models.CostCentersVocabulary>;\n costCentersVocabulary(\n paramsOrFirst: { name: CostCentersVocabularyName } | CostCentersVocabularyName \n ): Promise<Models.CostCentersVocabulary> {\n let params: { name: CostCentersVocabularyName };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('name' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: CostCentersVocabularyName };\n } else {\n params = {\n name: paramsOrFirst as CostCentersVocabularyName \n };\n }\n \n const name = params.name;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/cost-centers/vocabularies/{name}'.replace('{name}', name);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.purchaseRequestId - \n * @param {object[]} params.allocations - Optional: the request's allocations (the reserve's shape; an empty array is the same as none, and only cost_center_id is read), used only to classify its cost centres by budget type. A request holding no reservation whose every centre is tracking-only is then settled with nothing written; one naming a monetary centre, or naming none, is refused with 409 as before. Amounts are read from the ledger, never from here.\n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersWithdraw(params: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {string} purchaseRequestId - \n * @param {object[]} allocations - Optional: the request's allocations (the reserve's shape; an empty array is the same as none, and only cost_center_id is read), used only to classify its cost centres by budget type. A request holding no reservation whose every centre is tracking-only is then settled with nothing written; one naming a monetary centre, or naming none, is refused with 409 as before. Amounts are read from the ledger, never from here.\n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersWithdraw(purchaseRequestId: string, allocations?: object[], currency?: string, note?: string): Promise<Models.BudgetMovementResult>;\n costCentersWithdraw(\n paramsOrFirst: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string } | string,\n ...rest: [(object[])?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string };\n } else {\n params = {\n purchaseRequestId: paramsOrFirst as string,\n allocations: rest[0] as object[],\n currency: rest[1] as string,\n note: rest[2] as string \n };\n }\n \n const purchaseRequestId = params.purchaseRequestId;\n const allocations = params.allocations;\n const currency = params.currency;\n const note = params.note;\n\n if (typeof purchaseRequestId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"purchaseRequestId\"');\n }\n\n const apiPath = '/v1/cost-centers/withdraw';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/services/cost-centers.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Discarded } from '../enums/discarded';\nimport { BudgetType } from '../enums/budget-type';\nimport { Conditions } from '../enums/conditions';\nimport { CostCentersRestrictionsCreateType } from '../enums/cost-centers-restrictions-create-type';\nimport { CostCentersVocabularyName } from '../enums/cost-centers-vocabulary-name';\n\nexport class CostCenters {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersBudgetChangesList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetChangesList(limit?: number, offset?: number, order?: string): Promise<{}>;\n costCentersBudgetChangesList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/cost-centers/budget-changes';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetChange>}\n */\n costCentersBudgetChangesGet(params: { id: string }): Promise<Models.BudgetChange>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetChange>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetChangesGet(id: string): Promise<Models.BudgetChange>;\n costCentersBudgetChangesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.BudgetChange> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/budget-changes/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {Discarded} params.discarded - Discarded drafts are left out by default. 'include' lists them among the rest, 'only' lists nothing else. Any other value is refused with 400.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersBudgetsList(params?: { limit?: number, offset?: number, order?: string, discarded?: Discarded }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {Discarded} discarded - Discarded drafts are left out by default. 'include' lists them among the rest, 'only' lists nothing else. Any other value is refused with 400.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsList(limit?: number, offset?: number, order?: string, discarded?: Discarded): Promise<{}>;\n costCentersBudgetsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, discarded?: Discarded } | number,\n ...rest: [(number)?, (string)?, (Discarded)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, discarded?: Discarded };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, discarded?: Discarded };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n discarded: rest[2] as Discarded \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const discarded = params.discarded;\n\n\n const apiPath = '/v1/cost-centers/budgets';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof discarded !== 'undefined') {\n apiPayload['discarded'] = discarded;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.costCenterId - \n * @param {string} params.name - \n * @param {boolean} params.active - \n * @param {number} params.initialValue - \n * @param {object} params.metadata - \n * @param {number} params.periodLength - \n * @param {string} params.periodStart - \n * @param {boolean} params.recurring - \n * @param {number} params.sequence - \n * @param {object} params.takeover - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n */\n costCentersBudgetsCreate(params: { costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object }): Promise<Models.Budget>;\n /**\n *\n * @param {string} costCenterId - \n * @param {string} name - \n * @param {boolean} active - \n * @param {number} initialValue - \n * @param {object} metadata - \n * @param {number} periodLength - \n * @param {string} periodStart - \n * @param {boolean} recurring - \n * @param {number} sequence - \n * @param {object} takeover - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsCreate(costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object): Promise<Models.Budget>;\n costCentersBudgetsCreate(\n paramsOrFirst: { costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object } | string,\n ...rest: [(string)?, (boolean)?, (number)?, (object)?, (number)?, (string)?, (boolean)?, (number)?, (object)?] \n ): Promise<Models.Budget> {\n let params: { costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { costCenterId: string, name: string, active?: boolean, initialValue?: number, metadata?: object, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object };\n } else {\n params = {\n costCenterId: paramsOrFirst as string,\n name: rest[0] as string,\n active: rest[1] as boolean,\n initialValue: rest[2] as number,\n metadata: rest[3] as object,\n periodLength: rest[4] as number,\n periodStart: rest[5] as string,\n recurring: rest[6] as boolean,\n sequence: rest[7] as number,\n takeover: rest[8] as object \n };\n }\n \n const costCenterId = params.costCenterId;\n const name = params.name;\n const active = params.active;\n const initialValue = params.initialValue;\n const metadata = params.metadata;\n const periodLength = params.periodLength;\n const periodStart = params.periodStart;\n const recurring = params.recurring;\n const sequence = params.sequence;\n const takeover = params.takeover;\n\n if (typeof costCenterId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"costCenterId\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets';\n const apiPayload: Payload = {};\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof initialValue !== 'undefined') {\n apiPayload['initial_value'] = initialValue;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof periodLength !== 'undefined') {\n apiPayload['period_length'] = periodLength;\n }\n if (typeof periodStart !== 'undefined') {\n apiPayload['period_start'] = periodStart;\n }\n if (typeof recurring !== 'undefined') {\n apiPayload['recurring'] = recurring;\n }\n if (typeof sequence !== 'undefined') {\n apiPayload['sequence'] = sequence;\n }\n if (typeof takeover !== 'undefined') {\n apiPayload['takeover'] = takeover;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.today - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetRolloverResult>}\n */\n costCentersBudgetsRollover(params?: { today?: string }): Promise<Models.BudgetRolloverResult>;\n /**\n *\n * @param {string} today - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetRolloverResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsRollover(today?: string): Promise<Models.BudgetRolloverResult>;\n costCentersBudgetsRollover(\n paramsOrFirst?: { today?: string } | string \n ): Promise<Models.BudgetRolloverResult> {\n let params: { today?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { today?: string };\n } else {\n params = {\n today: paramsOrFirst as string \n };\n }\n \n const today = params.today;\n\n\n const apiPath = '/v1/cost-centers/budgets/rollover/run';\n const apiPayload: Payload = {};\n if (typeof today !== 'undefined') {\n apiPayload['today'] = today;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n */\n costCentersBudgetsGet(params: { id: string }): Promise<Models.Budget>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsGet(id: string): Promise<Models.Budget>;\n costCentersBudgetsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Budget> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {boolean} params.active - \n * @param {string} params.costCenterId - \n * @param {number} params.initialValue - \n * @param {object} params.metadata - \n * @param {string} params.name - \n * @param {number} params.periodLength - \n * @param {string} params.periodStart - \n * @param {boolean} params.recurring - \n * @param {number} params.sequence - \n * @param {object} params.takeover - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n */\n costCentersBudgetsUpdate(params: { id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object }): Promise<Models.Budget>;\n /**\n *\n * @param {string} id - \n * @param {boolean} active - \n * @param {string} costCenterId - \n * @param {number} initialValue - \n * @param {object} metadata - \n * @param {string} name - \n * @param {number} periodLength - \n * @param {string} periodStart - \n * @param {boolean} recurring - \n * @param {number} sequence - \n * @param {object} takeover - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Budget>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsUpdate(id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object): Promise<Models.Budget>;\n costCentersBudgetsUpdate(\n paramsOrFirst: { id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object } | string,\n ...rest: [(boolean)?, (string)?, (number)?, (object)?, (string)?, (number)?, (string)?, (boolean)?, (number)?, (object)?] \n ): Promise<Models.Budget> {\n let params: { id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, active?: boolean, costCenterId?: string, initialValue?: number, metadata?: object, name?: string, periodLength?: number, periodStart?: string, recurring?: boolean, sequence?: number, takeover?: object };\n } else {\n params = {\n id: paramsOrFirst as string,\n active: rest[0] as boolean,\n costCenterId: rest[1] as string,\n initialValue: rest[2] as number,\n metadata: rest[3] as object,\n name: rest[4] as string,\n periodLength: rest[5] as number,\n periodStart: rest[6] as string,\n recurring: rest[7] as boolean,\n sequence: rest[8] as number,\n takeover: rest[9] as object \n };\n }\n \n const id = params.id;\n const active = params.active;\n const costCenterId = params.costCenterId;\n const initialValue = params.initialValue;\n const metadata = params.metadata;\n const name = params.name;\n const periodLength = params.periodLength;\n const periodStart = params.periodStart;\n const recurring = params.recurring;\n const sequence = params.sequence;\n const takeover = params.takeover;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof initialValue !== 'undefined') {\n apiPayload['initial_value'] = initialValue;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof periodLength !== 'undefined') {\n apiPayload['period_length'] = periodLength;\n }\n if (typeof periodStart !== 'undefined') {\n apiPayload['period_start'] = periodStart;\n }\n if (typeof recurring !== 'undefined') {\n apiPayload['recurring'] = recurring;\n }\n if (typeof sequence !== 'undefined') {\n apiPayload['sequence'] = sequence;\n }\n if (typeof takeover !== 'undefined') {\n apiPayload['takeover'] = takeover;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {string} params.actor - \n * @param {number} params.amount - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @param {number} params.target - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetAdjustResult>}\n */\n costCentersBudgetsAdjust(params: { id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number }): Promise<Models.BudgetAdjustResult>;\n /**\n *\n * @param {string} id - \n * @param {string} actor - \n * @param {number} amount - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @param {number} target - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetAdjustResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsAdjust(id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number): Promise<Models.BudgetAdjustResult>;\n costCentersBudgetsAdjust(\n paramsOrFirst: { id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number } | string,\n ...rest: [(string)?, (number)?, (string)?, (string)?, (number)?] \n ): Promise<Models.BudgetAdjustResult> {\n let params: { id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, actor: string, amount?: number, currency?: string, note?: string, target?: number };\n } else {\n params = {\n id: paramsOrFirst as string,\n actor: rest[0] as string,\n amount: rest[1] as number,\n currency: rest[2] as string,\n note: rest[3] as string,\n target: rest[4] as number \n };\n }\n \n const id = params.id;\n const actor = params.actor;\n const amount = params.amount;\n const currency = params.currency;\n const note = params.note;\n const target = params.target;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof actor === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"actor\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets/{id}/adjust'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof actor !== 'undefined') {\n apiPayload['actor'] = actor;\n }\n if (typeof amount !== 'undefined') {\n apiPayload['amount'] = amount;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof target !== 'undefined') {\n apiPayload['target'] = target;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {string} params.actor - \n * @param {string} params.note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetAdjustResult>}\n */\n costCentersBudgetsDiscard(params: { id: string, actor?: string, note?: string }): Promise<Models.BudgetAdjustResult>;\n /**\n *\n * @param {string} id - \n * @param {string} actor - \n * @param {string} note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetAdjustResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersBudgetsDiscard(id: string, actor?: string, note?: string): Promise<Models.BudgetAdjustResult>;\n costCentersBudgetsDiscard(\n paramsOrFirst: { id: string, actor?: string, note?: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<Models.BudgetAdjustResult> {\n let params: { id: string, actor?: string, note?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, actor?: string, note?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n actor: rest[0] as string,\n note: rest[1] as string \n };\n }\n \n const id = params.id;\n const actor = params.actor;\n const note = params.note;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/budgets/{id}/discard'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof actor !== 'undefined') {\n apiPayload['actor'] = actor;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {object[]} params.allocations - \n * @param {string} params.contactId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {boolean} params.dryRun - true runs the pre-flight (currency, no active budget, tracking-only centres) and answers as the real call would — same status, skipped and refusal — while writing nothing and claiming no key. The purchase request / order id may then be omitted.\n * @param {string} params.note - \n * @param {string} params.orderId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersCommit(params: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {object[]} allocations - \n * @param {string} contactId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {boolean} dryRun - true runs the pre-flight (currency, no active budget, tracking-only centres) and answers as the real call would — same status, skipped and refusal — while writing nothing and claiming no key. The purchase request / order id may then be omitted.\n * @param {string} note - \n * @param {string} orderId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCommit(allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string): Promise<Models.BudgetMovementResult>;\n costCentersCommit(\n paramsOrFirst: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string } | object[],\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('allocations' in paramsOrFirst || 'contactId' in paramsOrFirst || 'currency' in paramsOrFirst || 'dryRun' in paramsOrFirst || 'note' in paramsOrFirst || 'orderId' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, orderId?: string };\n } else {\n params = {\n allocations: paramsOrFirst as object[],\n contactId: rest[0] as string,\n currency: rest[1] as string,\n dryRun: rest[2] as boolean,\n note: rest[3] as string,\n orderId: rest[4] as string \n };\n }\n \n const allocations = params.allocations;\n const contactId = params.contactId;\n const currency = params.currency;\n const dryRun = params.dryRun;\n const note = params.note;\n const orderId = params.orderId;\n\n if (typeof allocations === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"allocations\"');\n }\n\n const apiPath = '/v1/cost-centers/commit';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof dryRun !== 'undefined') {\n apiPayload['dry_run'] = dryRun;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.purchaseRequestId - \n * @param {object[]} params.allocations - Optional: the request's allocations (the reserve's shape; an empty array is the same as none, and only cost_center_id is read), used only to classify its cost centres by budget type. A request holding no reservation whose every centre is tracking-only is then settled with nothing written; one naming a monetary centre, or naming none, is refused with 409 as before. Amounts are read from the ledger, never from here.\n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @param {string} params.orderId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersConfirm(params: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {string} purchaseRequestId - \n * @param {object[]} allocations - Optional: the request's allocations (the reserve's shape; an empty array is the same as none, and only cost_center_id is read), used only to classify its cost centres by budget type. A request holding no reservation whose every centre is tracking-only is then settled with nothing written; one naming a monetary centre, or naming none, is refused with 409 as before. Amounts are read from the ledger, never from here.\n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @param {string} orderId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersConfirm(purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string): Promise<Models.BudgetMovementResult>;\n costCentersConfirm(\n paramsOrFirst: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string } | string,\n ...rest: [(object[])?, (string)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string, orderId?: string };\n } else {\n params = {\n purchaseRequestId: paramsOrFirst as string,\n allocations: rest[0] as object[],\n currency: rest[1] as string,\n note: rest[2] as string,\n orderId: rest[3] as string \n };\n }\n \n const purchaseRequestId = params.purchaseRequestId;\n const allocations = params.allocations;\n const currency = params.currency;\n const note = params.note;\n const orderId = params.orderId;\n\n if (typeof purchaseRequestId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"purchaseRequestId\"');\n }\n\n const apiPath = '/v1/cost-centers/confirm';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersContactLimitsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n costCentersContactLimitsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/cost-centers/contact-limits';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.contactId - \n * @param {string} params.currency - \n * @param {object} params.metadata - \n * @param {number} params.monetaryLimit - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n */\n costCentersContactLimitsCreate(params: { contactId: string, currency?: string, metadata?: object, monetaryLimit?: number }): Promise<Models.ContactLimit>;\n /**\n *\n * @param {string} contactId - \n * @param {string} currency - \n * @param {object} metadata - \n * @param {number} monetaryLimit - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsCreate(contactId: string, currency?: string, metadata?: object, monetaryLimit?: number): Promise<Models.ContactLimit>;\n costCentersContactLimitsCreate(\n paramsOrFirst: { contactId: string, currency?: string, metadata?: object, monetaryLimit?: number } | string,\n ...rest: [(string)?, (object)?, (number)?] \n ): Promise<Models.ContactLimit> {\n let params: { contactId: string, currency?: string, metadata?: object, monetaryLimit?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { contactId: string, currency?: string, metadata?: object, monetaryLimit?: number };\n } else {\n params = {\n contactId: paramsOrFirst as string,\n currency: rest[0] as string,\n metadata: rest[1] as object,\n monetaryLimit: rest[2] as number \n };\n }\n \n const contactId = params.contactId;\n const currency = params.currency;\n const metadata = params.metadata;\n const monetaryLimit = params.monetaryLimit;\n\n if (typeof contactId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"contactId\"');\n }\n\n const apiPath = '/v1/cost-centers/contact-limits';\n const apiPayload: Payload = {};\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof monetaryLimit !== 'undefined') {\n apiPayload['monetary_limit'] = monetaryLimit;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersContactLimitsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsDelete(id: string): Promise<{}>;\n costCentersContactLimitsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/contact-limits/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n */\n costCentersContactLimitsGet(params: { id: string }): Promise<Models.ContactLimit>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsGet(id: string): Promise<Models.ContactLimit>;\n costCentersContactLimitsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ContactLimit> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/contact-limits/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {string} params.contactId - \n * @param {string} params.currency - \n * @param {object} params.metadata - \n * @param {number} params.monetaryLimit - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n */\n costCentersContactLimitsUpdate(params: { id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number }): Promise<Models.ContactLimit>;\n /**\n *\n * @param {string} id - \n * @param {string} contactId - \n * @param {string} currency - \n * @param {object} metadata - \n * @param {number} monetaryLimit - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ContactLimit>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersContactLimitsUpdate(id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number): Promise<Models.ContactLimit>;\n costCentersContactLimitsUpdate(\n paramsOrFirst: { id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number } | string,\n ...rest: [(string)?, (string)?, (object)?, (number)?] \n ): Promise<Models.ContactLimit> {\n let params: { id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, contactId?: string, currency?: string, metadata?: object, monetaryLimit?: number };\n } else {\n params = {\n id: paramsOrFirst as string,\n contactId: rest[0] as string,\n currency: rest[1] as string,\n metadata: rest[2] as object,\n monetaryLimit: rest[3] as number \n };\n }\n \n const id = params.id;\n const contactId = params.contactId;\n const currency = params.currency;\n const metadata = params.metadata;\n const monetaryLimit = params.monetaryLimit;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/contact-limits/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof monetaryLimit !== 'undefined') {\n apiPayload['monetary_limit'] = monetaryLimit;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {string} params.punchoutAccountCode - Code of the punchout account the list is read for. Centres a punchout restriction keeps out of reach of that account are left out (and the total counts only what is returned). Omit for the administrative list, which holds nothing back. A value that is not a non-empty string is refused with 400.\n * @param {string} params.externalId - Exact-match filter on the key the system that OWNS the centre knows it by — how an import finds the row it wrote last run instead of opening a second centre and splitting a budget across the two. Unique per tenant, so this answers at most one centre; a centre nobody imported matches nothing.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersCostCentersList(params?: { limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {string} punchoutAccountCode - Code of the punchout account the list is read for. Centres a punchout restriction keeps out of reach of that account are left out (and the total counts only what is returned). Omit for the administrative list, which holds nothing back. A value that is not a non-empty string is refused with 400.\n * @param {string} externalId - Exact-match filter on the key the system that OWNS the centre knows it by — how an import finds the row it wrote last run instead of opening a second centre and splitting a budget across the two. Unique per tenant, so this answers at most one centre; a centre nobody imported matches nothing.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersList(limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string): Promise<{}>;\n costCentersCostCentersList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string } | number,\n ...rest: [(number)?, (string)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, punchoutAccountCode?: string, externalId?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n punchoutAccountCode: rest[2] as string,\n externalId: rest[3] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const punchoutAccountCode = params.punchoutAccountCode;\n const externalId = params.externalId;\n\n\n const apiPath = '/v1/cost-centers/cost-centers';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof punchoutAccountCode !== 'undefined') {\n apiPayload['punchout_account_code'] = punchoutAccountCode;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.code - \n * @param {string} params.name - \n * @param {string} params.organizationId - \n * @param {string} params.accountableContactId - \n * @param {boolean} params.active - \n * @param {BudgetType} params.budgetType - \n * @param {string} params.currency - \n * @param {string} params.externalId - The key this cost centre has in the system that OWNS it — the dimension value an ERP books against, which is rarely the `code` a controller types here. Unique per tenant where it is set, so a repeated import upserts on it instead of matching on a name; a centre opened in the Cockpit carries none and never will.\n * @param {object} params.externalRefs - Every OTHER system that knows this cost centre, keyed by system name — a second ERP, the procurement platform a punchout session comes from, the shop this tenant migrated off. `external_id` names the leading system; this is the rest, and the next one costs no column. Answered on read and carrying no query parameter: the store compares such a field as a WHOLE document, so a filter over part of one is refused. Look the centre up by `external_id` and read this off the answer.\n * @param {object} params.metadata - \n * @param {object} params.sourceData - What the source said about this cost centre, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to send back in `If-Match`, and there is nowhere else to keep it between two runs. `raw` holds the source fields this app does not model — a responsible department, an account range — so an edit here does not silently throw them away.\n * @param {string} params.sourceSyncedAt - When this cost centre was last confirmed against its source. A delta run asks the source for what changed since it, and a controller reads it to see that a feed has gone quiet. An edit made HERE does not touch it — it records when the source was last seen, not when the row changed — so a stale value beside a fresh `updated_at` means somebody is maintaining by hand what the ERP has stopped delivering.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n */\n costCentersCostCentersCreate(params: { code: string, name: string, organizationId: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, sourceData?: object, sourceSyncedAt?: string }): Promise<Models.CostCenter>;\n /**\n *\n * @param {string} code - \n * @param {string} name - \n * @param {string} organizationId - \n * @param {string} accountableContactId - \n * @param {boolean} active - \n * @param {BudgetType} budgetType - \n * @param {string} currency - \n * @param {string} externalId - The key this cost centre has in the system that OWNS it — the dimension value an ERP books against, which is rarely the `code` a controller types here. Unique per tenant where it is set, so a repeated import upserts on it instead of matching on a name; a centre opened in the Cockpit carries none and never will.\n * @param {object} externalRefs - Every OTHER system that knows this cost centre, keyed by system name — a second ERP, the procurement platform a punchout session comes from, the shop this tenant migrated off. `external_id` names the leading system; this is the rest, and the next one costs no column. Answered on read and carrying no query parameter: the store compares such a field as a WHOLE document, so a filter over part of one is refused. Look the centre up by `external_id` and read this off the answer.\n * @param {object} metadata - \n * @param {object} sourceData - What the source said about this cost centre, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to send back in `If-Match`, and there is nowhere else to keep it between two runs. `raw` holds the source fields this app does not model — a responsible department, an account range — so an edit here does not silently throw them away.\n * @param {string} sourceSyncedAt - When this cost centre was last confirmed against its source. A delta run asks the source for what changed since it, and a controller reads it to see that a feed has gone quiet. An edit made HERE does not touch it — it records when the source was last seen, not when the row changed — so a stale value beside a fresh `updated_at` means somebody is maintaining by hand what the ERP has stopped delivering.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersCreate(code: string, name: string, organizationId: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, sourceData?: object, sourceSyncedAt?: string): Promise<Models.CostCenter>;\n costCentersCostCentersCreate(\n paramsOrFirst: { code: string, name: string, organizationId: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, sourceData?: object, sourceSyncedAt?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (boolean)?, (BudgetType)?, (string)?, (string)?, (object)?, (object)?, (object)?, (string)?] \n ): Promise<Models.CostCenter> {\n let params: { code: string, name: string, organizationId: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, sourceData?: object, sourceSyncedAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: string, name: string, organizationId: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, sourceData?: object, sourceSyncedAt?: string };\n } else {\n params = {\n code: paramsOrFirst as string,\n name: rest[0] as string,\n organizationId: rest[1] as string,\n accountableContactId: rest[2] as string,\n active: rest[3] as boolean,\n budgetType: rest[4] as BudgetType,\n currency: rest[5] as string,\n externalId: rest[6] as string,\n externalRefs: rest[7] as object,\n metadata: rest[8] as object,\n sourceData: rest[9] as object,\n sourceSyncedAt: rest[10] as string \n };\n }\n \n const code = params.code;\n const name = params.name;\n const organizationId = params.organizationId;\n const accountableContactId = params.accountableContactId;\n const active = params.active;\n const budgetType = params.budgetType;\n const currency = params.currency;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const metadata = params.metadata;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof organizationId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"organizationId\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers';\n const apiPayload: Payload = {};\n if (typeof accountableContactId !== 'undefined') {\n apiPayload['accountable_contact_id'] = accountableContactId;\n }\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof budgetType !== 'undefined') {\n apiPayload['budget_type'] = budgetType;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersCostCentersDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersDelete(id: string): Promise<{}>;\n costCentersCostCentersDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n */\n costCentersCostCentersGet(params: { id: string }): Promise<Models.CostCenter>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersGet(id: string): Promise<Models.CostCenter>;\n costCentersCostCentersGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.CostCenter> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {string} params.accountableContactId - \n * @param {boolean} params.active - \n * @param {BudgetType} params.budgetType - \n * @param {string} params.code - \n * @param {string} params.currency - \n * @param {string} params.externalId - The key this cost centre has in the system that OWNS it — the dimension value an ERP books against, which is rarely the `code` a controller types here. Unique per tenant where it is set, so a repeated import upserts on it instead of matching on a name; a centre opened in the Cockpit carries none and never will.\n * @param {object} params.externalRefs - Every OTHER system that knows this cost centre, keyed by system name — a second ERP, the procurement platform a punchout session comes from, the shop this tenant migrated off. `external_id` names the leading system; this is the rest, and the next one costs no column. Answered on read and carrying no query parameter: the store compares such a field as a WHOLE document, so a filter over part of one is refused. Look the centre up by `external_id` and read this off the answer.\n * @param {object} params.metadata - \n * @param {string} params.name - \n * @param {string} params.organizationId - \n * @param {object} params.sourceData - What the source said about this cost centre, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to send back in `If-Match`, and there is nowhere else to keep it between two runs. `raw` holds the source fields this app does not model — a responsible department, an account range — so an edit here does not silently throw them away.\n * @param {string} params.sourceSyncedAt - When this cost centre was last confirmed against its source. A delta run asks the source for what changed since it, and a controller reads it to see that a feed has gone quiet. An edit made HERE does not touch it — it records when the source was last seen, not when the row changed — so a stale value beside a fresh `updated_at` means somebody is maintaining by hand what the ERP has stopped delivering.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n */\n costCentersCostCentersUpdate(params: { id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string }): Promise<Models.CostCenter>;\n /**\n *\n * @param {string} id - \n * @param {string} accountableContactId - \n * @param {boolean} active - \n * @param {BudgetType} budgetType - \n * @param {string} code - \n * @param {string} currency - \n * @param {string} externalId - The key this cost centre has in the system that OWNS it — the dimension value an ERP books against, which is rarely the `code` a controller types here. Unique per tenant where it is set, so a repeated import upserts on it instead of matching on a name; a centre opened in the Cockpit carries none and never will.\n * @param {object} externalRefs - Every OTHER system that knows this cost centre, keyed by system name — a second ERP, the procurement platform a punchout session comes from, the shop this tenant migrated off. `external_id` names the leading system; this is the rest, and the next one costs no column. Answered on read and carrying no query parameter: the store compares such a field as a WHOLE document, so a filter over part of one is refused. Look the centre up by `external_id` and read this off the answer.\n * @param {object} metadata - \n * @param {string} name - \n * @param {string} organizationId - \n * @param {object} sourceData - What the source said about this cost centre, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to send back in `If-Match`, and there is nowhere else to keep it between two runs. `raw` holds the source fields this app does not model — a responsible department, an account range — so an edit here does not silently throw them away.\n * @param {string} sourceSyncedAt - When this cost centre was last confirmed against its source. A delta run asks the source for what changed since it, and a controller reads it to see that a feed has gone quiet. An edit made HERE does not touch it — it records when the source was last seen, not when the row changed — so a stale value beside a fresh `updated_at` means somebody is maintaining by hand what the ERP has stopped delivering.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersUpdate(id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string): Promise<Models.CostCenter>;\n costCentersCostCentersUpdate(\n paramsOrFirst: { id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string } | string,\n ...rest: [(string)?, (boolean)?, (BudgetType)?, (string)?, (string)?, (string)?, (object)?, (object)?, (string)?, (string)?, (object)?, (string)?] \n ): Promise<Models.CostCenter> {\n let params: { id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, accountableContactId?: string, active?: boolean, budgetType?: BudgetType, code?: string, currency?: string, externalId?: string, externalRefs?: object, metadata?: object, name?: string, organizationId?: string, sourceData?: object, sourceSyncedAt?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n accountableContactId: rest[0] as string,\n active: rest[1] as boolean,\n budgetType: rest[2] as BudgetType,\n code: rest[3] as string,\n currency: rest[4] as string,\n externalId: rest[5] as string,\n externalRefs: rest[6] as object,\n metadata: rest[7] as object,\n name: rest[8] as string,\n organizationId: rest[9] as string,\n sourceData: rest[10] as object,\n sourceSyncedAt: rest[11] as string \n };\n }\n \n const id = params.id;\n const accountableContactId = params.accountableContactId;\n const active = params.active;\n const budgetType = params.budgetType;\n const code = params.code;\n const currency = params.currency;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const metadata = params.metadata;\n const name = params.name;\n const organizationId = params.organizationId;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof accountableContactId !== 'undefined') {\n apiPayload['accountable_contact_id'] = accountableContactId;\n }\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof budgetType !== 'undefined') {\n apiPayload['budget_type'] = budgetType;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n */\n costCentersCostCentersArchive(params: { id: string }): Promise<Models.CostCenter>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenter>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersArchive(id: string): Promise<Models.CostCenter>;\n costCentersCostCentersArchive(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.CostCenter> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}/archive'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {number} params.amount - \n * @param {string} params.actor - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @param {string} params.orderId - \n * @param {string} params.purchaseRequestId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterConsumeResult>}\n */\n costCentersCostCentersConsume(params: { id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string }): Promise<Models.CostCenterConsumeResult>;\n /**\n *\n * @param {string} id - \n * @param {number} amount - \n * @param {string} actor - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @param {string} orderId - \n * @param {string} purchaseRequestId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterConsumeResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersCostCentersConsume(id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string): Promise<Models.CostCenterConsumeResult>;\n costCentersCostCentersConsume(\n paramsOrFirst: { id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string } | string,\n ...rest: [(number)?, (string)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.CostCenterConsumeResult> {\n let params: { id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, amount: number, actor?: string, currency?: string, note?: string, orderId?: string, purchaseRequestId?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n amount: rest[0] as number,\n actor: rest[1] as string,\n currency: rest[2] as string,\n note: rest[3] as string,\n orderId: rest[4] as string,\n purchaseRequestId: rest[5] as string \n };\n }\n \n const id = params.id;\n const amount = params.amount;\n const actor = params.actor;\n const currency = params.currency;\n const note = params.note;\n const orderId = params.orderId;\n const purchaseRequestId = params.purchaseRequestId;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof amount === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"amount\"');\n }\n\n const apiPath = '/v1/cost-centers/cost-centers/{id}/consume'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof actor !== 'undefined') {\n apiPayload['actor'] = actor;\n }\n if (typeof amount !== 'undefined') {\n apiPayload['amount'] = amount;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.amount - \n * @param {Conditions[]} params.conditions - \n * @param {string} params.contactId - \n * @param {string} params.costCenterId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.punchoutAccountCode - Code of the punchout account the request is made in. Omit outside a punchout session: a cost centre restricted with mode 'only' is then out of reach, and one restricted with 'except' is offered. A value that is not a non-empty string is refused with 400.\n * @throws {RevenexxException}\n * @returns {Promise<Models.EvaluateResult>}\n */\n costCentersEvaluate(params: { amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string }): Promise<Models.EvaluateResult>;\n /**\n *\n * @param {number} amount - \n * @param {Conditions[]} conditions - \n * @param {string} contactId - \n * @param {string} costCenterId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} punchoutAccountCode - Code of the punchout account the request is made in. Omit outside a punchout session: a cost centre restricted with mode 'only' is then out of reach, and one restricted with 'except' is offered. A value that is not a non-empty string is refused with 400.\n * @throws {RevenexxException}\n * @returns {Promise<Models.EvaluateResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersEvaluate(amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string): Promise<Models.EvaluateResult>;\n costCentersEvaluate(\n paramsOrFirst: { amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string } | number,\n ...rest: [(Conditions[])?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.EvaluateResult> {\n let params: { amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { amount: number, conditions?: Conditions[], contactId?: string, costCenterId?: string, currency?: string, punchoutAccountCode?: string };\n } else {\n params = {\n amount: paramsOrFirst as number,\n conditions: rest[0] as Conditions[],\n contactId: rest[1] as string,\n costCenterId: rest[2] as string,\n currency: rest[3] as string,\n punchoutAccountCode: rest[4] as string \n };\n }\n \n const amount = params.amount;\n const conditions = params.conditions;\n const contactId = params.contactId;\n const costCenterId = params.costCenterId;\n const currency = params.currency;\n const punchoutAccountCode = params.punchoutAccountCode;\n\n if (typeof amount === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"amount\"');\n }\n\n const apiPath = '/v1/cost-centers/evaluate';\n const apiPayload: Payload = {};\n if (typeof amount !== 'undefined') {\n apiPayload['amount'] = amount;\n }\n if (typeof conditions !== 'undefined') {\n apiPayload['conditions'] = conditions;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof punchoutAccountCode !== 'undefined') {\n apiPayload['punchout_account_code'] = punchoutAccountCode;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.key - Idempotency key of this cancellation within the order (e.g. the cancellation id, or cancellation_id:item_id for one item). A repeat under the same key gives nothing back again.\n * @param {string} params.orderId - \n * @param {object[]} params.allocations - Optional: the amount to give back per cost centre, capped at what the order booked there. Omit to give back everything still booked for the order.\n * @param {string} params.contactId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersRelease(params: { key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {string} key - Idempotency key of this cancellation within the order (e.g. the cancellation id, or cancellation_id:item_id for one item). A repeat under the same key gives nothing back again.\n * @param {string} orderId - \n * @param {object[]} allocations - Optional: the amount to give back per cost centre, capped at what the order booked there. Omit to give back everything still booked for the order.\n * @param {string} contactId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRelease(key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string): Promise<Models.BudgetMovementResult>;\n costCentersRelease(\n paramsOrFirst: { key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string } | string,\n ...rest: [(string)?, (object[])?, (string)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { key: string, orderId: string, allocations?: object[], contactId?: string, currency?: string, note?: string };\n } else {\n params = {\n key: paramsOrFirst as string,\n orderId: rest[0] as string,\n allocations: rest[1] as object[],\n contactId: rest[2] as string,\n currency: rest[3] as string,\n note: rest[4] as string \n };\n }\n \n const key = params.key;\n const orderId = params.orderId;\n const allocations = params.allocations;\n const contactId = params.contactId;\n const currency = params.currency;\n const note = params.note;\n\n if (typeof key === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"key\"');\n }\n if (typeof orderId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"orderId\"');\n }\n\n const apiPath = '/v1/cost-centers/release';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof key !== 'undefined') {\n apiPayload['key'] = key;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {object[]} params.allocations - \n * @param {string} params.contactId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {boolean} params.dryRun - true runs the pre-flight (currency, no active budget, tracking-only centres) and answers as the real call would — same status, skipped and refusal — while writing nothing and claiming no key. The purchase request / order id may then be omitted.\n * @param {string} params.note - \n * @param {string} params.purchaseRequestId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersReserve(params: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {object[]} allocations - \n * @param {string} contactId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {boolean} dryRun - true runs the pre-flight (currency, no active budget, tracking-only centres) and answers as the real call would — same status, skipped and refusal — while writing nothing and claiming no key. The purchase request / order id may then be omitted.\n * @param {string} note - \n * @param {string} purchaseRequestId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersReserve(allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string): Promise<Models.BudgetMovementResult>;\n costCentersReserve(\n paramsOrFirst: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string } | object[],\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('allocations' in paramsOrFirst || 'contactId' in paramsOrFirst || 'currency' in paramsOrFirst || 'dryRun' in paramsOrFirst || 'note' in paramsOrFirst || 'purchaseRequestId' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { allocations: object[], contactId?: string, currency?: string, dryRun?: boolean, note?: string, purchaseRequestId?: string };\n } else {\n params = {\n allocations: paramsOrFirst as object[],\n contactId: rest[0] as string,\n currency: rest[1] as string,\n dryRun: rest[2] as boolean,\n note: rest[3] as string,\n purchaseRequestId: rest[4] as string \n };\n }\n \n const allocations = params.allocations;\n const contactId = params.contactId;\n const currency = params.currency;\n const dryRun = params.dryRun;\n const note = params.note;\n const purchaseRequestId = params.purchaseRequestId;\n\n if (typeof allocations === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"allocations\"');\n }\n\n const apiPath = '/v1/cost-centers/reserve';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof dryRun !== 'undefined') {\n apiPayload['dry_run'] = dryRun;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {object[]} params.allocations - \n * @param {string} params.purchaseRequestId - \n * @param {string} params.contactId - \n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersReserveAdjust(params: { allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {object[]} allocations - \n * @param {string} purchaseRequestId - \n * @param {string} contactId - \n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersReserveAdjust(allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string): Promise<Models.BudgetMovementResult>;\n costCentersReserveAdjust(\n paramsOrFirst: { allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string } | object[],\n ...rest: [(string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('allocations' in paramsOrFirst || 'purchaseRequestId' in paramsOrFirst || 'contactId' in paramsOrFirst || 'currency' in paramsOrFirst || 'note' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { allocations: object[], purchaseRequestId: string, contactId?: string, currency?: string, note?: string };\n } else {\n params = {\n allocations: paramsOrFirst as object[],\n purchaseRequestId: rest[0] as string,\n contactId: rest[1] as string,\n currency: rest[2] as string,\n note: rest[3] as string \n };\n }\n \n const allocations = params.allocations;\n const purchaseRequestId = params.purchaseRequestId;\n const contactId = params.contactId;\n const currency = params.currency;\n const note = params.note;\n\n if (typeof allocations === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"allocations\"');\n }\n if (typeof purchaseRequestId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"purchaseRequestId\"');\n }\n\n const apiPath = '/v1/cost-centers/reserve/adjust';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersRestrictionsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n costCentersRestrictionsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/cost-centers/restrictions';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.costCenterId - \n * @param {object} params.parameters - \n * @param {CostCentersRestrictionsCreateType} params.type - \n * @param {boolean} params.active - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n */\n costCentersRestrictionsCreate(params: { costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean }): Promise<Models.CostCenterRestriction>;\n /**\n *\n * @param {string} costCenterId - \n * @param {object} parameters - \n * @param {CostCentersRestrictionsCreateType} type - \n * @param {boolean} active - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsCreate(costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean): Promise<Models.CostCenterRestriction>;\n costCentersRestrictionsCreate(\n paramsOrFirst: { costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean } | string,\n ...rest: [(object)?, (CostCentersRestrictionsCreateType)?, (boolean)?] \n ): Promise<Models.CostCenterRestriction> {\n let params: { costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { costCenterId: string, parameters: object, type: CostCentersRestrictionsCreateType, active?: boolean };\n } else {\n params = {\n costCenterId: paramsOrFirst as string,\n parameters: rest[0] as object,\n type: rest[1] as CostCentersRestrictionsCreateType,\n active: rest[2] as boolean \n };\n }\n \n const costCenterId = params.costCenterId;\n const parameters = params.parameters;\n const type = params.type;\n const active = params.active;\n\n if (typeof costCenterId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"costCenterId\"');\n }\n if (typeof parameters === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"parameters\"');\n }\n if (typeof type === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/v1/cost-centers/restrictions';\n const apiPayload: Payload = {};\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof parameters !== 'undefined') {\n apiPayload['parameters'] = parameters;\n }\n if (typeof type !== 'undefined') {\n apiPayload['type'] = type;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n costCentersRestrictionsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsDelete(id: string): Promise<{}>;\n costCentersRestrictionsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/restrictions/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n */\n costCentersRestrictionsGet(params: { id: string }): Promise<Models.CostCenterRestriction>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsGet(id: string): Promise<Models.CostCenterRestriction>;\n costCentersRestrictionsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.CostCenterRestriction> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/restrictions/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {boolean} params.active - \n * @param {string} params.costCenterId - \n * @param {object} params.parameters - \n * @param {CostCentersRestrictionsCreateType} params.type - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n */\n costCentersRestrictionsUpdate(params: { id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType }): Promise<Models.CostCenterRestriction>;\n /**\n *\n * @param {string} id - \n * @param {boolean} active - \n * @param {string} costCenterId - \n * @param {object} parameters - \n * @param {CostCentersRestrictionsCreateType} type - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCenterRestriction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersRestrictionsUpdate(id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType): Promise<Models.CostCenterRestriction>;\n costCentersRestrictionsUpdate(\n paramsOrFirst: { id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType } | string,\n ...rest: [(boolean)?, (string)?, (object)?, (CostCentersRestrictionsCreateType)?] \n ): Promise<Models.CostCenterRestriction> {\n let params: { id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, active?: boolean, costCenterId?: string, parameters?: object, type?: CostCentersRestrictionsCreateType };\n } else {\n params = {\n id: paramsOrFirst as string,\n active: rest[0] as boolean,\n costCenterId: rest[1] as string,\n parameters: rest[2] as object,\n type: rest[3] as CostCentersRestrictionsCreateType \n };\n }\n \n const id = params.id;\n const active = params.active;\n const costCenterId = params.costCenterId;\n const parameters = params.parameters;\n const type = params.type;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/cost-centers/restrictions/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof active !== 'undefined') {\n apiPayload['active'] = active;\n }\n if (typeof costCenterId !== 'undefined') {\n apiPayload['cost_center_id'] = costCenterId;\n }\n if (typeof parameters !== 'undefined') {\n apiPayload['parameters'] = parameters;\n }\n if (typeof type !== 'undefined') {\n apiPayload['type'] = type;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {object[]} params.lines - \n * @param {string} params.organizationId - \n * @param {string} params.contactId - \n * @param {string} params.punchoutAccountCode - Code of the punchout account the request is made in. Omit outside a punchout session: a cost centre restricted with mode 'only' is then out of reach, and one restricted with 'except' is offered. A value that is not a non-empty string is refused with 400.\n * @param {string[]} params.roles - \n * @throws {RevenexxException}\n * @returns {Promise<Models.UsableResult>}\n */\n costCentersUsable(params: { lines: object[], organizationId: string, contactId?: string, punchoutAccountCode?: string, roles?: string[] }): Promise<Models.UsableResult>;\n /**\n *\n * @param {object[]} lines - \n * @param {string} organizationId - \n * @param {string} contactId - \n * @param {string} punchoutAccountCode - Code of the punchout account the request is made in. Omit outside a punchout session: a cost centre restricted with mode 'only' is then out of reach, and one restricted with 'except' is offered. A value that is not a non-empty string is refused with 400.\n * @param {string[]} roles - \n * @throws {RevenexxException}\n * @returns {Promise<Models.UsableResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersUsable(lines: object[], organizationId: string, contactId?: string, punchoutAccountCode?: string, roles?: string[]): Promise<Models.UsableResult>;\n costCentersUsable(\n paramsOrFirst: { lines: object[], organizationId: string, contactId?: string, punchoutAccountCode?: string, roles?: string[] } | object[],\n ...rest: [(string)?, (string)?, (string)?, (string[])?] \n ): Promise<Models.UsableResult> {\n let params: { lines: object[], organizationId: string, contactId?: string, punchoutAccountCode?: string, roles?: string[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('lines' in paramsOrFirst || 'organizationId' in paramsOrFirst || 'contactId' in paramsOrFirst || 'punchoutAccountCode' in paramsOrFirst || 'roles' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { lines: object[], organizationId: string, contactId?: string, punchoutAccountCode?: string, roles?: string[] };\n } else {\n params = {\n lines: paramsOrFirst as object[],\n organizationId: rest[0] as string,\n contactId: rest[1] as string,\n punchoutAccountCode: rest[2] as string,\n roles: rest[3] as string[] \n };\n }\n \n const lines = params.lines;\n const organizationId = params.organizationId;\n const contactId = params.contactId;\n const punchoutAccountCode = params.punchoutAccountCode;\n const roles = params.roles;\n\n if (typeof lines === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"lines\"');\n }\n if (typeof organizationId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"organizationId\"');\n }\n\n const apiPath = '/v1/cost-centers/usable';\n const apiPayload: Payload = {};\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof lines !== 'undefined') {\n apiPayload['lines'] = lines;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof punchoutAccountCode !== 'undefined') {\n apiPayload['punchout_account_code'] = punchoutAccountCode;\n }\n if (typeof roles !== 'undefined') {\n apiPayload['roles'] = roles;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCentersVocabularyIndex>}\n */\n costCentersVocabularies(): Promise<Models.CostCentersVocabularyIndex> {\n\n const apiPath = '/v1/cost-centers/vocabularies';\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {CostCentersVocabularyName} params.name - Which vocabulary to read. The enum is exhaustive; anything else is a 404.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCentersVocabulary>}\n */\n costCentersVocabulary(params: { name: CostCentersVocabularyName }): Promise<Models.CostCentersVocabulary>;\n /**\n *\n * @param {CostCentersVocabularyName} name - Which vocabulary to read. The enum is exhaustive; anything else is a 404.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CostCentersVocabulary>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersVocabulary(name: CostCentersVocabularyName): Promise<Models.CostCentersVocabulary>;\n costCentersVocabulary(\n paramsOrFirst: { name: CostCentersVocabularyName } | CostCentersVocabularyName \n ): Promise<Models.CostCentersVocabulary> {\n let params: { name: CostCentersVocabularyName };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('name' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: CostCentersVocabularyName };\n } else {\n params = {\n name: paramsOrFirst as CostCentersVocabularyName \n };\n }\n \n const name = params.name;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/cost-centers/vocabularies/{name}'.replace('{name}', name);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n *\n * @param {string} params.purchaseRequestId - \n * @param {object[]} params.allocations - Optional: the request's allocations (the reserve's shape; an empty array is the same as none, and only cost_center_id is read), used only to classify its cost centres by budget type. A request holding no reservation whose every centre is tracking-only is then settled with nothing written; one naming a monetary centre, or naming none, is refused with 409 as before. Amounts are read from the ledger, never from here.\n * @param {string} params.currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} params.note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n */\n costCentersWithdraw(params: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string }): Promise<Models.BudgetMovementResult>;\n /**\n *\n * @param {string} purchaseRequestId - \n * @param {object[]} allocations - Optional: the request's allocations (the reserve's shape; an empty array is the same as none, and only cost_center_id is read), used only to classify its cost centres by budget type. A request holding no reservation whose every centre is tracking-only is then settled with nothing written; one naming a monetary centre, or naming none, is refused with 409 as before. Amounts are read from the ledger, never from here.\n * @param {string} currency - ISO 4217 code the amount is stated in. Omit to be read in the cost centre's (or the personal limit's) own currency; a code that differs from it is refused with 409 currency_mismatch.\n * @param {string} note - \n * @throws {RevenexxException}\n * @returns {Promise<Models.BudgetMovementResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n costCentersWithdraw(purchaseRequestId: string, allocations?: object[], currency?: string, note?: string): Promise<Models.BudgetMovementResult>;\n costCentersWithdraw(\n paramsOrFirst: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string } | string,\n ...rest: [(object[])?, (string)?, (string)?] \n ): Promise<Models.BudgetMovementResult> {\n let params: { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { purchaseRequestId: string, allocations?: object[], currency?: string, note?: string };\n } else {\n params = {\n purchaseRequestId: paramsOrFirst as string,\n allocations: rest[0] as object[],\n currency: rest[1] as string,\n note: rest[2] as string \n };\n }\n \n const purchaseRequestId = params.purchaseRequestId;\n const allocations = params.allocations;\n const currency = params.currency;\n const note = params.note;\n\n if (typeof purchaseRequestId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"purchaseRequestId\"');\n }\n\n const apiPath = '/v1/cost-centers/withdraw';\n const apiPayload: Payload = {};\n if (typeof allocations !== 'undefined') {\n apiPayload['allocations'] = allocations;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof note !== 'undefined') {\n apiPayload['note'] = note;\n }\n if (typeof purchaseRequestId !== 'undefined') {\n apiPayload['purchase_request_id'] = purchaseRequestId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}
|