diff --git a/dist/XeroClient.d.ts b/dist/XeroClient.d.ts
new file mode 100644
index 000000000..5a510508e
--- /dev/null
+++ b/dist/XeroClient.d.ts
@@ -0,0 +1,26 @@
+///
+import { TokenSet } from 'openid-client';
+import * as xero from './gen/api';
+export interface IXeroClientConfig {
+ clientId: string;
+ clientSecret: string;
+ redirectUris: string[];
+ scopes: string[];
+}
+export declare class XeroClient {
+ private readonly config;
+ readonly accountingApi: xero.AccountingApi;
+ private openIdClient;
+ private tokenSet;
+ private _tenantIds;
+ get tenantIds(): string[];
+ constructor(config: IXeroClientConfig);
+ buildConsentUrl(): Promise;
+ setAccessTokenFromRedirectUri(url: string): Promise;
+ readIdTokenClaims(): Promise;
+ readTokenSet(): Promise;
+ setTokenSet(savedTokens: TokenSet): Promise;
+ refreshToken(): Promise;
+ private setAccessTokenForAllApis;
+ private fetchConnectedTenantIds;
+}
diff --git a/dist/XeroClient.js b/dist/XeroClient.js
new file mode 100644
index 000000000..81d81a006
--- /dev/null
+++ b/dist/XeroClient.js
@@ -0,0 +1,90 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const openid_client_1 = require("openid-client");
+const xero = require("./gen/api");
+const request = require("request");
+class XeroClient {
+ constructor(config) {
+ this.config = config;
+ this.accountingApi = new xero.AccountingApi();
+ }
+ get tenantIds() {
+ return this._tenantIds;
+ }
+ async buildConsentUrl() {
+ const issuer = await openid_client_1.Issuer.discover('https://identity.xero.com');
+ this.openIdClient = new issuer.Client({
+ client_id: this.config.clientId,
+ client_secret: this.config.clientSecret,
+ redirect_uris: this.config.redirectUris,
+ });
+ this.openIdClient[openid_client_1.custom.clock_tolerance] = 5;
+ const url = this.openIdClient.authorizationUrl({
+ redirect_uri: this.config.redirectUris[0],
+ scope: this.config.scopes.join(' ') || 'openid email profile'
+ });
+ return url;
+ }
+ async setAccessTokenFromRedirectUri(url) {
+ const urlObject = new URL(url);
+ let params = {};
+ for (const [key, value] of urlObject.searchParams) {
+ params[key] = value;
+ }
+ this.tokenSet = await this.openIdClient.callback(this.config.redirectUris[0], params);
+ this.setAccessTokenForAllApis();
+ await this.fetchConnectedTenantIds();
+ }
+ async readIdTokenClaims() {
+ return this.tokenSet.claims();
+ }
+ async readTokenSet() {
+ return this.tokenSet;
+ }
+ async setTokenSet(savedTokens) {
+ this.tokenSet = savedTokens;
+ this.setAccessTokenForAllApis();
+ }
+ async refreshToken() {
+ if (!this.tokenSet) {
+ throw new Error('tokenSet is not defined');
+ }
+ this.tokenSet = await this.openIdClient.refresh(this.tokenSet.refresh_token);
+ this.setAccessTokenForAllApis();
+ await this.fetchConnectedTenantIds();
+ }
+ setAccessTokenForAllApis() {
+ const accessToken = this.tokenSet.access_token;
+ if (typeof accessToken === 'undefined') {
+ throw new Error('Access token is undefined!');
+ }
+ this.accountingApi.accessToken = accessToken;
+ }
+ async fetchConnectedTenantIds() {
+ const result = await new Promise((resolve, reject) => {
+ request({
+ method: 'GET',
+ uri: 'https://api.xero.com/connections',
+ auth: {
+ bearer: this.tokenSet.access_token
+ },
+ json: true
+ }, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ this._tenantIds = result.body.map(connection => connection.tenantId);
+ }
+}
+exports.XeroClient = XeroClient;
+//# sourceMappingURL=XeroClient.js.map
\ No newline at end of file
diff --git a/dist/XeroClient.js.map b/dist/XeroClient.js.map
new file mode 100644
index 000000000..f8ed03b5d
--- /dev/null
+++ b/dist/XeroClient.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"XeroClient.js","sourceRoot":"","sources":["../src/XeroClient.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/api.d.ts b/dist/gen/api.d.ts
new file mode 100644
index 000000000..b2ee15404
--- /dev/null
+++ b/dist/gen/api.d.ts
@@ -0,0 +1,3 @@
+export * from './api/apis';
+export * from './model/accounting/models';
+export * from '../XeroClient';
diff --git a/dist/gen/api.js b/dist/gen/api.js
new file mode 100644
index 000000000..f453f0699
--- /dev/null
+++ b/dist/gen/api.js
@@ -0,0 +1,9 @@
+"use strict";
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(require("./api/apis"));
+__export(require("./model/accounting/models"));
+__export(require("../XeroClient"));
+//# sourceMappingURL=api.js.map
\ No newline at end of file
diff --git a/dist/gen/api.js.map b/dist/gen/api.js.map
new file mode 100644
index 000000000..f2b7b81fe
--- /dev/null
+++ b/dist/gen/api.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/gen/api.ts"],"names":[],"mappings":";;;;;AACA,gCAA2B;AAC3B,+CAA0C;AAE1C,mCAA8B"}
\ No newline at end of file
diff --git a/dist/gen/api/accountingApi.d.ts b/dist/gen/api/accountingApi.d.ts
new file mode 100644
index 000000000..8277056da
--- /dev/null
+++ b/dist/gen/api/accountingApi.d.ts
@@ -0,0 +1,1720 @@
+///
+import http = require('http');
+import fs = require('fs');
+import { Account } from '../model/accounting/account';
+import { Accounts } from '../model/accounting/accounts';
+import { Allocation } from '../model/accounting/allocation';
+import { Allocations } from '../model/accounting/allocations';
+import { Attachments } from '../model/accounting/attachments';
+import { BankTransaction } from '../model/accounting/bankTransaction';
+import { BankTransactions } from '../model/accounting/bankTransactions';
+import { BankTransfers } from '../model/accounting/bankTransfers';
+import { BatchPayments } from '../model/accounting/batchPayments';
+import { BrandingThemes } from '../model/accounting/brandingThemes';
+import { CISOrgSetting } from '../model/accounting/cISOrgSetting';
+import { CISSettings } from '../model/accounting/cISSettings';
+import { Contact } from '../model/accounting/contact';
+import { ContactGroups } from '../model/accounting/contactGroups';
+import { Contacts } from '../model/accounting/contacts';
+import { CreditNote } from '../model/accounting/creditNote';
+import { CreditNotes } from '../model/accounting/creditNotes';
+import { Currencies } from '../model/accounting/currencies';
+import { Currency } from '../model/accounting/currency';
+import { Employee } from '../model/accounting/employee';
+import { Employees } from '../model/accounting/employees';
+import { ExpenseClaims } from '../model/accounting/expenseClaims';
+import { HistoryRecords } from '../model/accounting/historyRecords';
+import { Invoice } from '../model/accounting/invoice';
+import { InvoiceReminders } from '../model/accounting/invoiceReminders';
+import { Invoices } from '../model/accounting/invoices';
+import { Item } from '../model/accounting/item';
+import { Items } from '../model/accounting/items';
+import { Journals } from '../model/accounting/journals';
+import { LinkedTransaction } from '../model/accounting/linkedTransaction';
+import { LinkedTransactions } from '../model/accounting/linkedTransactions';
+import { ManualJournal } from '../model/accounting/manualJournal';
+import { ManualJournals } from '../model/accounting/manualJournals';
+import { OnlineInvoices } from '../model/accounting/onlineInvoices';
+import { Organisations } from '../model/accounting/organisations';
+import { Overpayments } from '../model/accounting/overpayments';
+import { Payment } from '../model/accounting/payment';
+import { PaymentService } from '../model/accounting/paymentService';
+import { PaymentServices } from '../model/accounting/paymentServices';
+import { Payments } from '../model/accounting/payments';
+import { Prepayments } from '../model/accounting/prepayments';
+import { PurchaseOrder } from '../model/accounting/purchaseOrder';
+import { PurchaseOrders } from '../model/accounting/purchaseOrders';
+import { Quotes } from '../model/accounting/quotes';
+import { Receipts } from '../model/accounting/receipts';
+import { RepeatingInvoices } from '../model/accounting/repeatingInvoices';
+import { ReportWithRows } from '../model/accounting/reportWithRows';
+import { Reports } from '../model/accounting/reports';
+import { RequestEmpty } from '../model/accounting/requestEmpty';
+import { TaxRate } from '../model/accounting/taxRate';
+import { TaxRates } from '../model/accounting/taxRates';
+import { TrackingCategories } from '../model/accounting/trackingCategories';
+import { TrackingCategory } from '../model/accounting/trackingCategory';
+import { TrackingOption } from '../model/accounting/trackingOption';
+import { TrackingOptions } from '../model/accounting/trackingOptions';
+import { Users } from '../model/accounting/users';
+import { Authentication } from '../model/accounting/models';
+import { OAuth } from '../model/accounting/models';
+export declare enum AccountingApiApiKeys {
+}
+export declare class AccountingApi {
+ protected _basePath: string;
+ protected defaultHeaders: any;
+ protected _useQuerystring: boolean;
+ protected binaryHeaders: any;
+ protected authentications: {
+ 'default': Authentication;
+ 'OAuth2': OAuth;
+ };
+ constructor(basePath?: string);
+ set useQuerystring(value: boolean);
+ set basePath(basePath: string);
+ get basePath(): string;
+ setDefaultAuthentication(auth: Authentication): void;
+ setApiKey(key: AccountingApiApiKeys, value: string): void;
+ set accessToken(token: string);
+ createAccount(xeroTenantId: string, account: Account, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Accounts;
+ }>;
+ createAccountAttachmentByFileName(xeroTenantId: string, accountID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ createBankTransaction(xeroTenantId: string, bankTransaction: BankTransaction, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BankTransactions;
+ }>;
+ createBankTransactionAttachmentByFileName(xeroTenantId: string, bankTransactionID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ createBankTransactionHistoryRecord(xeroTenantId: string, bankTransactionID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createBankTransactions(xeroTenantId: string, bankTransactions: BankTransactions, summarizeErrors?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BankTransactions;
+ }>;
+ createBankTransfer(xeroTenantId: string, bankTransfers: BankTransfers, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BankTransfers;
+ }>;
+ createBankTransferAttachmentByFileName(xeroTenantId: string, bankTransferID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ createBankTransferHistoryRecord(xeroTenantId: string, bankTransferID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createBatchPayment(xeroTenantId: string, batchPayments: BatchPayments, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BatchPayments;
+ }>;
+ createBatchPaymentHistoryRecord(xeroTenantId: string, batchPaymentID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createBrandingThemePaymentServices(xeroTenantId: string, brandingThemeID: string, paymentService: PaymentService, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: PaymentServices;
+ }>;
+ createContact(xeroTenantId: string, contact: Contact, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Contacts;
+ }>;
+ createContactAttachmentByFileName(xeroTenantId: string, contactID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ createContactGroup(xeroTenantId: string, contactGroups: ContactGroups, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ContactGroups;
+ }>;
+ createContactGroupContacts(xeroTenantId: string, contactGroupID: string, contacts: Contacts, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Contacts;
+ }>;
+ createContactHistory(xeroTenantId: string, contactID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createContacts(xeroTenantId: string, contacts: Contacts, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Contacts;
+ }>;
+ createCreditNote(xeroTenantId: string, creditNote: CreditNote, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: CreditNotes;
+ }>;
+ createCreditNoteAllocation(xeroTenantId: string, creditNoteID: string, allocations: Allocations, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Allocations;
+ }>;
+ createCreditNoteAttachmentByFileName(xeroTenantId: string, creditNoteID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ createCreditNoteHistory(xeroTenantId: string, creditNoteID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createCreditNotes(xeroTenantId: string, creditNotes: CreditNotes, summarizeErrors?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: CreditNotes;
+ }>;
+ createCurrency(xeroTenantId: string, currency: Currency, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Currencies;
+ }>;
+ createEmployee(xeroTenantId: string, employee: Employee, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Employees;
+ }>;
+ createEmployees(xeroTenantId: string, employees: Employees, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Employees;
+ }>;
+ createExpenseClaimHistory(xeroTenantId: string, expenseClaimID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createExpenseClaims(xeroTenantId: string, expenseClaims: ExpenseClaims, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ExpenseClaims;
+ }>;
+ createInvoice(xeroTenantId: string, invoice: Invoice, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Invoices;
+ }>;
+ createInvoiceAttachmentByFileName(xeroTenantId: string, invoiceID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ createInvoiceHistory(xeroTenantId: string, invoiceID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createInvoices(xeroTenantId: string, invoices: Invoices, summarizeErrors?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Invoices;
+ }>;
+ createItem(xeroTenantId: string, item: Item, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Items;
+ }>;
+ createItemHistory(xeroTenantId: string, itemID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createItems(xeroTenantId: string, items: Items, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Items;
+ }>;
+ createLinkedTransaction(xeroTenantId: string, linkedTransaction: LinkedTransaction, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: LinkedTransactions;
+ }>;
+ createLinkedTransactions(xeroTenantId: string, linkedTransactions: LinkedTransactions, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: LinkedTransactions;
+ }>;
+ createManualJournal(xeroTenantId: string, manualJournal: ManualJournal, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ManualJournals;
+ }>;
+ createManualJournalAttachmentByFileName(xeroTenantId: string, manualJournalID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ createManualJournals(xeroTenantId: string, manualJournals: ManualJournals, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ManualJournals;
+ }>;
+ createOverpaymentAllocation(xeroTenantId: string, overpaymentID: string, allocation: Allocation, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Allocations;
+ }>;
+ createOverpaymentAllocations(xeroTenantId: string, overpaymentID: string, allocations: Allocations, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Allocations;
+ }>;
+ createOverpaymentHistory(xeroTenantId: string, overpaymentID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createPayment(xeroTenantId: string, payment: Payment, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Payments;
+ }>;
+ createPaymentHistory(xeroTenantId: string, paymentID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createPaymentService(xeroTenantId: string, paymentServices: PaymentServices, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: PaymentServices;
+ }>;
+ createPayments(xeroTenantId: string, payments: Payments, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Payments;
+ }>;
+ createPrepaymentAllocation(xeroTenantId: string, prepaymentID: string, allocations: Allocations, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Allocations;
+ }>;
+ createPrepaymentHistory(xeroTenantId: string, prepaymentID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createPurchaseOrder(xeroTenantId: string, purchaseOrder: PurchaseOrder, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: PurchaseOrders;
+ }>;
+ createPurchaseOrderHistory(xeroTenantId: string, purchaseOrderID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createPurchaseOrders(xeroTenantId: string, purchaseOrders: PurchaseOrders, summarizeErrors?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: PurchaseOrders;
+ }>;
+ createReceipt(xeroTenantId: string, receipts: Receipts, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Receipts;
+ }>;
+ createReceiptAttachmentByFileName(xeroTenantId: string, receiptID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ createReceiptHistory(xeroTenantId: string, receiptID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createRepeatingInvoiceAttachmentByFileName(xeroTenantId: string, repeatingInvoiceID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ createRepeatingInvoiceHistory(xeroTenantId: string, repeatingInvoiceID: string, historyRecords: HistoryRecords, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ createTaxRate(xeroTenantId: string, taxRate: TaxRate, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TaxRates;
+ }>;
+ createTaxRates(xeroTenantId: string, taxRates: TaxRates, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TaxRates;
+ }>;
+ createTrackingCategory(xeroTenantId: string, trackingCategory: TrackingCategory, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TrackingCategories;
+ }>;
+ createTrackingOptions(xeroTenantId: string, trackingCategoryID: string, trackingOption: TrackingOption, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TrackingOptions;
+ }>;
+ deleteAccount(xeroTenantId: string, accountID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Accounts;
+ }>;
+ deleteContactGroupContact(xeroTenantId: string, contactGroupID: string, contactID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body?: any;
+ }>;
+ deleteContactGroupContacts(xeroTenantId: string, contactGroupID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body?: any;
+ }>;
+ deleteItem(xeroTenantId: string, itemID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body?: any;
+ }>;
+ deleteLinkedTransaction(xeroTenantId: string, linkedTransactionID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body?: any;
+ }>;
+ deletePayment(xeroTenantId: string, paymentID: string, payments: Payments, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Payments;
+ }>;
+ deleteTrackingCategory(xeroTenantId: string, trackingCategoryID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TrackingCategories;
+ }>;
+ deleteTrackingOptions(xeroTenantId: string, trackingCategoryID: string, trackingOptionID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TrackingOptions;
+ }>;
+ emailInvoice(xeroTenantId: string, invoiceID: string, requestEmpty: RequestEmpty, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body?: any;
+ }>;
+ getAccount(xeroTenantId: string, accountID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Accounts;
+ }>;
+ getAccountAttachmentByFileName(xeroTenantId: string, accountID: string, fileName: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getAccountAttachmentById(xeroTenantId: string, accountID: string, attachmentID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getAccountAttachments(xeroTenantId: string, accountID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ getAccounts(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Accounts;
+ }>;
+ getBankTransaction(xeroTenantId: string, bankTransactionID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BankTransactions;
+ }>;
+ getBankTransactionAttachmentByFileName(xeroTenantId: string, bankTransactionID: string, fileName: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getBankTransactionAttachmentById(xeroTenantId: string, bankTransactionID: string, attachmentID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getBankTransactionAttachments(xeroTenantId: string, bankTransactionID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ getBankTransactions(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, page?: number, unitdp?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BankTransactions;
+ }>;
+ getBankTransactionsHistory(xeroTenantId: string, bankTransactionID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getBankTransfer(xeroTenantId: string, bankTransferID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BankTransfers;
+ }>;
+ getBankTransferAttachmentByFileName(xeroTenantId: string, bankTransferID: string, fileName: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getBankTransferAttachmentById(xeroTenantId: string, bankTransferID: string, attachmentID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getBankTransferAttachments(xeroTenantId: string, bankTransferID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ getBankTransferHistory(xeroTenantId: string, bankTransferID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getBankTransfers(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BankTransfers;
+ }>;
+ getBatchPaymentHistory(xeroTenantId: string, batchPaymentID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getBatchPayments(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BatchPayments;
+ }>;
+ getBrandingTheme(xeroTenantId: string, brandingThemeID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BrandingThemes;
+ }>;
+ getBrandingThemePaymentServices(xeroTenantId: string, brandingThemeID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: PaymentServices;
+ }>;
+ getBrandingThemes(xeroTenantId: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BrandingThemes;
+ }>;
+ getContact(xeroTenantId: string, contactID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Contacts;
+ }>;
+ getContactAttachmentByFileName(xeroTenantId: string, contactID: string, fileName: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getContactAttachmentById(xeroTenantId: string, contactID: string, attachmentID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getContactAttachments(xeroTenantId: string, contactID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ getContactCISSettings(xeroTenantId: string, contactID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: CISSettings;
+ }>;
+ getContactGroup(xeroTenantId: string, contactGroupID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ContactGroups;
+ }>;
+ getContactGroups(xeroTenantId: string, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ContactGroups;
+ }>;
+ getContactHistory(xeroTenantId: string, contactID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getContacts(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, iDs?: Array, page?: number, includeArchived?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Contacts;
+ }>;
+ getCreditNote(xeroTenantId: string, creditNoteID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: CreditNotes;
+ }>;
+ getCreditNoteAsPdf(xeroTenantId: string, creditNoteID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getCreditNoteAttachmentByFileName(xeroTenantId: string, creditNoteID: string, fileName: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getCreditNoteAttachmentById(xeroTenantId: string, creditNoteID: string, attachmentID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getCreditNoteAttachments(xeroTenantId: string, creditNoteID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ getCreditNoteHistory(xeroTenantId: string, creditNoteID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getCreditNotes(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, page?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: CreditNotes;
+ }>;
+ getCurrencies(xeroTenantId: string, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Currencies;
+ }>;
+ getEmployee(xeroTenantId: string, employeeID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Employees;
+ }>;
+ getEmployees(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Employees;
+ }>;
+ getExpenseClaim(xeroTenantId: string, expenseClaimID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ExpenseClaims;
+ }>;
+ getExpenseClaimHistory(xeroTenantId: string, expenseClaimID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getExpenseClaims(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ExpenseClaims;
+ }>;
+ getInvoice(xeroTenantId: string, invoiceID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Invoices;
+ }>;
+ getInvoiceAsPdf(xeroTenantId: string, invoiceID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getInvoiceAttachmentByFileName(xeroTenantId: string, invoiceID: string, fileName: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getInvoiceAttachmentById(xeroTenantId: string, invoiceID: string, attachmentID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getInvoiceAttachments(xeroTenantId: string, invoiceID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ getInvoiceHistory(xeroTenantId: string, invoiceID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getInvoiceReminders(xeroTenantId: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: InvoiceReminders;
+ }>;
+ getInvoices(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, iDs?: Array, invoiceNumbers?: Array, contactIDs?: Array, statuses?: Array, page?: number, includeArchived?: boolean, createdByMyApp?: boolean, unitdp?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Invoices;
+ }>;
+ getItem(xeroTenantId: string, itemID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Items;
+ }>;
+ getItemHistory(xeroTenantId: string, itemID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getItems(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, unitdp?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Items;
+ }>;
+ getJournal(xeroTenantId: string, journalID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Journals;
+ }>;
+ getJournals(xeroTenantId: string, ifModifiedSince?: Date, offset?: number, paymentsOnly?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Journals;
+ }>;
+ getLinkedTransaction(xeroTenantId: string, linkedTransactionID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: LinkedTransactions;
+ }>;
+ getLinkedTransactions(xeroTenantId: string, page?: number, linkedTransactionID?: string, sourceTransactionID?: string, contactID?: string, status?: string, targetTransactionID?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: LinkedTransactions;
+ }>;
+ getManualJournal(xeroTenantId: string, manualJournalID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ManualJournals;
+ }>;
+ getManualJournalAttachmentByFileName(xeroTenantId: string, manualJournalID: string, fileName: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getManualJournalAttachmentById(xeroTenantId: string, manualJournalID: string, attachmentID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getManualJournalAttachments(xeroTenantId: string, manualJournalID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ getManualJournals(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, page?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ManualJournals;
+ }>;
+ getOnlineInvoice(xeroTenantId: string, invoiceID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: OnlineInvoices;
+ }>;
+ getOrganisationCISSettings(xeroTenantId: string, organisationID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: CISOrgSetting;
+ }>;
+ getOrganisations(xeroTenantId: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Organisations;
+ }>;
+ getOverpayment(xeroTenantId: string, overpaymentID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Overpayments;
+ }>;
+ getOverpaymentHistory(xeroTenantId: string, overpaymentID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getOverpayments(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, page?: number, unitdp?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Overpayments;
+ }>;
+ getPayment(xeroTenantId: string, paymentID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Payments;
+ }>;
+ getPaymentHistory(xeroTenantId: string, paymentID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getPaymentServices(xeroTenantId: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: PaymentServices;
+ }>;
+ getPayments(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Payments;
+ }>;
+ getPrepayment(xeroTenantId: string, prepaymentID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Prepayments;
+ }>;
+ getPrepaymentHistory(xeroTenantId: string, prepaymentID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getPrepayments(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, page?: number, unitdp?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Prepayments;
+ }>;
+ getPurchaseOrder(xeroTenantId: string, purchaseOrderID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: PurchaseOrders;
+ }>;
+ getPurchaseOrderHistory(xeroTenantId: string, purchaseOrderID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getPurchaseOrders(xeroTenantId: string, ifModifiedSince?: Date, status?: 'DRAFT' | 'SUBMITTED' | 'AUTHORISED' | 'BILLED' | 'DELETED', dateFrom?: string, dateTo?: string, order?: string, page?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: PurchaseOrders;
+ }>;
+ getQuote(xeroTenantId: string, quoteID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Quotes;
+ }>;
+ getQuotes(xeroTenantId: string, ifModifiedSince?: Date, dateFrom?: string, dateTo?: string, expiryDateFrom?: string, expiryDateTo?: string, contactID?: string, status?: string, page?: number, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Quotes;
+ }>;
+ getReceipt(xeroTenantId: string, receiptID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Receipts;
+ }>;
+ getReceiptAttachmentByFileName(xeroTenantId: string, receiptID: string, fileName: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getReceiptAttachmentById(xeroTenantId: string, receiptID: string, attachmentID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getReceiptAttachments(xeroTenantId: string, receiptID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ getReceiptHistory(xeroTenantId: string, receiptID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getReceipts(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, unitdp?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Receipts;
+ }>;
+ getRepeatingInvoice(xeroTenantId: string, repeatingInvoiceID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: RepeatingInvoices;
+ }>;
+ getRepeatingInvoiceAttachmentByFileName(xeroTenantId: string, repeatingInvoiceID: string, fileName: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getRepeatingInvoiceAttachmentById(xeroTenantId: string, repeatingInvoiceID: string, attachmentID: string, contentType: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Buffer;
+ }>;
+ getRepeatingInvoiceAttachments(xeroTenantId: string, repeatingInvoiceID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ getRepeatingInvoiceHistory(xeroTenantId: string, repeatingInvoiceID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: HistoryRecords;
+ }>;
+ getRepeatingInvoices(xeroTenantId: string, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: RepeatingInvoices;
+ }>;
+ getReportAgedPayablesByContact(xeroTenantId: string, contactId: string, date?: string, fromDate?: string, toDate?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getReportAgedReceivablesByContact(xeroTenantId: string, contactId: string, date?: string, fromDate?: string, toDate?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getReportBASorGST(xeroTenantId: string, reportID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getReportBASorGSTList(xeroTenantId: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getReportBalanceSheet(xeroTenantId: string, date?: string, periods?: number, timeframe?: 'MONTH' | 'QUARTER' | 'YEAR', trackingOptionID1?: string, trackingOptionID2?: string, standardLayout?: boolean, paymentsOnly?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getReportBankSummary(xeroTenantId: string, date?: string, period?: number, timeframe?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getReportBudgetSummary(xeroTenantId: string, date?: string, period?: number, timeframe?: number, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getReportExecutiveSummary(xeroTenantId: string, date?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getReportProfitAndLoss(xeroTenantId: string, fromDate?: string, toDate?: string, periods?: number, timeframe?: 'MONTH' | 'QUARTER' | 'YEAR', trackingCategoryID?: string, trackingCategoryID2?: string, trackingOptionID?: string, trackingOptionID2?: string, standardLayout?: boolean, paymentsOnly?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getReportTenNinetyNine(xeroTenantId: string, reportYear?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Reports;
+ }>;
+ getReportTrialBalance(xeroTenantId: string, date?: string, paymentsOnly?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ReportWithRows;
+ }>;
+ getTaxRates(xeroTenantId: string, where?: string, order?: string, taxType?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TaxRates;
+ }>;
+ getTrackingCategories(xeroTenantId: string, where?: string, order?: string, includeArchived?: boolean, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TrackingCategories;
+ }>;
+ getTrackingCategory(xeroTenantId: string, trackingCategoryID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TrackingCategories;
+ }>;
+ getUser(xeroTenantId: string, userID: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Users;
+ }>;
+ getUsers(xeroTenantId: string, ifModifiedSince?: Date, where?: string, order?: string, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Users;
+ }>;
+ updateAccount(xeroTenantId: string, accountID: string, accounts: Accounts, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Accounts;
+ }>;
+ updateAccountAttachmentByFileName(xeroTenantId: string, accountID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ updateBankTransaction(xeroTenantId: string, bankTransactionID: string, bankTransactions: BankTransactions, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: BankTransactions;
+ }>;
+ updateBankTransactionAttachmentByFileName(xeroTenantId: string, bankTransactionID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ updateBankTransferAttachmentByFileName(xeroTenantId: string, bankTransferID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ updateContact(xeroTenantId: string, contactID: string, contacts: Contacts, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Contacts;
+ }>;
+ updateContactAttachmentByFileName(xeroTenantId: string, contactID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ updateContactGroup(xeroTenantId: string, contactGroupID: string, contactGroups: ContactGroups, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ContactGroups;
+ }>;
+ updateCreditNote(xeroTenantId: string, creditNoteID: string, creditNotes: CreditNotes, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: CreditNotes;
+ }>;
+ updateCreditNoteAttachmentByFileName(xeroTenantId: string, creditNoteID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ updateEmployee(xeroTenantId: string, employeeID: string, employees: Employees, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Employees;
+ }>;
+ updateExpenseClaim(xeroTenantId: string, expenseClaimID: string, expenseClaims: ExpenseClaims, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ExpenseClaims;
+ }>;
+ updateInvoice(xeroTenantId: string, invoiceID: string, invoices: Invoices, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Invoices;
+ }>;
+ updateInvoiceAttachmentByFileName(xeroTenantId: string, invoiceID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ updateItem(xeroTenantId: string, itemID: string, items: Items, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Items;
+ }>;
+ updateLinkedTransaction(xeroTenantId: string, linkedTransactionID: string, linkedTransactions: LinkedTransactions, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: LinkedTransactions;
+ }>;
+ updateManualJournal(xeroTenantId: string, manualJournalID: string, manualJournals: ManualJournals, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: ManualJournals;
+ }>;
+ updateManualJournalAttachmentByFileName(xeroTenantId: string, manualJournalID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ updatePurchaseOrder(xeroTenantId: string, purchaseOrderID: string, purchaseOrders: PurchaseOrders, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: PurchaseOrders;
+ }>;
+ updateReceipt(xeroTenantId: string, receiptID: string, receipts: Receipts, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Receipts;
+ }>;
+ updateReceiptAttachmentByFileName(xeroTenantId: string, receiptID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ updateRepeatingInvoiceAttachmentByFileName(xeroTenantId: string, repeatingInvoiceID: string, fileName: string, body: fs.ReadStream, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: Attachments;
+ }>;
+ updateTaxRate(xeroTenantId: string, taxRates: TaxRates, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TaxRates;
+ }>;
+ updateTrackingCategory(xeroTenantId: string, trackingCategoryID: string, trackingCategory: TrackingCategory, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TrackingCategories;
+ }>;
+ updateTrackingOptions(xeroTenantId: string, trackingCategoryID: string, trackingOptionID: string, trackingOption: TrackingOption, options?: {
+ headers: {
+ [name: string]: string;
+ };
+ }): Promise<{
+ response: http.IncomingMessage;
+ body: TrackingOptions;
+ }>;
+}
diff --git a/dist/gen/api/accountingApi.js b/dist/gen/api/accountingApi.js
new file mode 100644
index 000000000..97bb4af48
--- /dev/null
+++ b/dist/gen/api/accountingApi.js
@@ -0,0 +1,11914 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const localVarRequest = require("request");
+const models_1 = require("../model/accounting/models");
+const models_2 = require("../model/accounting/models");
+let defaultBasePath = 'https://api.xero.com/api.xro/2.0';
+var AccountingApiApiKeys;
+(function (AccountingApiApiKeys) {
+})(AccountingApiApiKeys = exports.AccountingApiApiKeys || (exports.AccountingApiApiKeys = {}));
+class AccountingApi {
+ constructor(basePathOrUsername, password, basePath) {
+ this._basePath = defaultBasePath;
+ this.defaultHeaders = {};
+ this._useQuerystring = false;
+ this.binaryHeaders = {};
+ this.authentications = {
+ 'default': new models_1.VoidAuth(),
+ 'OAuth2': new models_2.OAuth(),
+ };
+ if (password) {
+ if (basePath) {
+ this.basePath = basePath;
+ }
+ }
+ else {
+ if (basePathOrUsername) {
+ this.basePath = basePathOrUsername;
+ }
+ }
+ }
+ set useQuerystring(value) {
+ this._useQuerystring = value;
+ }
+ set basePath(basePath) {
+ this._basePath = basePath;
+ }
+ get basePath() {
+ return this._basePath;
+ }
+ setDefaultAuthentication(auth) {
+ this.authentications.default = auth;
+ }
+ setApiKey(key, value) {
+ this.authentications[AccountingApiApiKeys[key]].apiKey = value;
+ }
+ set accessToken(token) {
+ this.authentications.OAuth2.accessToken = token;
+ }
+ async createAccount(xeroTenantId, account, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createAccount.');
+ }
+ if (account === null || account === undefined) {
+ throw new Error('Required parameter account was null or undefined when calling createAccount.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(account, "Account")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Accounts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createAccountAttachmentByFileName(xeroTenantId, accountID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts/{AccountID}/Attachments/{FileName}'
+ .replace('{' + 'AccountID' + '}', encodeURIComponent(String(accountID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createAccountAttachmentByFileName.');
+ }
+ if (accountID === null || accountID === undefined) {
+ throw new Error('Required parameter accountID was null or undefined when calling createAccountAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling createAccountAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createAccountAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBankTransaction(xeroTenantId, bankTransaction, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransaction.');
+ }
+ if (bankTransaction === null || bankTransaction === undefined) {
+ throw new Error('Required parameter bankTransaction was null or undefined when calling createBankTransaction.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(bankTransaction, "BankTransaction")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BankTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBankTransactionAttachmentByFileName(xeroTenantId, bankTransactionID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}/Attachments/{FileName}'
+ .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransactionAttachmentByFileName.');
+ }
+ if (bankTransactionID === null || bankTransactionID === undefined) {
+ throw new Error('Required parameter bankTransactionID was null or undefined when calling createBankTransactionAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling createBankTransactionAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createBankTransactionAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBankTransactionHistoryRecord(xeroTenantId, bankTransactionID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}/History'
+ .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransactionHistoryRecord.');
+ }
+ if (bankTransactionID === null || bankTransactionID === undefined) {
+ throw new Error('Required parameter bankTransactionID was null or undefined when calling createBankTransactionHistoryRecord.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createBankTransactionHistoryRecord.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBankTransactions(xeroTenantId, bankTransactions, summarizeErrors, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransactions.');
+ }
+ if (bankTransactions === null || bankTransactions === undefined) {
+ throw new Error('Required parameter bankTransactions was null or undefined when calling createBankTransactions.');
+ }
+ if (summarizeErrors !== undefined) {
+ localVarQueryParameters['SummarizeErrors'] = models_1.ObjectSerializer.serialize(summarizeErrors, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(bankTransactions, "BankTransactions")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BankTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBankTransfer(xeroTenantId, bankTransfers, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransfer.');
+ }
+ if (bankTransfers === null || bankTransfers === undefined) {
+ throw new Error('Required parameter bankTransfers was null or undefined when calling createBankTransfer.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(bankTransfers, "BankTransfers")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BankTransfers");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBankTransferAttachmentByFileName(xeroTenantId, bankTransferID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}/Attachments/{FileName}'
+ .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransferAttachmentByFileName.');
+ }
+ if (bankTransferID === null || bankTransferID === undefined) {
+ throw new Error('Required parameter bankTransferID was null or undefined when calling createBankTransferAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling createBankTransferAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createBankTransferAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBankTransferHistoryRecord(xeroTenantId, bankTransferID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}/History'
+ .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransferHistoryRecord.');
+ }
+ if (bankTransferID === null || bankTransferID === undefined) {
+ throw new Error('Required parameter bankTransferID was null or undefined when calling createBankTransferHistoryRecord.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createBankTransferHistoryRecord.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBatchPayment(xeroTenantId, batchPayments, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BatchPayments';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBatchPayment.');
+ }
+ if (batchPayments === null || batchPayments === undefined) {
+ throw new Error('Required parameter batchPayments was null or undefined when calling createBatchPayment.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(batchPayments, "BatchPayments")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BatchPayments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBatchPaymentHistoryRecord(xeroTenantId, batchPaymentID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BatchPayments/{BatchPaymentID}/History'
+ .replace('{' + 'BatchPaymentID' + '}', encodeURIComponent(String(batchPaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBatchPaymentHistoryRecord.');
+ }
+ if (batchPaymentID === null || batchPaymentID === undefined) {
+ throw new Error('Required parameter batchPaymentID was null or undefined when calling createBatchPaymentHistoryRecord.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createBatchPaymentHistoryRecord.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createBrandingThemePaymentServices(xeroTenantId, brandingThemeID, paymentService, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BrandingThemes/{BrandingThemeID}/PaymentServices'
+ .replace('{' + 'BrandingThemeID' + '}', encodeURIComponent(String(brandingThemeID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createBrandingThemePaymentServices.');
+ }
+ if (brandingThemeID === null || brandingThemeID === undefined) {
+ throw new Error('Required parameter brandingThemeID was null or undefined when calling createBrandingThemePaymentServices.');
+ }
+ if (paymentService === null || paymentService === undefined) {
+ throw new Error('Required parameter paymentService was null or undefined when calling createBrandingThemePaymentServices.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(paymentService, "PaymentService")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "PaymentServices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createContact(xeroTenantId, contact, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createContact.');
+ }
+ if (contact === null || contact === undefined) {
+ throw new Error('Required parameter contact was null or undefined when calling createContact.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(contact, "Contact")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Contacts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createContactAttachmentByFileName(xeroTenantId, contactID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}/Attachments/{FileName}'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createContactAttachmentByFileName.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling createContactAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling createContactAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createContactAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createContactGroup(xeroTenantId, contactGroups, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ContactGroups';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createContactGroup.');
+ }
+ if (contactGroups === null || contactGroups === undefined) {
+ throw new Error('Required parameter contactGroups was null or undefined when calling createContactGroup.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(contactGroups, "ContactGroups")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ContactGroups");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createContactGroupContacts(xeroTenantId, contactGroupID, contacts, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ContactGroups/{ContactGroupID}/Contacts'
+ .replace('{' + 'ContactGroupID' + '}', encodeURIComponent(String(contactGroupID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createContactGroupContacts.');
+ }
+ if (contactGroupID === null || contactGroupID === undefined) {
+ throw new Error('Required parameter contactGroupID was null or undefined when calling createContactGroupContacts.');
+ }
+ if (contacts === null || contacts === undefined) {
+ throw new Error('Required parameter contacts was null or undefined when calling createContactGroupContacts.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(contacts, "Contacts")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Contacts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createContactHistory(xeroTenantId, contactID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}/History'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createContactHistory.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling createContactHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createContactHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createContacts(xeroTenantId, contacts, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createContacts.');
+ }
+ if (contacts === null || contacts === undefined) {
+ throw new Error('Required parameter contacts was null or undefined when calling createContacts.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(contacts, "Contacts")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Contacts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createCreditNote(xeroTenantId, creditNote, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createCreditNote.');
+ }
+ if (creditNote === null || creditNote === undefined) {
+ throw new Error('Required parameter creditNote was null or undefined when calling createCreditNote.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(creditNote, "CreditNote")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "CreditNotes");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createCreditNoteAllocation(xeroTenantId, creditNoteID, allocations, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}/Allocations'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createCreditNoteAllocation.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling createCreditNoteAllocation.');
+ }
+ if (allocations === null || allocations === undefined) {
+ throw new Error('Required parameter allocations was null or undefined when calling createCreditNoteAllocation.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(allocations, "Allocations")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Allocations");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createCreditNoteAttachmentByFileName(xeroTenantId, creditNoteID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}/Attachments/{FileName}'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createCreditNoteAttachmentByFileName.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling createCreditNoteAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling createCreditNoteAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createCreditNoteAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createCreditNoteHistory(xeroTenantId, creditNoteID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}/History'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createCreditNoteHistory.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling createCreditNoteHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createCreditNoteHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createCreditNotes(xeroTenantId, creditNotes, summarizeErrors, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createCreditNotes.');
+ }
+ if (creditNotes === null || creditNotes === undefined) {
+ throw new Error('Required parameter creditNotes was null or undefined when calling createCreditNotes.');
+ }
+ if (summarizeErrors !== undefined) {
+ localVarQueryParameters['SummarizeErrors'] = models_1.ObjectSerializer.serialize(summarizeErrors, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(creditNotes, "CreditNotes")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "CreditNotes");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createCurrency(xeroTenantId, currency, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Currencies';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createCurrency.');
+ }
+ if (currency === null || currency === undefined) {
+ throw new Error('Required parameter currency was null or undefined when calling createCurrency.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(currency, "Currency")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Currencies");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createEmployee(xeroTenantId, employee, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Employees';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createEmployee.');
+ }
+ if (employee === null || employee === undefined) {
+ throw new Error('Required parameter employee was null or undefined when calling createEmployee.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(employee, "Employee")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Employees");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createEmployees(xeroTenantId, employees, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Employees#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createEmployees.');
+ }
+ if (employees === null || employees === undefined) {
+ throw new Error('Required parameter employees was null or undefined when calling createEmployees.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(employees, "Employees")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Employees");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createExpenseClaimHistory(xeroTenantId, expenseClaimID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ExpenseClaims/{ExpenseClaimID}/History'
+ .replace('{' + 'ExpenseClaimID' + '}', encodeURIComponent(String(expenseClaimID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createExpenseClaimHistory.');
+ }
+ if (expenseClaimID === null || expenseClaimID === undefined) {
+ throw new Error('Required parameter expenseClaimID was null or undefined when calling createExpenseClaimHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createExpenseClaimHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createExpenseClaims(xeroTenantId, expenseClaims, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ExpenseClaims';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createExpenseClaims.');
+ }
+ if (expenseClaims === null || expenseClaims === undefined) {
+ throw new Error('Required parameter expenseClaims was null or undefined when calling createExpenseClaims.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(expenseClaims, "ExpenseClaims")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ExpenseClaims");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createInvoice(xeroTenantId, invoice, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createInvoice.');
+ }
+ if (invoice === null || invoice === undefined) {
+ throw new Error('Required parameter invoice was null or undefined when calling createInvoice.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(invoice, "Invoice")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Invoices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createInvoiceAttachmentByFileName(xeroTenantId, invoiceID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/Attachments/{FileName}'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createInvoiceAttachmentByFileName.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling createInvoiceAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling createInvoiceAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createInvoiceAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createInvoiceHistory(xeroTenantId, invoiceID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/History'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createInvoiceHistory.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling createInvoiceHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createInvoiceHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createInvoices(xeroTenantId, invoices, summarizeErrors, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createInvoices.');
+ }
+ if (invoices === null || invoices === undefined) {
+ throw new Error('Required parameter invoices was null or undefined when calling createInvoices.');
+ }
+ if (summarizeErrors !== undefined) {
+ localVarQueryParameters['SummarizeErrors'] = models_1.ObjectSerializer.serialize(summarizeErrors, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(invoices, "Invoices")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Invoices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createItem(xeroTenantId, item, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Items';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createItem.');
+ }
+ if (item === null || item === undefined) {
+ throw new Error('Required parameter item was null or undefined when calling createItem.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(item, "Item")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Items");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createItemHistory(xeroTenantId, itemID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Items/{ItemID}/History'
+ .replace('{' + 'ItemID' + '}', encodeURIComponent(String(itemID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createItemHistory.');
+ }
+ if (itemID === null || itemID === undefined) {
+ throw new Error('Required parameter itemID was null or undefined when calling createItemHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createItemHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createItems(xeroTenantId, items, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Items#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createItems.');
+ }
+ if (items === null || items === undefined) {
+ throw new Error('Required parameter items was null or undefined when calling createItems.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(items, "Items")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Items");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createLinkedTransaction(xeroTenantId, linkedTransaction, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/LinkedTransactions';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createLinkedTransaction.');
+ }
+ if (linkedTransaction === null || linkedTransaction === undefined) {
+ throw new Error('Required parameter linkedTransaction was null or undefined when calling createLinkedTransaction.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(linkedTransaction, "LinkedTransaction")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "LinkedTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createLinkedTransactions(xeroTenantId, linkedTransactions, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/LinkedTransactions#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createLinkedTransactions.');
+ }
+ if (linkedTransactions === null || linkedTransactions === undefined) {
+ throw new Error('Required parameter linkedTransactions was null or undefined when calling createLinkedTransactions.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(linkedTransactions, "LinkedTransactions")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "LinkedTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createManualJournal(xeroTenantId, manualJournal, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createManualJournal.');
+ }
+ if (manualJournal === null || manualJournal === undefined) {
+ throw new Error('Required parameter manualJournal was null or undefined when calling createManualJournal.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(manualJournal, "ManualJournal")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ManualJournals");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createManualJournalAttachmentByFileName(xeroTenantId, manualJournalID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals/{ManualJournalID}/Attachments/{FileName}'
+ .replace('{' + 'ManualJournalID' + '}', encodeURIComponent(String(manualJournalID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createManualJournalAttachmentByFileName.');
+ }
+ if (manualJournalID === null || manualJournalID === undefined) {
+ throw new Error('Required parameter manualJournalID was null or undefined when calling createManualJournalAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling createManualJournalAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createManualJournalAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createManualJournals(xeroTenantId, manualJournals, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createManualJournals.');
+ }
+ if (manualJournals === null || manualJournals === undefined) {
+ throw new Error('Required parameter manualJournals was null or undefined when calling createManualJournals.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(manualJournals, "ManualJournals")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ManualJournals");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createOverpaymentAllocation(xeroTenantId, overpaymentID, allocation, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Overpayments/{OverpaymentID}/Allocations'
+ .replace('{' + 'OverpaymentID' + '}', encodeURIComponent(String(overpaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createOverpaymentAllocation.');
+ }
+ if (overpaymentID === null || overpaymentID === undefined) {
+ throw new Error('Required parameter overpaymentID was null or undefined when calling createOverpaymentAllocation.');
+ }
+ if (allocation === null || allocation === undefined) {
+ throw new Error('Required parameter allocation was null or undefined when calling createOverpaymentAllocation.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(allocation, "Allocation")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Allocations");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createOverpaymentAllocations(xeroTenantId, overpaymentID, allocations, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Overpayments/{OverpaymentID}/Allocations#bulk'
+ .replace('{' + 'OverpaymentID' + '}', encodeURIComponent(String(overpaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createOverpaymentAllocations.');
+ }
+ if (overpaymentID === null || overpaymentID === undefined) {
+ throw new Error('Required parameter overpaymentID was null or undefined when calling createOverpaymentAllocations.');
+ }
+ if (allocations === null || allocations === undefined) {
+ throw new Error('Required parameter allocations was null or undefined when calling createOverpaymentAllocations.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(allocations, "Allocations")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Allocations");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createOverpaymentHistory(xeroTenantId, overpaymentID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Overpayments/{OverpaymentID}/History'
+ .replace('{' + 'OverpaymentID' + '}', encodeURIComponent(String(overpaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createOverpaymentHistory.');
+ }
+ if (overpaymentID === null || overpaymentID === undefined) {
+ throw new Error('Required parameter overpaymentID was null or undefined when calling createOverpaymentHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createOverpaymentHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createPayment(xeroTenantId, payment, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Payments';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createPayment.');
+ }
+ if (payment === null || payment === undefined) {
+ throw new Error('Required parameter payment was null or undefined when calling createPayment.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(payment, "Payment")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Payments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createPaymentHistory(xeroTenantId, paymentID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Payments/{PaymentID}/History'
+ .replace('{' + 'PaymentID' + '}', encodeURIComponent(String(paymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createPaymentHistory.');
+ }
+ if (paymentID === null || paymentID === undefined) {
+ throw new Error('Required parameter paymentID was null or undefined when calling createPaymentHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createPaymentHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createPaymentService(xeroTenantId, paymentServices, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/PaymentServices';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createPaymentService.');
+ }
+ if (paymentServices === null || paymentServices === undefined) {
+ throw new Error('Required parameter paymentServices was null or undefined when calling createPaymentService.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(paymentServices, "PaymentServices")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "PaymentServices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createPayments(xeroTenantId, payments, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Payments#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createPayments.');
+ }
+ if (payments === null || payments === undefined) {
+ throw new Error('Required parameter payments was null or undefined when calling createPayments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(payments, "Payments")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Payments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createPrepaymentAllocation(xeroTenantId, prepaymentID, allocations, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Prepayments/{PrepaymentID}/Allocations'
+ .replace('{' + 'PrepaymentID' + '}', encodeURIComponent(String(prepaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createPrepaymentAllocation.');
+ }
+ if (prepaymentID === null || prepaymentID === undefined) {
+ throw new Error('Required parameter prepaymentID was null or undefined when calling createPrepaymentAllocation.');
+ }
+ if (allocations === null || allocations === undefined) {
+ throw new Error('Required parameter allocations was null or undefined when calling createPrepaymentAllocation.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(allocations, "Allocations")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Allocations");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createPrepaymentHistory(xeroTenantId, prepaymentID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Prepayments/{PrepaymentID}/History'
+ .replace('{' + 'PrepaymentID' + '}', encodeURIComponent(String(prepaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createPrepaymentHistory.');
+ }
+ if (prepaymentID === null || prepaymentID === undefined) {
+ throw new Error('Required parameter prepaymentID was null or undefined when calling createPrepaymentHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createPrepaymentHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createPurchaseOrder(xeroTenantId, purchaseOrder, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/PurchaseOrders';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createPurchaseOrder.');
+ }
+ if (purchaseOrder === null || purchaseOrder === undefined) {
+ throw new Error('Required parameter purchaseOrder was null or undefined when calling createPurchaseOrder.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(purchaseOrder, "PurchaseOrder")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "PurchaseOrders");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createPurchaseOrderHistory(xeroTenantId, purchaseOrderID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/PurchaseOrders/{PurchaseOrderID}/History'
+ .replace('{' + 'PurchaseOrderID' + '}', encodeURIComponent(String(purchaseOrderID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createPurchaseOrderHistory.');
+ }
+ if (purchaseOrderID === null || purchaseOrderID === undefined) {
+ throw new Error('Required parameter purchaseOrderID was null or undefined when calling createPurchaseOrderHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createPurchaseOrderHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createPurchaseOrders(xeroTenantId, purchaseOrders, summarizeErrors, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/PurchaseOrders#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createPurchaseOrders.');
+ }
+ if (purchaseOrders === null || purchaseOrders === undefined) {
+ throw new Error('Required parameter purchaseOrders was null or undefined when calling createPurchaseOrders.');
+ }
+ if (summarizeErrors !== undefined) {
+ localVarQueryParameters['SummarizeErrors'] = models_1.ObjectSerializer.serialize(summarizeErrors, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(purchaseOrders, "PurchaseOrders")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "PurchaseOrders");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createReceipt(xeroTenantId, receipts, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createReceipt.');
+ }
+ if (receipts === null || receipts === undefined) {
+ throw new Error('Required parameter receipts was null or undefined when calling createReceipt.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(receipts, "Receipts")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Receipts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createReceiptAttachmentByFileName(xeroTenantId, receiptID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts/{ReceiptID}/Attachments/{FileName}'
+ .replace('{' + 'ReceiptID' + '}', encodeURIComponent(String(receiptID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createReceiptAttachmentByFileName.');
+ }
+ if (receiptID === null || receiptID === undefined) {
+ throw new Error('Required parameter receiptID was null or undefined when calling createReceiptAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling createReceiptAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createReceiptAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createReceiptHistory(xeroTenantId, receiptID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts/{ReceiptID}/History'
+ .replace('{' + 'ReceiptID' + '}', encodeURIComponent(String(receiptID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createReceiptHistory.');
+ }
+ if (receiptID === null || receiptID === undefined) {
+ throw new Error('Required parameter receiptID was null or undefined when calling createReceiptHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createReceiptHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createRepeatingInvoiceAttachmentByFileName(xeroTenantId, repeatingInvoiceID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}'
+ .replace('{' + 'RepeatingInvoiceID' + '}', encodeURIComponent(String(repeatingInvoiceID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createRepeatingInvoiceAttachmentByFileName.');
+ }
+ if (repeatingInvoiceID === null || repeatingInvoiceID === undefined) {
+ throw new Error('Required parameter repeatingInvoiceID was null or undefined when calling createRepeatingInvoiceAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling createRepeatingInvoiceAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createRepeatingInvoiceAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createRepeatingInvoiceHistory(xeroTenantId, repeatingInvoiceID, historyRecords, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/RepeatingInvoices/{RepeatingInvoiceID}/History'
+ .replace('{' + 'RepeatingInvoiceID' + '}', encodeURIComponent(String(repeatingInvoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createRepeatingInvoiceHistory.');
+ }
+ if (repeatingInvoiceID === null || repeatingInvoiceID === undefined) {
+ throw new Error('Required parameter repeatingInvoiceID was null or undefined when calling createRepeatingInvoiceHistory.');
+ }
+ if (historyRecords === null || historyRecords === undefined) {
+ throw new Error('Required parameter historyRecords was null or undefined when calling createRepeatingInvoiceHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createTaxRate(xeroTenantId, taxRate, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TaxRates';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createTaxRate.');
+ }
+ if (taxRate === null || taxRate === undefined) {
+ throw new Error('Required parameter taxRate was null or undefined when calling createTaxRate.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(taxRate, "TaxRate")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TaxRates");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createTaxRates(xeroTenantId, taxRates, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TaxRates#bulk';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createTaxRates.');
+ }
+ if (taxRates === null || taxRates === undefined) {
+ throw new Error('Required parameter taxRates was null or undefined when calling createTaxRates.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(taxRates, "TaxRates")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TaxRates");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createTrackingCategory(xeroTenantId, trackingCategory, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TrackingCategories';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createTrackingCategory.');
+ }
+ if (trackingCategory === null || trackingCategory === undefined) {
+ throw new Error('Required parameter trackingCategory was null or undefined when calling createTrackingCategory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(trackingCategory, "TrackingCategory")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TrackingCategories");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async createTrackingOptions(xeroTenantId, trackingCategoryID, trackingOption, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TrackingCategories/{TrackingCategoryID}/Options'
+ .replace('{' + 'TrackingCategoryID' + '}', encodeURIComponent(String(trackingCategoryID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling createTrackingOptions.');
+ }
+ if (trackingCategoryID === null || trackingCategoryID === undefined) {
+ throw new Error('Required parameter trackingCategoryID was null or undefined when calling createTrackingOptions.');
+ }
+ if (trackingOption === null || trackingOption === undefined) {
+ throw new Error('Required parameter trackingOption was null or undefined when calling createTrackingOptions.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'PUT',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(trackingOption, "TrackingOption")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TrackingOptions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async deleteAccount(xeroTenantId, accountID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts/{AccountID}'
+ .replace('{' + 'AccountID' + '}', encodeURIComponent(String(accountID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling deleteAccount.');
+ }
+ if (accountID === null || accountID === undefined) {
+ throw new Error('Required parameter accountID was null or undefined when calling deleteAccount.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'DELETE',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Accounts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async deleteContactGroupContact(xeroTenantId, contactGroupID, contactID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ContactGroups/{ContactGroupID}/Contacts/{ContactID}'
+ .replace('{' + 'ContactGroupID' + '}', encodeURIComponent(String(contactGroupID)))
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling deleteContactGroupContact.');
+ }
+ if (contactGroupID === null || contactGroupID === undefined) {
+ throw new Error('Required parameter contactGroupID was null or undefined when calling deleteContactGroupContact.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling deleteContactGroupContact.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'DELETE',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async deleteContactGroupContacts(xeroTenantId, contactGroupID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ContactGroups/{ContactGroupID}/Contacts'
+ .replace('{' + 'ContactGroupID' + '}', encodeURIComponent(String(contactGroupID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling deleteContactGroupContacts.');
+ }
+ if (contactGroupID === null || contactGroupID === undefined) {
+ throw new Error('Required parameter contactGroupID was null or undefined when calling deleteContactGroupContacts.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'DELETE',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async deleteItem(xeroTenantId, itemID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Items/{ItemID}'
+ .replace('{' + 'ItemID' + '}', encodeURIComponent(String(itemID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling deleteItem.');
+ }
+ if (itemID === null || itemID === undefined) {
+ throw new Error('Required parameter itemID was null or undefined when calling deleteItem.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'DELETE',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async deleteLinkedTransaction(xeroTenantId, linkedTransactionID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/LinkedTransactions/{LinkedTransactionID}'
+ .replace('{' + 'LinkedTransactionID' + '}', encodeURIComponent(String(linkedTransactionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling deleteLinkedTransaction.');
+ }
+ if (linkedTransactionID === null || linkedTransactionID === undefined) {
+ throw new Error('Required parameter linkedTransactionID was null or undefined when calling deleteLinkedTransaction.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'DELETE',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async deletePayment(xeroTenantId, paymentID, payments, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Payments/{PaymentID}'
+ .replace('{' + 'PaymentID' + '}', encodeURIComponent(String(paymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling deletePayment.');
+ }
+ if (paymentID === null || paymentID === undefined) {
+ throw new Error('Required parameter paymentID was null or undefined when calling deletePayment.');
+ }
+ if (payments === null || payments === undefined) {
+ throw new Error('Required parameter payments was null or undefined when calling deletePayment.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(payments, "Payments")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Payments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async deleteTrackingCategory(xeroTenantId, trackingCategoryID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TrackingCategories/{TrackingCategoryID}'
+ .replace('{' + 'TrackingCategoryID' + '}', encodeURIComponent(String(trackingCategoryID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling deleteTrackingCategory.');
+ }
+ if (trackingCategoryID === null || trackingCategoryID === undefined) {
+ throw new Error('Required parameter trackingCategoryID was null or undefined when calling deleteTrackingCategory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'DELETE',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TrackingCategories");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async deleteTrackingOptions(xeroTenantId, trackingCategoryID, trackingOptionID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}'
+ .replace('{' + 'TrackingCategoryID' + '}', encodeURIComponent(String(trackingCategoryID)))
+ .replace('{' + 'TrackingOptionID' + '}', encodeURIComponent(String(trackingOptionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling deleteTrackingOptions.');
+ }
+ if (trackingCategoryID === null || trackingCategoryID === undefined) {
+ throw new Error('Required parameter trackingCategoryID was null or undefined when calling deleteTrackingOptions.');
+ }
+ if (trackingOptionID === null || trackingOptionID === undefined) {
+ throw new Error('Required parameter trackingOptionID was null or undefined when calling deleteTrackingOptions.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'DELETE',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TrackingOptions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async emailInvoice(xeroTenantId, invoiceID, requestEmpty, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/Email'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling emailInvoice.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling emailInvoice.');
+ }
+ if (requestEmpty === null || requestEmpty === undefined) {
+ throw new Error('Required parameter requestEmpty was null or undefined when calling emailInvoice.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ body: models_1.ObjectSerializer.serialize(requestEmpty, "RequestEmpty")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getAccount(xeroTenantId, accountID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts/{AccountID}'
+ .replace('{' + 'AccountID' + '}', encodeURIComponent(String(accountID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getAccount.');
+ }
+ if (accountID === null || accountID === undefined) {
+ throw new Error('Required parameter accountID was null or undefined when calling getAccount.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Accounts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getAccountAttachmentByFileName(xeroTenantId, accountID, fileName, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts/{AccountID}/Attachments/{FileName}'
+ .replace('{' + 'AccountID' + '}', encodeURIComponent(String(accountID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getAccountAttachmentByFileName.');
+ }
+ if (accountID === null || accountID === undefined) {
+ throw new Error('Required parameter accountID was null or undefined when calling getAccountAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling getAccountAttachmentByFileName.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getAccountAttachmentByFileName.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getAccountAttachmentById(xeroTenantId, accountID, attachmentID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts/{AccountID}/Attachments/{AttachmentID}'
+ .replace('{' + 'AccountID' + '}', encodeURIComponent(String(accountID)))
+ .replace('{' + 'AttachmentID' + '}', encodeURIComponent(String(attachmentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getAccountAttachmentById.');
+ }
+ if (accountID === null || accountID === undefined) {
+ throw new Error('Required parameter accountID was null or undefined when calling getAccountAttachmentById.');
+ }
+ if (attachmentID === null || attachmentID === undefined) {
+ throw new Error('Required parameter attachmentID was null or undefined when calling getAccountAttachmentById.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getAccountAttachmentById.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getAccountAttachments(xeroTenantId, accountID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts/{AccountID}/Attachments'
+ .replace('{' + 'AccountID' + '}', encodeURIComponent(String(accountID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getAccountAttachments.');
+ }
+ if (accountID === null || accountID === undefined) {
+ throw new Error('Required parameter accountID was null or undefined when calling getAccountAttachments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getAccounts(xeroTenantId, ifModifiedSince, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getAccounts.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Accounts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransaction(xeroTenantId, bankTransactionID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}'
+ .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransaction.');
+ }
+ if (bankTransactionID === null || bankTransactionID === undefined) {
+ throw new Error('Required parameter bankTransactionID was null or undefined when calling getBankTransaction.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BankTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransactionAttachmentByFileName(xeroTenantId, bankTransactionID, fileName, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}/Attachments/{FileName}'
+ .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransactionAttachmentByFileName.');
+ }
+ if (bankTransactionID === null || bankTransactionID === undefined) {
+ throw new Error('Required parameter bankTransactionID was null or undefined when calling getBankTransactionAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling getBankTransactionAttachmentByFileName.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getBankTransactionAttachmentByFileName.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransactionAttachmentById(xeroTenantId, bankTransactionID, attachmentID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}'
+ .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID)))
+ .replace('{' + 'AttachmentID' + '}', encodeURIComponent(String(attachmentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransactionAttachmentById.');
+ }
+ if (bankTransactionID === null || bankTransactionID === undefined) {
+ throw new Error('Required parameter bankTransactionID was null or undefined when calling getBankTransactionAttachmentById.');
+ }
+ if (attachmentID === null || attachmentID === undefined) {
+ throw new Error('Required parameter attachmentID was null or undefined when calling getBankTransactionAttachmentById.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getBankTransactionAttachmentById.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransactionAttachments(xeroTenantId, bankTransactionID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}/Attachments'
+ .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransactionAttachments.');
+ }
+ if (bankTransactionID === null || bankTransactionID === undefined) {
+ throw new Error('Required parameter bankTransactionID was null or undefined when calling getBankTransactionAttachments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransactions(xeroTenantId, ifModifiedSince, where, order, page, unitdp, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransactions.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ if (unitdp !== undefined) {
+ localVarQueryParameters['unitdp'] = models_1.ObjectSerializer.serialize(unitdp, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BankTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransactionsHistory(xeroTenantId, bankTransactionID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}/History'
+ .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransactionsHistory.');
+ }
+ if (bankTransactionID === null || bankTransactionID === undefined) {
+ throw new Error('Required parameter bankTransactionID was null or undefined when calling getBankTransactionsHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransfer(xeroTenantId, bankTransferID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}'
+ .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransfer.');
+ }
+ if (bankTransferID === null || bankTransferID === undefined) {
+ throw new Error('Required parameter bankTransferID was null or undefined when calling getBankTransfer.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BankTransfers");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransferAttachmentByFileName(xeroTenantId, bankTransferID, fileName, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}/Attachments/{FileName}'
+ .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransferAttachmentByFileName.');
+ }
+ if (bankTransferID === null || bankTransferID === undefined) {
+ throw new Error('Required parameter bankTransferID was null or undefined when calling getBankTransferAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling getBankTransferAttachmentByFileName.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getBankTransferAttachmentByFileName.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransferAttachmentById(xeroTenantId, bankTransferID, attachmentID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}/Attachments/{AttachmentID}'
+ .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID)))
+ .replace('{' + 'AttachmentID' + '}', encodeURIComponent(String(attachmentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransferAttachmentById.');
+ }
+ if (bankTransferID === null || bankTransferID === undefined) {
+ throw new Error('Required parameter bankTransferID was null or undefined when calling getBankTransferAttachmentById.');
+ }
+ if (attachmentID === null || attachmentID === undefined) {
+ throw new Error('Required parameter attachmentID was null or undefined when calling getBankTransferAttachmentById.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getBankTransferAttachmentById.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransferAttachments(xeroTenantId, bankTransferID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}/Attachments'
+ .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransferAttachments.');
+ }
+ if (bankTransferID === null || bankTransferID === undefined) {
+ throw new Error('Required parameter bankTransferID was null or undefined when calling getBankTransferAttachments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransferHistory(xeroTenantId, bankTransferID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}/History'
+ .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransferHistory.');
+ }
+ if (bankTransferID === null || bankTransferID === undefined) {
+ throw new Error('Required parameter bankTransferID was null or undefined when calling getBankTransferHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBankTransfers(xeroTenantId, ifModifiedSince, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBankTransfers.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BankTransfers");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBatchPaymentHistory(xeroTenantId, batchPaymentID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BatchPayments/{BatchPaymentID}/History'
+ .replace('{' + 'BatchPaymentID' + '}', encodeURIComponent(String(batchPaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBatchPaymentHistory.');
+ }
+ if (batchPaymentID === null || batchPaymentID === undefined) {
+ throw new Error('Required parameter batchPaymentID was null or undefined when calling getBatchPaymentHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBatchPayments(xeroTenantId, ifModifiedSince, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BatchPayments';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBatchPayments.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BatchPayments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBrandingTheme(xeroTenantId, brandingThemeID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BrandingThemes/{BrandingThemeID}'
+ .replace('{' + 'BrandingThemeID' + '}', encodeURIComponent(String(brandingThemeID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBrandingTheme.');
+ }
+ if (brandingThemeID === null || brandingThemeID === undefined) {
+ throw new Error('Required parameter brandingThemeID was null or undefined when calling getBrandingTheme.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BrandingThemes");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBrandingThemePaymentServices(xeroTenantId, brandingThemeID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BrandingThemes/{BrandingThemeID}/PaymentServices'
+ .replace('{' + 'BrandingThemeID' + '}', encodeURIComponent(String(brandingThemeID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBrandingThemePaymentServices.');
+ }
+ if (brandingThemeID === null || brandingThemeID === undefined) {
+ throw new Error('Required parameter brandingThemeID was null or undefined when calling getBrandingThemePaymentServices.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "PaymentServices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getBrandingThemes(xeroTenantId, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BrandingThemes';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getBrandingThemes.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BrandingThemes");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getContact(xeroTenantId, contactID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getContact.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling getContact.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Contacts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getContactAttachmentByFileName(xeroTenantId, contactID, fileName, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}/Attachments/{FileName}'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getContactAttachmentByFileName.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling getContactAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling getContactAttachmentByFileName.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getContactAttachmentByFileName.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getContactAttachmentById(xeroTenantId, contactID, attachmentID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}/Attachments/{AttachmentID}'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)))
+ .replace('{' + 'AttachmentID' + '}', encodeURIComponent(String(attachmentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getContactAttachmentById.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling getContactAttachmentById.');
+ }
+ if (attachmentID === null || attachmentID === undefined) {
+ throw new Error('Required parameter attachmentID was null or undefined when calling getContactAttachmentById.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getContactAttachmentById.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getContactAttachments(xeroTenantId, contactID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}/Attachments'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getContactAttachments.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling getContactAttachments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getContactCISSettings(xeroTenantId, contactID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}/CISSettings'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getContactCISSettings.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling getContactCISSettings.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "CISSettings");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getContactGroup(xeroTenantId, contactGroupID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ContactGroups/{ContactGroupID}'
+ .replace('{' + 'ContactGroupID' + '}', encodeURIComponent(String(contactGroupID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getContactGroup.');
+ }
+ if (contactGroupID === null || contactGroupID === undefined) {
+ throw new Error('Required parameter contactGroupID was null or undefined when calling getContactGroup.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ContactGroups");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getContactGroups(xeroTenantId, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ContactGroups';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getContactGroups.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ContactGroups");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getContactHistory(xeroTenantId, contactID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}/History'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getContactHistory.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling getContactHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getContacts(xeroTenantId, ifModifiedSince, where, order, iDs, page, includeArchived, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getContacts.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (iDs !== undefined) {
+ localVarQueryParameters['IDs'] = models_1.ObjectSerializer.serialize(iDs, "Array");
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ if (includeArchived !== undefined) {
+ localVarQueryParameters['includeArchived'] = models_1.ObjectSerializer.serialize(includeArchived, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Contacts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getCreditNote(xeroTenantId, creditNoteID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getCreditNote.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling getCreditNote.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "CreditNotes");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getCreditNoteAsPdf(xeroTenantId, creditNoteID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}/pdf'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getCreditNoteAsPdf.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling getCreditNoteAsPdf.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getCreditNoteAsPdf.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getCreditNoteAttachmentByFileName(xeroTenantId, creditNoteID, fileName, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}/Attachments/{FileName}'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getCreditNoteAttachmentByFileName.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling getCreditNoteAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling getCreditNoteAttachmentByFileName.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getCreditNoteAttachmentByFileName.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getCreditNoteAttachmentById(xeroTenantId, creditNoteID, attachmentID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)))
+ .replace('{' + 'AttachmentID' + '}', encodeURIComponent(String(attachmentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getCreditNoteAttachmentById.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling getCreditNoteAttachmentById.');
+ }
+ if (attachmentID === null || attachmentID === undefined) {
+ throw new Error('Required parameter attachmentID was null or undefined when calling getCreditNoteAttachmentById.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getCreditNoteAttachmentById.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getCreditNoteAttachments(xeroTenantId, creditNoteID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}/Attachments'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getCreditNoteAttachments.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling getCreditNoteAttachments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getCreditNoteHistory(xeroTenantId, creditNoteID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}/History'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getCreditNoteHistory.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling getCreditNoteHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getCreditNotes(xeroTenantId, ifModifiedSince, where, order, page, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getCreditNotes.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "CreditNotes");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getCurrencies(xeroTenantId, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Currencies';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getCurrencies.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Currencies");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getEmployee(xeroTenantId, employeeID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Employees/{EmployeeID}'
+ .replace('{' + 'EmployeeID' + '}', encodeURIComponent(String(employeeID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getEmployee.');
+ }
+ if (employeeID === null || employeeID === undefined) {
+ throw new Error('Required parameter employeeID was null or undefined when calling getEmployee.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Employees");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getEmployees(xeroTenantId, ifModifiedSince, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Employees';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getEmployees.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Employees");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getExpenseClaim(xeroTenantId, expenseClaimID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ExpenseClaims/{ExpenseClaimID}'
+ .replace('{' + 'ExpenseClaimID' + '}', encodeURIComponent(String(expenseClaimID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getExpenseClaim.');
+ }
+ if (expenseClaimID === null || expenseClaimID === undefined) {
+ throw new Error('Required parameter expenseClaimID was null or undefined when calling getExpenseClaim.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ExpenseClaims");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getExpenseClaimHistory(xeroTenantId, expenseClaimID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ExpenseClaims/{ExpenseClaimID}/History'
+ .replace('{' + 'ExpenseClaimID' + '}', encodeURIComponent(String(expenseClaimID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getExpenseClaimHistory.');
+ }
+ if (expenseClaimID === null || expenseClaimID === undefined) {
+ throw new Error('Required parameter expenseClaimID was null or undefined when calling getExpenseClaimHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getExpenseClaims(xeroTenantId, ifModifiedSince, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ExpenseClaims';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getExpenseClaims.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ExpenseClaims");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getInvoice(xeroTenantId, invoiceID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getInvoice.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling getInvoice.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Invoices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getInvoiceAsPdf(xeroTenantId, invoiceID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/pdf'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getInvoiceAsPdf.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling getInvoiceAsPdf.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getInvoiceAsPdf.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getInvoiceAttachmentByFileName(xeroTenantId, invoiceID, fileName, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/Attachments/{FileName}'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getInvoiceAttachmentByFileName.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling getInvoiceAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling getInvoiceAttachmentByFileName.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getInvoiceAttachmentByFileName.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getInvoiceAttachmentById(xeroTenantId, invoiceID, attachmentID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/Attachments/{AttachmentID}'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)))
+ .replace('{' + 'AttachmentID' + '}', encodeURIComponent(String(attachmentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getInvoiceAttachmentById.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling getInvoiceAttachmentById.');
+ }
+ if (attachmentID === null || attachmentID === undefined) {
+ throw new Error('Required parameter attachmentID was null or undefined when calling getInvoiceAttachmentById.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getInvoiceAttachmentById.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getInvoiceAttachments(xeroTenantId, invoiceID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/Attachments'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getInvoiceAttachments.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling getInvoiceAttachments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getInvoiceHistory(xeroTenantId, invoiceID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/History'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getInvoiceHistory.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling getInvoiceHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getInvoiceReminders(xeroTenantId, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/InvoiceReminders/Settings';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getInvoiceReminders.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "InvoiceReminders");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getInvoices(xeroTenantId, ifModifiedSince, where, order, iDs, invoiceNumbers, contactIDs, statuses, page, includeArchived, createdByMyApp, unitdp, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getInvoices.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (iDs !== undefined) {
+ localVarQueryParameters['IDs'] = models_1.ObjectSerializer.serialize(iDs, "Array");
+ }
+ if (invoiceNumbers !== undefined) {
+ localVarQueryParameters['InvoiceNumbers'] = models_1.ObjectSerializer.serialize(invoiceNumbers, "Array");
+ }
+ if (contactIDs !== undefined) {
+ localVarQueryParameters['ContactIDs'] = models_1.ObjectSerializer.serialize(contactIDs, "Array");
+ }
+ if (statuses !== undefined) {
+ localVarQueryParameters['Statuses'] = models_1.ObjectSerializer.serialize(statuses, "Array");
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ if (includeArchived !== undefined) {
+ localVarQueryParameters['includeArchived'] = models_1.ObjectSerializer.serialize(includeArchived, "boolean");
+ }
+ if (createdByMyApp !== undefined) {
+ localVarQueryParameters['createdByMyApp'] = models_1.ObjectSerializer.serialize(createdByMyApp, "boolean");
+ }
+ if (unitdp !== undefined) {
+ localVarQueryParameters['unitdp'] = models_1.ObjectSerializer.serialize(unitdp, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Invoices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getItem(xeroTenantId, itemID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Items/{ItemID}'
+ .replace('{' + 'ItemID' + '}', encodeURIComponent(String(itemID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getItem.');
+ }
+ if (itemID === null || itemID === undefined) {
+ throw new Error('Required parameter itemID was null or undefined when calling getItem.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Items");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getItemHistory(xeroTenantId, itemID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Items/{ItemID}/History'
+ .replace('{' + 'ItemID' + '}', encodeURIComponent(String(itemID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getItemHistory.');
+ }
+ if (itemID === null || itemID === undefined) {
+ throw new Error('Required parameter itemID was null or undefined when calling getItemHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getItems(xeroTenantId, ifModifiedSince, where, order, unitdp, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Items';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getItems.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (unitdp !== undefined) {
+ localVarQueryParameters['unitdp'] = models_1.ObjectSerializer.serialize(unitdp, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Items");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getJournal(xeroTenantId, journalID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Journals/{JournalID}'
+ .replace('{' + 'JournalID' + '}', encodeURIComponent(String(journalID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getJournal.');
+ }
+ if (journalID === null || journalID === undefined) {
+ throw new Error('Required parameter journalID was null or undefined when calling getJournal.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Journals");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getJournals(xeroTenantId, ifModifiedSince, offset, paymentsOnly, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Journals';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getJournals.');
+ }
+ if (offset !== undefined) {
+ localVarQueryParameters['offset'] = models_1.ObjectSerializer.serialize(offset, "number");
+ }
+ if (paymentsOnly !== undefined) {
+ localVarQueryParameters['paymentsOnly'] = models_1.ObjectSerializer.serialize(paymentsOnly, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Journals");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getLinkedTransaction(xeroTenantId, linkedTransactionID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/LinkedTransactions/{LinkedTransactionID}'
+ .replace('{' + 'LinkedTransactionID' + '}', encodeURIComponent(String(linkedTransactionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getLinkedTransaction.');
+ }
+ if (linkedTransactionID === null || linkedTransactionID === undefined) {
+ throw new Error('Required parameter linkedTransactionID was null or undefined when calling getLinkedTransaction.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "LinkedTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getLinkedTransactions(xeroTenantId, page, linkedTransactionID, sourceTransactionID, contactID, status, targetTransactionID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/LinkedTransactions';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getLinkedTransactions.');
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ if (linkedTransactionID !== undefined) {
+ localVarQueryParameters['LinkedTransactionID'] = models_1.ObjectSerializer.serialize(linkedTransactionID, "string");
+ }
+ if (sourceTransactionID !== undefined) {
+ localVarQueryParameters['SourceTransactionID'] = models_1.ObjectSerializer.serialize(sourceTransactionID, "string");
+ }
+ if (contactID !== undefined) {
+ localVarQueryParameters['ContactID'] = models_1.ObjectSerializer.serialize(contactID, "string");
+ }
+ if (status !== undefined) {
+ localVarQueryParameters['Status'] = models_1.ObjectSerializer.serialize(status, "string");
+ }
+ if (targetTransactionID !== undefined) {
+ localVarQueryParameters['TargetTransactionID'] = models_1.ObjectSerializer.serialize(targetTransactionID, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "LinkedTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getManualJournal(xeroTenantId, manualJournalID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals/{ManualJournalID}'
+ .replace('{' + 'ManualJournalID' + '}', encodeURIComponent(String(manualJournalID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getManualJournal.');
+ }
+ if (manualJournalID === null || manualJournalID === undefined) {
+ throw new Error('Required parameter manualJournalID was null or undefined when calling getManualJournal.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ManualJournals");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getManualJournalAttachmentByFileName(xeroTenantId, manualJournalID, fileName, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals/{ManualJournalID}/Attachments/{FileName}'
+ .replace('{' + 'ManualJournalID' + '}', encodeURIComponent(String(manualJournalID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getManualJournalAttachmentByFileName.');
+ }
+ if (manualJournalID === null || manualJournalID === undefined) {
+ throw new Error('Required parameter manualJournalID was null or undefined when calling getManualJournalAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling getManualJournalAttachmentByFileName.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getManualJournalAttachmentByFileName.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getManualJournalAttachmentById(xeroTenantId, manualJournalID, attachmentID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}'
+ .replace('{' + 'ManualJournalID' + '}', encodeURIComponent(String(manualJournalID)))
+ .replace('{' + 'AttachmentID' + '}', encodeURIComponent(String(attachmentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getManualJournalAttachmentById.');
+ }
+ if (manualJournalID === null || manualJournalID === undefined) {
+ throw new Error('Required parameter manualJournalID was null or undefined when calling getManualJournalAttachmentById.');
+ }
+ if (attachmentID === null || attachmentID === undefined) {
+ throw new Error('Required parameter attachmentID was null or undefined when calling getManualJournalAttachmentById.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getManualJournalAttachmentById.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getManualJournalAttachments(xeroTenantId, manualJournalID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals/{ManualJournalID}/Attachments'
+ .replace('{' + 'ManualJournalID' + '}', encodeURIComponent(String(manualJournalID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getManualJournalAttachments.');
+ }
+ if (manualJournalID === null || manualJournalID === undefined) {
+ throw new Error('Required parameter manualJournalID was null or undefined when calling getManualJournalAttachments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getManualJournals(xeroTenantId, ifModifiedSince, where, order, page, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getManualJournals.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ManualJournals");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getOnlineInvoice(xeroTenantId, invoiceID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/OnlineInvoice'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getOnlineInvoice.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling getOnlineInvoice.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "OnlineInvoices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getOrganisationCISSettings(xeroTenantId, organisationID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Organisation/{OrganisationID}/CISSettings'
+ .replace('{' + 'OrganisationID' + '}', encodeURIComponent(String(organisationID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getOrganisationCISSettings.');
+ }
+ if (organisationID === null || organisationID === undefined) {
+ throw new Error('Required parameter organisationID was null or undefined when calling getOrganisationCISSettings.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "CISOrgSetting");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getOrganisations(xeroTenantId, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Organisation';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getOrganisations.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Organisations");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getOverpayment(xeroTenantId, overpaymentID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Overpayments/{OverpaymentID}'
+ .replace('{' + 'OverpaymentID' + '}', encodeURIComponent(String(overpaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getOverpayment.');
+ }
+ if (overpaymentID === null || overpaymentID === undefined) {
+ throw new Error('Required parameter overpaymentID was null or undefined when calling getOverpayment.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Overpayments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getOverpaymentHistory(xeroTenantId, overpaymentID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Overpayments/{OverpaymentID}/History'
+ .replace('{' + 'OverpaymentID' + '}', encodeURIComponent(String(overpaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getOverpaymentHistory.');
+ }
+ if (overpaymentID === null || overpaymentID === undefined) {
+ throw new Error('Required parameter overpaymentID was null or undefined when calling getOverpaymentHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getOverpayments(xeroTenantId, ifModifiedSince, where, order, page, unitdp, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Overpayments';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getOverpayments.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ if (unitdp !== undefined) {
+ localVarQueryParameters['unitdp'] = models_1.ObjectSerializer.serialize(unitdp, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Overpayments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPayment(xeroTenantId, paymentID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Payments/{PaymentID}'
+ .replace('{' + 'PaymentID' + '}', encodeURIComponent(String(paymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPayment.');
+ }
+ if (paymentID === null || paymentID === undefined) {
+ throw new Error('Required parameter paymentID was null or undefined when calling getPayment.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Payments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPaymentHistory(xeroTenantId, paymentID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Payments/{PaymentID}/History'
+ .replace('{' + 'PaymentID' + '}', encodeURIComponent(String(paymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPaymentHistory.');
+ }
+ if (paymentID === null || paymentID === undefined) {
+ throw new Error('Required parameter paymentID was null or undefined when calling getPaymentHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPaymentServices(xeroTenantId, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/PaymentServices';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPaymentServices.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "PaymentServices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPayments(xeroTenantId, ifModifiedSince, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Payments';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPayments.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Payments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPrepayment(xeroTenantId, prepaymentID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Prepayments/{PrepaymentID}'
+ .replace('{' + 'PrepaymentID' + '}', encodeURIComponent(String(prepaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPrepayment.');
+ }
+ if (prepaymentID === null || prepaymentID === undefined) {
+ throw new Error('Required parameter prepaymentID was null or undefined when calling getPrepayment.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Prepayments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPrepaymentHistory(xeroTenantId, prepaymentID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Prepayments/{PrepaymentID}/History'
+ .replace('{' + 'PrepaymentID' + '}', encodeURIComponent(String(prepaymentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPrepaymentHistory.');
+ }
+ if (prepaymentID === null || prepaymentID === undefined) {
+ throw new Error('Required parameter prepaymentID was null or undefined when calling getPrepaymentHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPrepayments(xeroTenantId, ifModifiedSince, where, order, page, unitdp, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Prepayments';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPrepayments.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ if (unitdp !== undefined) {
+ localVarQueryParameters['unitdp'] = models_1.ObjectSerializer.serialize(unitdp, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Prepayments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPurchaseOrder(xeroTenantId, purchaseOrderID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/PurchaseOrders/{PurchaseOrderID}'
+ .replace('{' + 'PurchaseOrderID' + '}', encodeURIComponent(String(purchaseOrderID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPurchaseOrder.');
+ }
+ if (purchaseOrderID === null || purchaseOrderID === undefined) {
+ throw new Error('Required parameter purchaseOrderID was null or undefined when calling getPurchaseOrder.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "PurchaseOrders");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPurchaseOrderHistory(xeroTenantId, purchaseOrderID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/PurchaseOrders/{PurchaseOrderID}/History'
+ .replace('{' + 'PurchaseOrderID' + '}', encodeURIComponent(String(purchaseOrderID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPurchaseOrderHistory.');
+ }
+ if (purchaseOrderID === null || purchaseOrderID === undefined) {
+ throw new Error('Required parameter purchaseOrderID was null or undefined when calling getPurchaseOrderHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getPurchaseOrders(xeroTenantId, ifModifiedSince, status, dateFrom, dateTo, order, page, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/PurchaseOrders';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getPurchaseOrders.');
+ }
+ if (status !== undefined) {
+ localVarQueryParameters['Status'] = models_1.ObjectSerializer.serialize(status, "'DRAFT' | 'SUBMITTED' | 'AUTHORISED' | 'BILLED' | 'DELETED'");
+ }
+ if (dateFrom !== undefined) {
+ localVarQueryParameters['DateFrom'] = models_1.ObjectSerializer.serialize(dateFrom, "string");
+ }
+ if (dateTo !== undefined) {
+ localVarQueryParameters['DateTo'] = models_1.ObjectSerializer.serialize(dateTo, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "PurchaseOrders");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getQuote(xeroTenantId, quoteID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Quotes/{QuoteID}'
+ .replace('{' + 'QuoteID' + '}', encodeURIComponent(String(quoteID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getQuote.');
+ }
+ if (quoteID === null || quoteID === undefined) {
+ throw new Error('Required parameter quoteID was null or undefined when calling getQuote.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Quotes");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getQuotes(xeroTenantId, ifModifiedSince, dateFrom, dateTo, expiryDateFrom, expiryDateTo, contactID, status, page, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Quotes';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getQuotes.');
+ }
+ if (dateFrom !== undefined) {
+ localVarQueryParameters['DateFrom'] = models_1.ObjectSerializer.serialize(dateFrom, "string");
+ }
+ if (dateTo !== undefined) {
+ localVarQueryParameters['DateTo'] = models_1.ObjectSerializer.serialize(dateTo, "string");
+ }
+ if (expiryDateFrom !== undefined) {
+ localVarQueryParameters['ExpiryDateFrom'] = models_1.ObjectSerializer.serialize(expiryDateFrom, "string");
+ }
+ if (expiryDateTo !== undefined) {
+ localVarQueryParameters['ExpiryDateTo'] = models_1.ObjectSerializer.serialize(expiryDateTo, "string");
+ }
+ if (contactID !== undefined) {
+ localVarQueryParameters['ContactID'] = models_1.ObjectSerializer.serialize(contactID, "string");
+ }
+ if (status !== undefined) {
+ localVarQueryParameters['Status'] = models_1.ObjectSerializer.serialize(status, "string");
+ }
+ if (page !== undefined) {
+ localVarQueryParameters['page'] = models_1.ObjectSerializer.serialize(page, "number");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Quotes");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReceipt(xeroTenantId, receiptID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts/{ReceiptID}'
+ .replace('{' + 'ReceiptID' + '}', encodeURIComponent(String(receiptID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReceipt.');
+ }
+ if (receiptID === null || receiptID === undefined) {
+ throw new Error('Required parameter receiptID was null or undefined when calling getReceipt.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Receipts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReceiptAttachmentByFileName(xeroTenantId, receiptID, fileName, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts/{ReceiptID}/Attachments/{FileName}'
+ .replace('{' + 'ReceiptID' + '}', encodeURIComponent(String(receiptID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReceiptAttachmentByFileName.');
+ }
+ if (receiptID === null || receiptID === undefined) {
+ throw new Error('Required parameter receiptID was null or undefined when calling getReceiptAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling getReceiptAttachmentByFileName.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getReceiptAttachmentByFileName.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReceiptAttachmentById(xeroTenantId, receiptID, attachmentID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts/{ReceiptID}/Attachments/{AttachmentID}'
+ .replace('{' + 'ReceiptID' + '}', encodeURIComponent(String(receiptID)))
+ .replace('{' + 'AttachmentID' + '}', encodeURIComponent(String(attachmentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReceiptAttachmentById.');
+ }
+ if (receiptID === null || receiptID === undefined) {
+ throw new Error('Required parameter receiptID was null or undefined when calling getReceiptAttachmentById.');
+ }
+ if (attachmentID === null || attachmentID === undefined) {
+ throw new Error('Required parameter attachmentID was null or undefined when calling getReceiptAttachmentById.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getReceiptAttachmentById.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReceiptAttachments(xeroTenantId, receiptID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts/{ReceiptID}/Attachments'
+ .replace('{' + 'ReceiptID' + '}', encodeURIComponent(String(receiptID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReceiptAttachments.');
+ }
+ if (receiptID === null || receiptID === undefined) {
+ throw new Error('Required parameter receiptID was null or undefined when calling getReceiptAttachments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReceiptHistory(xeroTenantId, receiptID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts/{ReceiptID}/History'
+ .replace('{' + 'ReceiptID' + '}', encodeURIComponent(String(receiptID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReceiptHistory.');
+ }
+ if (receiptID === null || receiptID === undefined) {
+ throw new Error('Required parameter receiptID was null or undefined when calling getReceiptHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReceipts(xeroTenantId, ifModifiedSince, where, order, unitdp, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReceipts.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (unitdp !== undefined) {
+ localVarQueryParameters['unitdp'] = models_1.ObjectSerializer.serialize(unitdp, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Receipts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getRepeatingInvoice(xeroTenantId, repeatingInvoiceID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/RepeatingInvoices/{RepeatingInvoiceID}'
+ .replace('{' + 'RepeatingInvoiceID' + '}', encodeURIComponent(String(repeatingInvoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getRepeatingInvoice.');
+ }
+ if (repeatingInvoiceID === null || repeatingInvoiceID === undefined) {
+ throw new Error('Required parameter repeatingInvoiceID was null or undefined when calling getRepeatingInvoice.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "RepeatingInvoices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getRepeatingInvoiceAttachmentByFileName(xeroTenantId, repeatingInvoiceID, fileName, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}'
+ .replace('{' + 'RepeatingInvoiceID' + '}', encodeURIComponent(String(repeatingInvoiceID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getRepeatingInvoiceAttachmentByFileName.');
+ }
+ if (repeatingInvoiceID === null || repeatingInvoiceID === undefined) {
+ throw new Error('Required parameter repeatingInvoiceID was null or undefined when calling getRepeatingInvoiceAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling getRepeatingInvoiceAttachmentByFileName.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getRepeatingInvoiceAttachmentByFileName.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getRepeatingInvoiceAttachmentById(xeroTenantId, repeatingInvoiceID, attachmentID, contentType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}'
+ .replace('{' + 'RepeatingInvoiceID' + '}', encodeURIComponent(String(repeatingInvoiceID)))
+ .replace('{' + 'AttachmentID' + '}', encodeURIComponent(String(attachmentID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getRepeatingInvoiceAttachmentById.');
+ }
+ if (repeatingInvoiceID === null || repeatingInvoiceID === undefined) {
+ throw new Error('Required parameter repeatingInvoiceID was null or undefined when calling getRepeatingInvoiceAttachmentById.');
+ }
+ if (attachmentID === null || attachmentID === undefined) {
+ throw new Error('Required parameter attachmentID was null or undefined when calling getRepeatingInvoiceAttachmentById.');
+ }
+ if (contentType === null || contentType === undefined) {
+ throw new Error('Required parameter contentType was null or undefined when calling getRepeatingInvoiceAttachmentById.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['contentType'] = models_1.ObjectSerializer.serialize(contentType, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ encoding: null,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Buffer");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getRepeatingInvoiceAttachments(xeroTenantId, repeatingInvoiceID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/RepeatingInvoices/{RepeatingInvoiceID}/Attachments'
+ .replace('{' + 'RepeatingInvoiceID' + '}', encodeURIComponent(String(repeatingInvoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getRepeatingInvoiceAttachments.');
+ }
+ if (repeatingInvoiceID === null || repeatingInvoiceID === undefined) {
+ throw new Error('Required parameter repeatingInvoiceID was null or undefined when calling getRepeatingInvoiceAttachments.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getRepeatingInvoiceHistory(xeroTenantId, repeatingInvoiceID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/RepeatingInvoices/{RepeatingInvoiceID}/History'
+ .replace('{' + 'RepeatingInvoiceID' + '}', encodeURIComponent(String(repeatingInvoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getRepeatingInvoiceHistory.');
+ }
+ if (repeatingInvoiceID === null || repeatingInvoiceID === undefined) {
+ throw new Error('Required parameter repeatingInvoiceID was null or undefined when calling getRepeatingInvoiceHistory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "HistoryRecords");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getRepeatingInvoices(xeroTenantId, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/RepeatingInvoices';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getRepeatingInvoices.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "RepeatingInvoices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportAgedPayablesByContact(xeroTenantId, contactId, date, fromDate, toDate, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/AgedPayablesByContact';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportAgedPayablesByContact.');
+ }
+ if (contactId === null || contactId === undefined) {
+ throw new Error('Required parameter contactId was null or undefined when calling getReportAgedPayablesByContact.');
+ }
+ if (contactId !== undefined) {
+ localVarQueryParameters['contactId'] = models_1.ObjectSerializer.serialize(contactId, "string");
+ }
+ if (date !== undefined) {
+ localVarQueryParameters['date'] = models_1.ObjectSerializer.serialize(date, "string");
+ }
+ if (fromDate !== undefined) {
+ localVarQueryParameters['fromDate'] = models_1.ObjectSerializer.serialize(fromDate, "string");
+ }
+ if (toDate !== undefined) {
+ localVarQueryParameters['toDate'] = models_1.ObjectSerializer.serialize(toDate, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportAgedReceivablesByContact(xeroTenantId, contactId, date, fromDate, toDate, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/AgedReceivablesByContact';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportAgedReceivablesByContact.');
+ }
+ if (contactId === null || contactId === undefined) {
+ throw new Error('Required parameter contactId was null or undefined when calling getReportAgedReceivablesByContact.');
+ }
+ if (contactId !== undefined) {
+ localVarQueryParameters['contactId'] = models_1.ObjectSerializer.serialize(contactId, "string");
+ }
+ if (date !== undefined) {
+ localVarQueryParameters['date'] = models_1.ObjectSerializer.serialize(date, "string");
+ }
+ if (fromDate !== undefined) {
+ localVarQueryParameters['fromDate'] = models_1.ObjectSerializer.serialize(fromDate, "string");
+ }
+ if (toDate !== undefined) {
+ localVarQueryParameters['toDate'] = models_1.ObjectSerializer.serialize(toDate, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportBASorGST(xeroTenantId, reportID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/{ReportID}'
+ .replace('{' + 'ReportID' + '}', encodeURIComponent(String(reportID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportBASorGST.');
+ }
+ if (reportID === null || reportID === undefined) {
+ throw new Error('Required parameter reportID was null or undefined when calling getReportBASorGST.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportBASorGSTList(xeroTenantId, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportBASorGSTList.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportBalanceSheet(xeroTenantId, date, periods, timeframe, trackingOptionID1, trackingOptionID2, standardLayout, paymentsOnly, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/BalanceSheet';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportBalanceSheet.');
+ }
+ if (date !== undefined) {
+ localVarQueryParameters['date'] = models_1.ObjectSerializer.serialize(date, "string");
+ }
+ if (periods !== undefined) {
+ localVarQueryParameters['periods'] = models_1.ObjectSerializer.serialize(periods, "number");
+ }
+ if (timeframe !== undefined) {
+ localVarQueryParameters['timeframe'] = models_1.ObjectSerializer.serialize(timeframe, "'MONTH' | 'QUARTER' | 'YEAR'");
+ }
+ if (trackingOptionID1 !== undefined) {
+ localVarQueryParameters['trackingOptionID1'] = models_1.ObjectSerializer.serialize(trackingOptionID1, "string");
+ }
+ if (trackingOptionID2 !== undefined) {
+ localVarQueryParameters['trackingOptionID2'] = models_1.ObjectSerializer.serialize(trackingOptionID2, "string");
+ }
+ if (standardLayout !== undefined) {
+ localVarQueryParameters['standardLayout'] = models_1.ObjectSerializer.serialize(standardLayout, "boolean");
+ }
+ if (paymentsOnly !== undefined) {
+ localVarQueryParameters['paymentsOnly'] = models_1.ObjectSerializer.serialize(paymentsOnly, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportBankSummary(xeroTenantId, date, period, timeframe, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/BankSummary';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportBankSummary.');
+ }
+ if (date !== undefined) {
+ localVarQueryParameters['date'] = models_1.ObjectSerializer.serialize(date, "string");
+ }
+ if (period !== undefined) {
+ localVarQueryParameters['period'] = models_1.ObjectSerializer.serialize(period, "number");
+ }
+ if (timeframe !== undefined) {
+ localVarQueryParameters['timeframe'] = models_1.ObjectSerializer.serialize(timeframe, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportBudgetSummary(xeroTenantId, date, period, timeframe, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/BudgetSummary';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportBudgetSummary.');
+ }
+ if (date !== undefined) {
+ localVarQueryParameters['date'] = models_1.ObjectSerializer.serialize(date, "string");
+ }
+ if (period !== undefined) {
+ localVarQueryParameters['period'] = models_1.ObjectSerializer.serialize(period, "number");
+ }
+ if (timeframe !== undefined) {
+ localVarQueryParameters['timeframe'] = models_1.ObjectSerializer.serialize(timeframe, "number");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportExecutiveSummary(xeroTenantId, date, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/ExecutiveSummary';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportExecutiveSummary.');
+ }
+ if (date !== undefined) {
+ localVarQueryParameters['date'] = models_1.ObjectSerializer.serialize(date, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportProfitAndLoss(xeroTenantId, fromDate, toDate, periods, timeframe, trackingCategoryID, trackingCategoryID2, trackingOptionID, trackingOptionID2, standardLayout, paymentsOnly, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/ProfitAndLoss';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportProfitAndLoss.');
+ }
+ if (fromDate !== undefined) {
+ localVarQueryParameters['fromDate'] = models_1.ObjectSerializer.serialize(fromDate, "string");
+ }
+ if (toDate !== undefined) {
+ localVarQueryParameters['toDate'] = models_1.ObjectSerializer.serialize(toDate, "string");
+ }
+ if (periods !== undefined) {
+ localVarQueryParameters['periods'] = models_1.ObjectSerializer.serialize(periods, "number");
+ }
+ if (timeframe !== undefined) {
+ localVarQueryParameters['timeframe'] = models_1.ObjectSerializer.serialize(timeframe, "'MONTH' | 'QUARTER' | 'YEAR'");
+ }
+ if (trackingCategoryID !== undefined) {
+ localVarQueryParameters['trackingCategoryID'] = models_1.ObjectSerializer.serialize(trackingCategoryID, "string");
+ }
+ if (trackingCategoryID2 !== undefined) {
+ localVarQueryParameters['trackingCategoryID2'] = models_1.ObjectSerializer.serialize(trackingCategoryID2, "string");
+ }
+ if (trackingOptionID !== undefined) {
+ localVarQueryParameters['trackingOptionID'] = models_1.ObjectSerializer.serialize(trackingOptionID, "string");
+ }
+ if (trackingOptionID2 !== undefined) {
+ localVarQueryParameters['trackingOptionID2'] = models_1.ObjectSerializer.serialize(trackingOptionID2, "string");
+ }
+ if (standardLayout !== undefined) {
+ localVarQueryParameters['standardLayout'] = models_1.ObjectSerializer.serialize(standardLayout, "boolean");
+ }
+ if (paymentsOnly !== undefined) {
+ localVarQueryParameters['paymentsOnly'] = models_1.ObjectSerializer.serialize(paymentsOnly, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportTenNinetyNine(xeroTenantId, reportYear, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/TenNinetyNine';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportTenNinetyNine.');
+ }
+ if (reportYear !== undefined) {
+ localVarQueryParameters['reportYear'] = models_1.ObjectSerializer.serialize(reportYear, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Reports");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getReportTrialBalance(xeroTenantId, date, paymentsOnly, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Reports/TrialBalance';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getReportTrialBalance.');
+ }
+ if (date !== undefined) {
+ localVarQueryParameters['date'] = models_1.ObjectSerializer.serialize(date, "string");
+ }
+ if (paymentsOnly !== undefined) {
+ localVarQueryParameters['paymentsOnly'] = models_1.ObjectSerializer.serialize(paymentsOnly, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ReportWithRows");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getTaxRates(xeroTenantId, where, order, taxType, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TaxRates';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getTaxRates.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (taxType !== undefined) {
+ localVarQueryParameters['TaxType'] = models_1.ObjectSerializer.serialize(taxType, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TaxRates");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getTrackingCategories(xeroTenantId, where, order, includeArchived, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TrackingCategories';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getTrackingCategories.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ if (includeArchived !== undefined) {
+ localVarQueryParameters['includeArchived'] = models_1.ObjectSerializer.serialize(includeArchived, "boolean");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TrackingCategories");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getTrackingCategory(xeroTenantId, trackingCategoryID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TrackingCategories/{TrackingCategoryID}'
+ .replace('{' + 'TrackingCategoryID' + '}', encodeURIComponent(String(trackingCategoryID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getTrackingCategory.');
+ }
+ if (trackingCategoryID === null || trackingCategoryID === undefined) {
+ throw new Error('Required parameter trackingCategoryID was null or undefined when calling getTrackingCategory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TrackingCategories");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getUser(xeroTenantId, userID, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Users/{UserID}'
+ .replace('{' + 'UserID' + '}', encodeURIComponent(String(userID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getUser.');
+ }
+ if (userID === null || userID === undefined) {
+ throw new Error('Required parameter userID was null or undefined when calling getUser.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Users");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async getUsers(xeroTenantId, ifModifiedSince, where, order, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Users';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling getUsers.');
+ }
+ if (where !== undefined) {
+ localVarQueryParameters['where'] = models_1.ObjectSerializer.serialize(where, "string");
+ }
+ if (order !== undefined) {
+ localVarQueryParameters['order'] = models_1.ObjectSerializer.serialize(order, "string");
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ localVarHeaderParams['If-Modified-Since'] = models_1.ObjectSerializer.serialize(ifModifiedSince, "Date");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'GET',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Users");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateAccount(xeroTenantId, accountID, accounts, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts/{AccountID}'
+ .replace('{' + 'AccountID' + '}', encodeURIComponent(String(accountID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateAccount.');
+ }
+ if (accountID === null || accountID === undefined) {
+ throw new Error('Required parameter accountID was null or undefined when calling updateAccount.');
+ }
+ if (accounts === null || accounts === undefined) {
+ throw new Error('Required parameter accounts was null or undefined when calling updateAccount.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(accounts, "Accounts")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Accounts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateAccountAttachmentByFileName(xeroTenantId, accountID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Accounts/{AccountID}/Attachments/{FileName}'
+ .replace('{' + 'AccountID' + '}', encodeURIComponent(String(accountID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateAccountAttachmentByFileName.');
+ }
+ if (accountID === null || accountID === undefined) {
+ throw new Error('Required parameter accountID was null or undefined when calling updateAccountAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling updateAccountAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateAccountAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateBankTransaction(xeroTenantId, bankTransactionID, bankTransactions, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}'
+ .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateBankTransaction.');
+ }
+ if (bankTransactionID === null || bankTransactionID === undefined) {
+ throw new Error('Required parameter bankTransactionID was null or undefined when calling updateBankTransaction.');
+ }
+ if (bankTransactions === null || bankTransactions === undefined) {
+ throw new Error('Required parameter bankTransactions was null or undefined when calling updateBankTransaction.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(bankTransactions, "BankTransactions")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "BankTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateBankTransactionAttachmentByFileName(xeroTenantId, bankTransactionID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}/Attachments/{FileName}'
+ .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateBankTransactionAttachmentByFileName.');
+ }
+ if (bankTransactionID === null || bankTransactionID === undefined) {
+ throw new Error('Required parameter bankTransactionID was null or undefined when calling updateBankTransactionAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling updateBankTransactionAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateBankTransactionAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateBankTransferAttachmentByFileName(xeroTenantId, bankTransferID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}/Attachments/{FileName}'
+ .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateBankTransferAttachmentByFileName.');
+ }
+ if (bankTransferID === null || bankTransferID === undefined) {
+ throw new Error('Required parameter bankTransferID was null or undefined when calling updateBankTransferAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling updateBankTransferAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateBankTransferAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateContact(xeroTenantId, contactID, contacts, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateContact.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling updateContact.');
+ }
+ if (contacts === null || contacts === undefined) {
+ throw new Error('Required parameter contacts was null or undefined when calling updateContact.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(contacts, "Contacts")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Contacts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateContactAttachmentByFileName(xeroTenantId, contactID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Contacts/{ContactID}/Attachments/{FileName}'
+ .replace('{' + 'ContactID' + '}', encodeURIComponent(String(contactID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateContactAttachmentByFileName.');
+ }
+ if (contactID === null || contactID === undefined) {
+ throw new Error('Required parameter contactID was null or undefined when calling updateContactAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling updateContactAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateContactAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateContactGroup(xeroTenantId, contactGroupID, contactGroups, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ContactGroups/{ContactGroupID}'
+ .replace('{' + 'ContactGroupID' + '}', encodeURIComponent(String(contactGroupID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateContactGroup.');
+ }
+ if (contactGroupID === null || contactGroupID === undefined) {
+ throw new Error('Required parameter contactGroupID was null or undefined when calling updateContactGroup.');
+ }
+ if (contactGroups === null || contactGroups === undefined) {
+ throw new Error('Required parameter contactGroups was null or undefined when calling updateContactGroup.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(contactGroups, "ContactGroups")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ContactGroups");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateCreditNote(xeroTenantId, creditNoteID, creditNotes, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateCreditNote.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling updateCreditNote.');
+ }
+ if (creditNotes === null || creditNotes === undefined) {
+ throw new Error('Required parameter creditNotes was null or undefined when calling updateCreditNote.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(creditNotes, "CreditNotes")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "CreditNotes");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateCreditNoteAttachmentByFileName(xeroTenantId, creditNoteID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/CreditNotes/{CreditNoteID}/Attachments/{FileName}'
+ .replace('{' + 'CreditNoteID' + '}', encodeURIComponent(String(creditNoteID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateCreditNoteAttachmentByFileName.');
+ }
+ if (creditNoteID === null || creditNoteID === undefined) {
+ throw new Error('Required parameter creditNoteID was null or undefined when calling updateCreditNoteAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling updateCreditNoteAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateCreditNoteAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateEmployee(xeroTenantId, employeeID, employees, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Employees/{EmployeeID}'
+ .replace('{' + 'EmployeeID' + '}', encodeURIComponent(String(employeeID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateEmployee.');
+ }
+ if (employeeID === null || employeeID === undefined) {
+ throw new Error('Required parameter employeeID was null or undefined when calling updateEmployee.');
+ }
+ if (employees === null || employees === undefined) {
+ throw new Error('Required parameter employees was null or undefined when calling updateEmployee.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(employees, "Employees")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Employees");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateExpenseClaim(xeroTenantId, expenseClaimID, expenseClaims, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ExpenseClaims/{ExpenseClaimID}'
+ .replace('{' + 'ExpenseClaimID' + '}', encodeURIComponent(String(expenseClaimID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateExpenseClaim.');
+ }
+ if (expenseClaimID === null || expenseClaimID === undefined) {
+ throw new Error('Required parameter expenseClaimID was null or undefined when calling updateExpenseClaim.');
+ }
+ if (expenseClaims === null || expenseClaims === undefined) {
+ throw new Error('Required parameter expenseClaims was null or undefined when calling updateExpenseClaim.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(expenseClaims, "ExpenseClaims")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ExpenseClaims");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateInvoice(xeroTenantId, invoiceID, invoices, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateInvoice.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling updateInvoice.');
+ }
+ if (invoices === null || invoices === undefined) {
+ throw new Error('Required parameter invoices was null or undefined when calling updateInvoice.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(invoices, "Invoices")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Invoices");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateInvoiceAttachmentByFileName(xeroTenantId, invoiceID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Invoices/{InvoiceID}/Attachments/{FileName}'
+ .replace('{' + 'InvoiceID' + '}', encodeURIComponent(String(invoiceID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateInvoiceAttachmentByFileName.');
+ }
+ if (invoiceID === null || invoiceID === undefined) {
+ throw new Error('Required parameter invoiceID was null or undefined when calling updateInvoiceAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling updateInvoiceAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateInvoiceAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateItem(xeroTenantId, itemID, items, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Items/{ItemID}'
+ .replace('{' + 'ItemID' + '}', encodeURIComponent(String(itemID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateItem.');
+ }
+ if (itemID === null || itemID === undefined) {
+ throw new Error('Required parameter itemID was null or undefined when calling updateItem.');
+ }
+ if (items === null || items === undefined) {
+ throw new Error('Required parameter items was null or undefined when calling updateItem.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(items, "Items")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Items");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateLinkedTransaction(xeroTenantId, linkedTransactionID, linkedTransactions, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/LinkedTransactions/{LinkedTransactionID}'
+ .replace('{' + 'LinkedTransactionID' + '}', encodeURIComponent(String(linkedTransactionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateLinkedTransaction.');
+ }
+ if (linkedTransactionID === null || linkedTransactionID === undefined) {
+ throw new Error('Required parameter linkedTransactionID was null or undefined when calling updateLinkedTransaction.');
+ }
+ if (linkedTransactions === null || linkedTransactions === undefined) {
+ throw new Error('Required parameter linkedTransactions was null or undefined when calling updateLinkedTransaction.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(linkedTransactions, "LinkedTransactions")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "LinkedTransactions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateManualJournal(xeroTenantId, manualJournalID, manualJournals, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals/{ManualJournalID}'
+ .replace('{' + 'ManualJournalID' + '}', encodeURIComponent(String(manualJournalID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateManualJournal.');
+ }
+ if (manualJournalID === null || manualJournalID === undefined) {
+ throw new Error('Required parameter manualJournalID was null or undefined when calling updateManualJournal.');
+ }
+ if (manualJournals === null || manualJournals === undefined) {
+ throw new Error('Required parameter manualJournals was null or undefined when calling updateManualJournal.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(manualJournals, "ManualJournals")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "ManualJournals");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateManualJournalAttachmentByFileName(xeroTenantId, manualJournalID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/ManualJournals/{ManualJournalID}/Attachments/{FileName}'
+ .replace('{' + 'ManualJournalID' + '}', encodeURIComponent(String(manualJournalID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateManualJournalAttachmentByFileName.');
+ }
+ if (manualJournalID === null || manualJournalID === undefined) {
+ throw new Error('Required parameter manualJournalID was null or undefined when calling updateManualJournalAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling updateManualJournalAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateManualJournalAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updatePurchaseOrder(xeroTenantId, purchaseOrderID, purchaseOrders, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/PurchaseOrders/{PurchaseOrderID}'
+ .replace('{' + 'PurchaseOrderID' + '}', encodeURIComponent(String(purchaseOrderID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updatePurchaseOrder.');
+ }
+ if (purchaseOrderID === null || purchaseOrderID === undefined) {
+ throw new Error('Required parameter purchaseOrderID was null or undefined when calling updatePurchaseOrder.');
+ }
+ if (purchaseOrders === null || purchaseOrders === undefined) {
+ throw new Error('Required parameter purchaseOrders was null or undefined when calling updatePurchaseOrder.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(purchaseOrders, "PurchaseOrders")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "PurchaseOrders");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateReceipt(xeroTenantId, receiptID, receipts, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts/{ReceiptID}'
+ .replace('{' + 'ReceiptID' + '}', encodeURIComponent(String(receiptID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateReceipt.');
+ }
+ if (receiptID === null || receiptID === undefined) {
+ throw new Error('Required parameter receiptID was null or undefined when calling updateReceipt.');
+ }
+ if (receipts === null || receipts === undefined) {
+ throw new Error('Required parameter receipts was null or undefined when calling updateReceipt.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(receipts, "Receipts")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Receipts");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateReceiptAttachmentByFileName(xeroTenantId, receiptID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/Receipts/{ReceiptID}/Attachments/{FileName}'
+ .replace('{' + 'ReceiptID' + '}', encodeURIComponent(String(receiptID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateReceiptAttachmentByFileName.');
+ }
+ if (receiptID === null || receiptID === undefined) {
+ throw new Error('Required parameter receiptID was null or undefined when calling updateReceiptAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling updateReceiptAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateReceiptAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateRepeatingInvoiceAttachmentByFileName(xeroTenantId, repeatingInvoiceID, fileName, body, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}'
+ .replace('{' + 'RepeatingInvoiceID' + '}', encodeURIComponent(String(repeatingInvoiceID)))
+ .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateRepeatingInvoiceAttachmentByFileName.');
+ }
+ if (repeatingInvoiceID === null || repeatingInvoiceID === undefined) {
+ throw new Error('Required parameter repeatingInvoiceID was null or undefined when calling updateRepeatingInvoiceAttachmentByFileName.');
+ }
+ if (fileName === null || fileName === undefined) {
+ throw new Error('Required parameter fileName was null or undefined when calling updateRepeatingInvoiceAttachmentByFileName.');
+ }
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateRepeatingInvoiceAttachmentByFileName.');
+ }
+ this.binaryHeaders = { 'Accept': 'application/json' };
+ Object.assign(localVarHeaderParams, this.binaryHeaders);
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(body, "string")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ }).then(() => {
+ return new Promise((resolve, reject) => {
+ const fileContents = [];
+ body.on('data', (chunk) => {
+ fileContents.push(chunk);
+ });
+ body.on('end', () => {
+ resolve(fileContents);
+ });
+ body.on('error', (err) => {
+ reject(err);
+ });
+ });
+ }).then((fileContents) => {
+ localVarRequestOptions.body = fileContents;
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "Attachments");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateTaxRate(xeroTenantId, taxRates, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TaxRates';
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateTaxRate.');
+ }
+ if (taxRates === null || taxRates === undefined) {
+ throw new Error('Required parameter taxRates was null or undefined when calling updateTaxRate.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(taxRates, "TaxRates")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TaxRates");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateTrackingCategory(xeroTenantId, trackingCategoryID, trackingCategory, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TrackingCategories/{TrackingCategoryID}'
+ .replace('{' + 'TrackingCategoryID' + '}', encodeURIComponent(String(trackingCategoryID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateTrackingCategory.');
+ }
+ if (trackingCategoryID === null || trackingCategoryID === undefined) {
+ throw new Error('Required parameter trackingCategoryID was null or undefined when calling updateTrackingCategory.');
+ }
+ if (trackingCategory === null || trackingCategory === undefined) {
+ throw new Error('Required parameter trackingCategory was null or undefined when calling updateTrackingCategory.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(trackingCategory, "TrackingCategory")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TrackingCategories");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+ async updateTrackingOptions(xeroTenantId, trackingCategoryID, trackingOptionID, trackingOption, options = { headers: {} }) {
+ const localVarPath = this.basePath + '/TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}'
+ .replace('{' + 'TrackingCategoryID' + '}', encodeURIComponent(String(trackingCategoryID)))
+ .replace('{' + 'TrackingOptionID' + '}', encodeURIComponent(String(trackingOptionID)));
+ let localVarQueryParameters = {};
+ let localVarHeaderParams = Object.assign({}, this.defaultHeaders);
+ let localVarFormParams = {};
+ if (xeroTenantId === null || xeroTenantId === undefined) {
+ throw new Error('Required parameter xeroTenantId was null or undefined when calling updateTrackingOptions.');
+ }
+ if (trackingCategoryID === null || trackingCategoryID === undefined) {
+ throw new Error('Required parameter trackingCategoryID was null or undefined when calling updateTrackingOptions.');
+ }
+ if (trackingOptionID === null || trackingOptionID === undefined) {
+ throw new Error('Required parameter trackingOptionID was null or undefined when calling updateTrackingOptions.');
+ }
+ if (trackingOption === null || trackingOption === undefined) {
+ throw new Error('Required parameter trackingOption was null or undefined when calling updateTrackingOptions.');
+ }
+ localVarHeaderParams['Xero-Tenant-Id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string");
+ Object.assign(localVarHeaderParams, options.headers);
+ let localVarUseFormData = false;
+ let localVarRequestOptions = {
+ method: 'POST',
+ qs: localVarQueryParameters,
+ headers: localVarHeaderParams,
+ uri: localVarPath,
+ useQuerystring: this._useQuerystring,
+ json: true,
+ body: models_1.ObjectSerializer.serialize(trackingOption, "TrackingOption")
+ };
+ let authenticationPromise = Promise.resolve();
+ authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions));
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
+ return authenticationPromise.then(() => {
+ if (Object.keys(localVarFormParams).length) {
+ if (localVarUseFormData) {
+ localVarRequestOptions.formData = localVarFormParams;
+ }
+ else {
+ localVarRequestOptions.form = localVarFormParams;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
+ if (error) {
+ reject(error);
+ }
+ else {
+ body = models_1.ObjectSerializer.deserialize(body, "TrackingOptions");
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
+ resolve({ response: response, body: body });
+ }
+ else {
+ reject({ response: response, body: body });
+ }
+ }
+ });
+ });
+ });
+ }
+}
+exports.AccountingApi = AccountingApi;
+//# sourceMappingURL=accountingApi.js.map
\ No newline at end of file
diff --git a/dist/gen/api/accountingApi.js.map b/dist/gen/api/accountingApi.js.map
new file mode 100644
index 000000000..a306be053
--- /dev/null
+++ b/dist/gen/api/accountingApi.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"accountingApi.js","sourceRoot":"","sources":["../../../src/gen/api/accountingApi.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/api/apis.d.ts b/dist/gen/api/apis.d.ts
new file mode 100644
index 000000000..e6c54417c
--- /dev/null
+++ b/dist/gen/api/apis.d.ts
@@ -0,0 +1,3 @@
+export * from './accountingApi';
+import { AccountingApi } from './accountingApi';
+export declare const APIS: (typeof AccountingApi)[];
diff --git a/dist/gen/api/apis.js b/dist/gen/api/apis.js
new file mode 100644
index 000000000..283a2c425
--- /dev/null
+++ b/dist/gen/api/apis.js
@@ -0,0 +1,9 @@
+"use strict";
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(require("./accountingApi"));
+const accountingApi_1 = require("./accountingApi");
+exports.APIS = [accountingApi_1.AccountingApi];
+//# sourceMappingURL=apis.js.map
\ No newline at end of file
diff --git a/dist/gen/api/apis.js.map b/dist/gen/api/apis.js.map
new file mode 100644
index 000000000..060ce3c87
--- /dev/null
+++ b/dist/gen/api/apis.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"apis.js","sourceRoot":"","sources":["../../../src/gen/api/apis.ts"],"names":[],"mappings":";;;;;AAAA,qCAAgC;AAChC,mDAAgD;AACnC,QAAA,IAAI,GAAG,CAAC,6BAAa,CAAC,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/account.d.ts b/dist/gen/model/accounting/account.d.ts
new file mode 100644
index 000000000..b5da52027
--- /dev/null
+++ b/dist/gen/model/accounting/account.d.ts
@@ -0,0 +1,73 @@
+import { AccountType } from './accountType';
+import { CurrencyCode } from './currencyCode';
+import { ValidationError } from './validationError';
+export declare class Account {
+ 'code'?: string;
+ 'name'?: string;
+ 'accountID'?: string;
+ 'type'?: AccountType;
+ 'bankAccountNumber'?: string;
+ 'status'?: Account.StatusEnum;
+ 'description'?: string;
+ 'bankAccountType'?: Account.BankAccountTypeEnum;
+ 'currencyCode'?: CurrencyCode;
+ 'taxType'?: string;
+ 'enablePaymentsToAccount'?: boolean;
+ 'showInExpenseClaims'?: boolean;
+ '_class'?: Account.ClassEnum;
+ 'systemAccount'?: Account.SystemAccountEnum;
+ 'reportingCode'?: string;
+ 'reportingCodeName'?: string;
+ 'hasAttachments'?: boolean;
+ 'updatedDateUTC'?: Date;
+ 'addToWatchlist'?: boolean;
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Account {
+ enum StatusEnum {
+ ACTIVE,
+ ARCHIVED,
+ DELETED
+ }
+ enum BankAccountTypeEnum {
+ BANK,
+ CREDITCARD,
+ PAYPAL,
+ NONE,
+ Empty
+ }
+ enum ClassEnum {
+ ASSET,
+ EQUITY,
+ EXPENSE,
+ LIABILITY,
+ REVENUE
+ }
+ enum SystemAccountEnum {
+ DEBTORS,
+ CREDITORS,
+ BANKCURRENCYGAIN,
+ GST,
+ GSTONIMPORTS,
+ HISTORICAL,
+ REALISEDCURRENCYGAIN,
+ RETAINEDEARNINGS,
+ ROUNDING,
+ TRACKINGTRANSFERS,
+ UNPAIDEXPCLM,
+ UNREALISEDCURRENCYGAIN,
+ WAGEPAYABLES,
+ Empty
+ }
+}
diff --git a/dist/gen/model/accounting/account.js b/dist/gen/model/accounting/account.js
new file mode 100644
index 000000000..a7085231b
--- /dev/null
+++ b/dist/gen/model/accounting/account.js
@@ -0,0 +1,153 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Account {
+ static getAttributeTypeMap() {
+ return Account.attributeTypeMap;
+ }
+}
+exports.Account = Account;
+Account.discriminator = undefined;
+Account.attributeTypeMap = [
+ {
+ "name": "code",
+ "baseName": "Code",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "accountID",
+ "baseName": "AccountID",
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "AccountType"
+ },
+ {
+ "name": "bankAccountNumber",
+ "baseName": "BankAccountNumber",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "Account.StatusEnum"
+ },
+ {
+ "name": "description",
+ "baseName": "Description",
+ "type": "string"
+ },
+ {
+ "name": "bankAccountType",
+ "baseName": "BankAccountType",
+ "type": "Account.BankAccountTypeEnum"
+ },
+ {
+ "name": "currencyCode",
+ "baseName": "CurrencyCode",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "taxType",
+ "baseName": "TaxType",
+ "type": "string"
+ },
+ {
+ "name": "enablePaymentsToAccount",
+ "baseName": "EnablePaymentsToAccount",
+ "type": "boolean"
+ },
+ {
+ "name": "showInExpenseClaims",
+ "baseName": "ShowInExpenseClaims",
+ "type": "boolean"
+ },
+ {
+ "name": "_class",
+ "baseName": "Class",
+ "type": "Account.ClassEnum"
+ },
+ {
+ "name": "systemAccount",
+ "baseName": "SystemAccount",
+ "type": "Account.SystemAccountEnum"
+ },
+ {
+ "name": "reportingCode",
+ "baseName": "ReportingCode",
+ "type": "string"
+ },
+ {
+ "name": "reportingCodeName",
+ "baseName": "ReportingCodeName",
+ "type": "string"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "addToWatchlist",
+ "baseName": "AddToWatchlist",
+ "type": "boolean"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+(function (Account) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["ACTIVE"] = 'ACTIVE'] = "ACTIVE";
+ StatusEnum[StatusEnum["ARCHIVED"] = 'ARCHIVED'] = "ARCHIVED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ })(StatusEnum = Account.StatusEnum || (Account.StatusEnum = {}));
+ let BankAccountTypeEnum;
+ (function (BankAccountTypeEnum) {
+ BankAccountTypeEnum[BankAccountTypeEnum["BANK"] = 'BANK'] = "BANK";
+ BankAccountTypeEnum[BankAccountTypeEnum["CREDITCARD"] = 'CREDITCARD'] = "CREDITCARD";
+ BankAccountTypeEnum[BankAccountTypeEnum["PAYPAL"] = 'PAYPAL'] = "PAYPAL";
+ BankAccountTypeEnum[BankAccountTypeEnum["NONE"] = 'NONE'] = "NONE";
+ BankAccountTypeEnum[BankAccountTypeEnum["Empty"] = ''] = "Empty";
+ })(BankAccountTypeEnum = Account.BankAccountTypeEnum || (Account.BankAccountTypeEnum = {}));
+ let ClassEnum;
+ (function (ClassEnum) {
+ ClassEnum[ClassEnum["ASSET"] = 'ASSET'] = "ASSET";
+ ClassEnum[ClassEnum["EQUITY"] = 'EQUITY'] = "EQUITY";
+ ClassEnum[ClassEnum["EXPENSE"] = 'EXPENSE'] = "EXPENSE";
+ ClassEnum[ClassEnum["LIABILITY"] = 'LIABILITY'] = "LIABILITY";
+ ClassEnum[ClassEnum["REVENUE"] = 'REVENUE'] = "REVENUE";
+ })(ClassEnum = Account.ClassEnum || (Account.ClassEnum = {}));
+ let SystemAccountEnum;
+ (function (SystemAccountEnum) {
+ SystemAccountEnum[SystemAccountEnum["DEBTORS"] = 'DEBTORS'] = "DEBTORS";
+ SystemAccountEnum[SystemAccountEnum["CREDITORS"] = 'CREDITORS'] = "CREDITORS";
+ SystemAccountEnum[SystemAccountEnum["BANKCURRENCYGAIN"] = 'BANKCURRENCYGAIN'] = "BANKCURRENCYGAIN";
+ SystemAccountEnum[SystemAccountEnum["GST"] = 'GST'] = "GST";
+ SystemAccountEnum[SystemAccountEnum["GSTONIMPORTS"] = 'GSTONIMPORTS'] = "GSTONIMPORTS";
+ SystemAccountEnum[SystemAccountEnum["HISTORICAL"] = 'HISTORICAL'] = "HISTORICAL";
+ SystemAccountEnum[SystemAccountEnum["REALISEDCURRENCYGAIN"] = 'REALISEDCURRENCYGAIN'] = "REALISEDCURRENCYGAIN";
+ SystemAccountEnum[SystemAccountEnum["RETAINEDEARNINGS"] = 'RETAINEDEARNINGS'] = "RETAINEDEARNINGS";
+ SystemAccountEnum[SystemAccountEnum["ROUNDING"] = 'ROUNDING'] = "ROUNDING";
+ SystemAccountEnum[SystemAccountEnum["TRACKINGTRANSFERS"] = 'TRACKINGTRANSFERS'] = "TRACKINGTRANSFERS";
+ SystemAccountEnum[SystemAccountEnum["UNPAIDEXPCLM"] = 'UNPAIDEXPCLM'] = "UNPAIDEXPCLM";
+ SystemAccountEnum[SystemAccountEnum["UNREALISEDCURRENCYGAIN"] = 'UNREALISEDCURRENCYGAIN'] = "UNREALISEDCURRENCYGAIN";
+ SystemAccountEnum[SystemAccountEnum["WAGEPAYABLES"] = 'WAGEPAYABLES'] = "WAGEPAYABLES";
+ SystemAccountEnum[SystemAccountEnum["Empty"] = ''] = "Empty";
+ })(SystemAccountEnum = Account.SystemAccountEnum || (Account.SystemAccountEnum = {}));
+})(Account = exports.Account || (exports.Account = {}));
+//# sourceMappingURL=account.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/account.js.map b/dist/gen/model/accounting/account.js.map
new file mode 100644
index 000000000..52eb1ea72
--- /dev/null
+++ b/dist/gen/model/accounting/account.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/account.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/accountType.d.ts b/dist/gen/model/accounting/accountType.d.ts
new file mode 100644
index 000000000..2862014d5
--- /dev/null
+++ b/dist/gen/model/accounting/accountType.d.ts
@@ -0,0 +1,24 @@
+export declare enum AccountType {
+ BANK,
+ CURRENT,
+ CURRLIAB,
+ DEPRECIATN,
+ DIRECTCOSTS,
+ EQUITY,
+ EXPENSE,
+ FIXED,
+ INVENTORY,
+ LIABILITY,
+ NONCURRENT,
+ OTHERINCOME,
+ OVERHEADS,
+ PREPAYMENT,
+ REVENUE,
+ SALES,
+ TERMLIAB,
+ PAYGLIABILITY,
+ PAYG,
+ SUPERANNUATIONEXPENSE,
+ SUPERANNUATIONLIABILITY,
+ WAGESEXPENSE
+}
diff --git a/dist/gen/model/accounting/accountType.js b/dist/gen/model/accounting/accountType.js
new file mode 100644
index 000000000..17ea73f23
--- /dev/null
+++ b/dist/gen/model/accounting/accountType.js
@@ -0,0 +1,28 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var AccountType;
+(function (AccountType) {
+ AccountType[AccountType["BANK"] = 'BANK'] = "BANK";
+ AccountType[AccountType["CURRENT"] = 'CURRENT'] = "CURRENT";
+ AccountType[AccountType["CURRLIAB"] = 'CURRLIAB'] = "CURRLIAB";
+ AccountType[AccountType["DEPRECIATN"] = 'DEPRECIATN'] = "DEPRECIATN";
+ AccountType[AccountType["DIRECTCOSTS"] = 'DIRECTCOSTS'] = "DIRECTCOSTS";
+ AccountType[AccountType["EQUITY"] = 'EQUITY'] = "EQUITY";
+ AccountType[AccountType["EXPENSE"] = 'EXPENSE'] = "EXPENSE";
+ AccountType[AccountType["FIXED"] = 'FIXED'] = "FIXED";
+ AccountType[AccountType["INVENTORY"] = 'INVENTORY'] = "INVENTORY";
+ AccountType[AccountType["LIABILITY"] = 'LIABILITY'] = "LIABILITY";
+ AccountType[AccountType["NONCURRENT"] = 'NONCURRENT'] = "NONCURRENT";
+ AccountType[AccountType["OTHERINCOME"] = 'OTHERINCOME'] = "OTHERINCOME";
+ AccountType[AccountType["OVERHEADS"] = 'OVERHEADS'] = "OVERHEADS";
+ AccountType[AccountType["PREPAYMENT"] = 'PREPAYMENT'] = "PREPAYMENT";
+ AccountType[AccountType["REVENUE"] = 'REVENUE'] = "REVENUE";
+ AccountType[AccountType["SALES"] = 'SALES'] = "SALES";
+ AccountType[AccountType["TERMLIAB"] = 'TERMLIAB'] = "TERMLIAB";
+ AccountType[AccountType["PAYGLIABILITY"] = 'PAYGLIABILITY'] = "PAYGLIABILITY";
+ AccountType[AccountType["PAYG"] = 'PAYG'] = "PAYG";
+ AccountType[AccountType["SUPERANNUATIONEXPENSE"] = 'SUPERANNUATIONEXPENSE'] = "SUPERANNUATIONEXPENSE";
+ AccountType[AccountType["SUPERANNUATIONLIABILITY"] = 'SUPERANNUATIONLIABILITY'] = "SUPERANNUATIONLIABILITY";
+ AccountType[AccountType["WAGESEXPENSE"] = 'WAGESEXPENSE'] = "WAGESEXPENSE";
+})(AccountType = exports.AccountType || (exports.AccountType = {}));
+//# sourceMappingURL=accountType.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/accountType.js.map b/dist/gen/model/accounting/accountType.js.map
new file mode 100644
index 000000000..f476088ae
--- /dev/null
+++ b/dist/gen/model/accounting/accountType.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"accountType.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/accountType.ts"],"names":[],"mappings":";;AAgBA,IAAY,WAuBX;AAvBD,WAAY,WAAW;IACnB,kCAAa,MAAM,UAAA,CAAA;IACnB,qCAAgB,SAAS,aAAA,CAAA;IACzB,sCAAiB,UAAU,cAAA,CAAA;IAC3B,wCAAmB,YAAY,gBAAA,CAAA;IAC/B,yCAAoB,aAAa,iBAAA,CAAA;IACjC,oCAAe,QAAQ,YAAA,CAAA;IACvB,qCAAgB,SAAS,aAAA,CAAA;IACzB,mCAAc,OAAO,WAAA,CAAA;IACrB,uCAAkB,WAAW,eAAA,CAAA;IAC7B,uCAAkB,WAAW,eAAA,CAAA;IAC7B,wCAAmB,YAAY,gBAAA,CAAA;IAC/B,yCAAoB,aAAa,iBAAA,CAAA;IACjC,uCAAkB,WAAW,eAAA,CAAA;IAC7B,wCAAmB,YAAY,gBAAA,CAAA;IAC/B,qCAAgB,SAAS,aAAA,CAAA;IACzB,mCAAc,OAAO,WAAA,CAAA;IACrB,sCAAiB,UAAU,cAAA,CAAA;IAC3B,2CAAsB,eAAe,mBAAA,CAAA;IACrC,kCAAa,MAAM,UAAA,CAAA;IACnB,mDAA8B,uBAAuB,2BAAA,CAAA;IACrD,qDAAgC,yBAAyB,6BAAA,CAAA;IACzD,0CAAqB,cAAc,kBAAA,CAAA;AACvC,CAAC,EAvBW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAuBtB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/accounts.d.ts b/dist/gen/model/accounting/accounts.d.ts
new file mode 100644
index 000000000..d21599989
--- /dev/null
+++ b/dist/gen/model/accounting/accounts.d.ts
@@ -0,0 +1,15 @@
+import { Account } from './account';
+export declare class Accounts {
+ 'accounts'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/accounts.js b/dist/gen/model/accounting/accounts.js
new file mode 100644
index 000000000..80329595c
--- /dev/null
+++ b/dist/gen/model/accounting/accounts.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Accounts {
+ static getAttributeTypeMap() {
+ return Accounts.attributeTypeMap;
+ }
+}
+exports.Accounts = Accounts;
+Accounts.discriminator = undefined;
+Accounts.attributeTypeMap = [
+ {
+ "name": "accounts",
+ "baseName": "Accounts",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=accounts.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/accounts.js.map b/dist/gen/model/accounting/accounts.js.map
new file mode 100644
index 000000000..a16bf621b
--- /dev/null
+++ b/dist/gen/model/accounting/accounts.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/accounts.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IAYjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAdL,4BAeC;AAZU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/accountsPayable.d.ts b/dist/gen/model/accounting/accountsPayable.d.ts
new file mode 100644
index 000000000..23705abcf
--- /dev/null
+++ b/dist/gen/model/accounting/accountsPayable.d.ts
@@ -0,0 +1,15 @@
+export declare class AccountsPayable {
+ 'outstanding'?: number;
+ 'overdue'?: number;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/accountsPayable.js b/dist/gen/model/accounting/accountsPayable.js
new file mode 100644
index 000000000..930562c63
--- /dev/null
+++ b/dist/gen/model/accounting/accountsPayable.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class AccountsPayable {
+ static getAttributeTypeMap() {
+ return AccountsPayable.attributeTypeMap;
+ }
+}
+exports.AccountsPayable = AccountsPayable;
+AccountsPayable.discriminator = undefined;
+AccountsPayable.attributeTypeMap = [
+ {
+ "name": "outstanding",
+ "baseName": "Outstanding",
+ "type": "number"
+ },
+ {
+ "name": "overdue",
+ "baseName": "Overdue",
+ "type": "number"
+ }
+];
+//# sourceMappingURL=accountsPayable.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/accountsPayable.js.map b/dist/gen/model/accounting/accountsPayable.js.map
new file mode 100644
index 000000000..6b8d8c6f9
--- /dev/null
+++ b/dist/gen/model/accounting/accountsPayable.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"accountsPayable.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/accountsPayable.ts"],"names":[],"mappings":";;AAaA,MAAa,eAAe;IAkBxB,MAAM,CAAC,mBAAmB;QACtB,OAAO,eAAe,CAAC,gBAAgB,CAAC;IAC5C,CAAC;;AApBL,0CAqBC;AAjBU,6BAAa,GAAuB,SAAS,CAAC;AAE9C,gCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/accountsReceivable.d.ts b/dist/gen/model/accounting/accountsReceivable.d.ts
new file mode 100644
index 000000000..58b62bf48
--- /dev/null
+++ b/dist/gen/model/accounting/accountsReceivable.d.ts
@@ -0,0 +1,15 @@
+export declare class AccountsReceivable {
+ 'outstanding'?: number;
+ 'overdue'?: number;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/accountsReceivable.js b/dist/gen/model/accounting/accountsReceivable.js
new file mode 100644
index 000000000..883a60b8f
--- /dev/null
+++ b/dist/gen/model/accounting/accountsReceivable.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class AccountsReceivable {
+ static getAttributeTypeMap() {
+ return AccountsReceivable.attributeTypeMap;
+ }
+}
+exports.AccountsReceivable = AccountsReceivable;
+AccountsReceivable.discriminator = undefined;
+AccountsReceivable.attributeTypeMap = [
+ {
+ "name": "outstanding",
+ "baseName": "Outstanding",
+ "type": "number"
+ },
+ {
+ "name": "overdue",
+ "baseName": "Overdue",
+ "type": "number"
+ }
+];
+//# sourceMappingURL=accountsReceivable.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/accountsReceivable.js.map b/dist/gen/model/accounting/accountsReceivable.js.map
new file mode 100644
index 000000000..3d1cc518b
--- /dev/null
+++ b/dist/gen/model/accounting/accountsReceivable.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"accountsReceivable.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/accountsReceivable.ts"],"names":[],"mappings":";;AAaA,MAAa,kBAAkB;IAkB3B,MAAM,CAAC,mBAAmB;QACtB,OAAO,kBAAkB,CAAC,gBAAgB,CAAC;IAC/C,CAAC;;AApBL,gDAqBC;AAjBU,gCAAa,GAAuB,SAAS,CAAC;AAE9C,mCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/address.d.ts b/dist/gen/model/accounting/address.d.ts
new file mode 100644
index 000000000..cd3150727
--- /dev/null
+++ b/dist/gen/model/accounting/address.d.ts
@@ -0,0 +1,30 @@
+export declare class Address {
+ 'addressType'?: Address.AddressTypeEnum;
+ 'addressLine1'?: string;
+ 'addressLine2'?: string;
+ 'addressLine3'?: string;
+ 'addressLine4'?: string;
+ 'city'?: string;
+ 'region'?: string;
+ 'postalCode'?: string;
+ 'country'?: string;
+ 'attentionTo'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Address {
+ enum AddressTypeEnum {
+ POBOX,
+ STREET,
+ DELIVERY
+ }
+}
diff --git a/dist/gen/model/accounting/address.js b/dist/gen/model/accounting/address.js
new file mode 100644
index 000000000..f30e44b2f
--- /dev/null
+++ b/dist/gen/model/accounting/address.js
@@ -0,0 +1,70 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Address {
+ static getAttributeTypeMap() {
+ return Address.attributeTypeMap;
+ }
+}
+exports.Address = Address;
+Address.discriminator = undefined;
+Address.attributeTypeMap = [
+ {
+ "name": "addressType",
+ "baseName": "AddressType",
+ "type": "Address.AddressTypeEnum"
+ },
+ {
+ "name": "addressLine1",
+ "baseName": "AddressLine1",
+ "type": "string"
+ },
+ {
+ "name": "addressLine2",
+ "baseName": "AddressLine2",
+ "type": "string"
+ },
+ {
+ "name": "addressLine3",
+ "baseName": "AddressLine3",
+ "type": "string"
+ },
+ {
+ "name": "addressLine4",
+ "baseName": "AddressLine4",
+ "type": "string"
+ },
+ {
+ "name": "city",
+ "baseName": "City",
+ "type": "string"
+ },
+ {
+ "name": "region",
+ "baseName": "Region",
+ "type": "string"
+ },
+ {
+ "name": "postalCode",
+ "baseName": "PostalCode",
+ "type": "string"
+ },
+ {
+ "name": "country",
+ "baseName": "Country",
+ "type": "string"
+ },
+ {
+ "name": "attentionTo",
+ "baseName": "AttentionTo",
+ "type": "string"
+ }
+];
+(function (Address) {
+ let AddressTypeEnum;
+ (function (AddressTypeEnum) {
+ AddressTypeEnum[AddressTypeEnum["POBOX"] = 'POBOX'] = "POBOX";
+ AddressTypeEnum[AddressTypeEnum["STREET"] = 'STREET'] = "STREET";
+ AddressTypeEnum[AddressTypeEnum["DELIVERY"] = 'DELIVERY'] = "DELIVERY";
+ })(AddressTypeEnum = Address.AddressTypeEnum || (Address.AddressTypeEnum = {}));
+})(Address = exports.Address || (exports.Address = {}));
+//# sourceMappingURL=address.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/address.js.map b/dist/gen/model/accounting/address.js.map
new file mode 100644
index 000000000..bc24a1f5b
--- /dev/null
+++ b/dist/gen/model/accounting/address.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/address.ts"],"names":[],"mappings":";;AAaA,MAAa,OAAO;IAgGhB,MAAM,CAAC,mBAAmB;QACtB,OAAO,OAAO,CAAC,gBAAgB,CAAC;IACpC,CAAC;;AAlGL,0BAmGC;AAzDU,qBAAa,GAAuB,SAAS,CAAC;AAE9C,wBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,yBAAyB;KACpC;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC;AAOf,WAAiB,OAAO;IACpB,IAAY,eAIX;IAJD,WAAY,eAAe;QACvB,2CAAc,OAAO,WAAA,CAAA;QACrB,4CAAe,QAAQ,YAAA,CAAA;QACvB,8CAAiB,UAAU,cAAA,CAAA;IAC/B,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AACL,CAAC,EANgB,OAAO,GAAP,eAAO,KAAP,eAAO,QAMvB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/allocation.d.ts b/dist/gen/model/accounting/allocation.d.ts
new file mode 100644
index 000000000..9a6deab5d
--- /dev/null
+++ b/dist/gen/model/accounting/allocation.d.ts
@@ -0,0 +1,17 @@
+import { Invoice } from './invoice';
+export declare class Allocation {
+ 'invoice': Invoice;
+ 'amount': number;
+ 'date': string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/allocation.js b/dist/gen/model/accounting/allocation.js
new file mode 100644
index 000000000..ea86e57ac
--- /dev/null
+++ b/dist/gen/model/accounting/allocation.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Allocation {
+ static getAttributeTypeMap() {
+ return Allocation.attributeTypeMap;
+ }
+}
+exports.Allocation = Allocation;
+Allocation.discriminator = undefined;
+Allocation.attributeTypeMap = [
+ {
+ "name": "invoice",
+ "baseName": "Invoice",
+ "type": "Invoice"
+ },
+ {
+ "name": "amount",
+ "baseName": "Amount",
+ "type": "number"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=allocation.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/allocation.js.map b/dist/gen/model/accounting/allocation.js.map
new file mode 100644
index 000000000..853bf7282
--- /dev/null
+++ b/dist/gen/model/accounting/allocation.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"allocation.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/allocation.ts"],"names":[],"mappings":";;AAcA,MAAa,UAAU;IA8BnB,MAAM,CAAC,mBAAmB;QACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;;AAhCL,gCAiCC;AAtBU,wBAAa,GAAuB,SAAS,CAAC;AAE9C,2BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/allocations.d.ts b/dist/gen/model/accounting/allocations.d.ts
new file mode 100644
index 000000000..8bfd311a8
--- /dev/null
+++ b/dist/gen/model/accounting/allocations.d.ts
@@ -0,0 +1,15 @@
+import { Allocation } from './allocation';
+export declare class Allocations {
+ 'allocations'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/allocations.js b/dist/gen/model/accounting/allocations.js
new file mode 100644
index 000000000..ffe436b54
--- /dev/null
+++ b/dist/gen/model/accounting/allocations.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Allocations {
+ static getAttributeTypeMap() {
+ return Allocations.attributeTypeMap;
+ }
+}
+exports.Allocations = Allocations;
+Allocations.discriminator = undefined;
+Allocations.attributeTypeMap = [
+ {
+ "name": "allocations",
+ "baseName": "Allocations",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=allocations.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/allocations.js.map b/dist/gen/model/accounting/allocations.js.map
new file mode 100644
index 000000000..88d2790e3
--- /dev/null
+++ b/dist/gen/model/accounting/allocations.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"allocations.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/allocations.ts"],"names":[],"mappings":";;AAcA,MAAa,WAAW;IAYpB,MAAM,CAAC,mBAAmB;QACtB,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACxC,CAAC;;AAdL,kCAeC;AAZU,yBAAa,GAAuB,SAAS,CAAC;AAE9C,4BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/attachment.d.ts b/dist/gen/model/accounting/attachment.d.ts
new file mode 100644
index 000000000..7ba0ed106
--- /dev/null
+++ b/dist/gen/model/accounting/attachment.d.ts
@@ -0,0 +1,19 @@
+export declare class Attachment {
+ 'attachmentID'?: string;
+ 'fileName'?: string;
+ 'url'?: string;
+ 'mimeType'?: string;
+ 'contentLength'?: number;
+ 'includeOnline'?: boolean;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/attachment.js b/dist/gen/model/accounting/attachment.js
new file mode 100644
index 000000000..853517498
--- /dev/null
+++ b/dist/gen/model/accounting/attachment.js
@@ -0,0 +1,42 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Attachment {
+ static getAttributeTypeMap() {
+ return Attachment.attributeTypeMap;
+ }
+}
+exports.Attachment = Attachment;
+Attachment.discriminator = undefined;
+Attachment.attributeTypeMap = [
+ {
+ "name": "attachmentID",
+ "baseName": "AttachmentID",
+ "type": "string"
+ },
+ {
+ "name": "fileName",
+ "baseName": "FileName",
+ "type": "string"
+ },
+ {
+ "name": "url",
+ "baseName": "Url",
+ "type": "string"
+ },
+ {
+ "name": "mimeType",
+ "baseName": "MimeType",
+ "type": "string"
+ },
+ {
+ "name": "contentLength",
+ "baseName": "ContentLength",
+ "type": "number"
+ },
+ {
+ "name": "includeOnline",
+ "baseName": "IncludeOnline",
+ "type": "boolean"
+ }
+];
+//# sourceMappingURL=attachment.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/attachment.js.map b/dist/gen/model/accounting/attachment.js.map
new file mode 100644
index 000000000..653c69c6c
--- /dev/null
+++ b/dist/gen/model/accounting/attachment.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/attachment.ts"],"names":[],"mappings":";;AAaA,MAAa,UAAU;IA4DnB,MAAM,CAAC,mBAAmB;QACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;;AA9DL,gCA+DC;AArCU,wBAAa,GAAuB,SAAS,CAAC;AAE9C,2BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,SAAS;KACpB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/attachments.d.ts b/dist/gen/model/accounting/attachments.d.ts
new file mode 100644
index 000000000..79c54f8d6
--- /dev/null
+++ b/dist/gen/model/accounting/attachments.d.ts
@@ -0,0 +1,15 @@
+import { Attachment } from './attachment';
+export declare class Attachments {
+ 'attachments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/attachments.js b/dist/gen/model/accounting/attachments.js
new file mode 100644
index 000000000..4e608469e
--- /dev/null
+++ b/dist/gen/model/accounting/attachments.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Attachments {
+ static getAttributeTypeMap() {
+ return Attachments.attributeTypeMap;
+ }
+}
+exports.Attachments = Attachments;
+Attachments.discriminator = undefined;
+Attachments.attributeTypeMap = [
+ {
+ "name": "attachments",
+ "baseName": "Attachments",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=attachments.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/attachments.js.map b/dist/gen/model/accounting/attachments.js.map
new file mode 100644
index 000000000..90c5ea0fa
--- /dev/null
+++ b/dist/gen/model/accounting/attachments.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/attachments.ts"],"names":[],"mappings":";;AAcA,MAAa,WAAW;IAYpB,MAAM,CAAC,mBAAmB;QACtB,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACxC,CAAC;;AAdL,kCAeC;AAZU,yBAAa,GAAuB,SAAS,CAAC;AAE9C,4BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/balances.d.ts b/dist/gen/model/accounting/balances.d.ts
new file mode 100644
index 000000000..5510c2851
--- /dev/null
+++ b/dist/gen/model/accounting/balances.d.ts
@@ -0,0 +1,17 @@
+import { AccountsPayable } from './accountsPayable';
+import { AccountsReceivable } from './accountsReceivable';
+export declare class Balances {
+ 'accountsReceivable'?: AccountsReceivable;
+ 'accountsPayable'?: AccountsPayable;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/balances.js b/dist/gen/model/accounting/balances.js
new file mode 100644
index 000000000..045dca646
--- /dev/null
+++ b/dist/gen/model/accounting/balances.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Balances {
+ static getAttributeTypeMap() {
+ return Balances.attributeTypeMap;
+ }
+}
+exports.Balances = Balances;
+Balances.discriminator = undefined;
+Balances.attributeTypeMap = [
+ {
+ "name": "accountsReceivable",
+ "baseName": "AccountsReceivable",
+ "type": "AccountsReceivable"
+ },
+ {
+ "name": "accountsPayable",
+ "baseName": "AccountsPayable",
+ "type": "AccountsPayable"
+ }
+];
+//# sourceMappingURL=balances.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/balances.js.map b/dist/gen/model/accounting/balances.js.map
new file mode 100644
index 000000000..09fe501a6
--- /dev/null
+++ b/dist/gen/model/accounting/balances.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/balances.ts"],"names":[],"mappings":";;AAkBA,MAAa,QAAQ;IAkBjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AApBL,4BAqBC;AAjBU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,oBAAoB;KAC/B;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,iBAAiB;KAC5B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bankTransaction.d.ts b/dist/gen/model/accounting/bankTransaction.d.ts
new file mode 100644
index 000000000..e88aa0616
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransaction.d.ts
@@ -0,0 +1,58 @@
+import { Account } from './account';
+import { Contact } from './contact';
+import { CurrencyCode } from './currencyCode';
+import { LineAmountTypes } from './lineAmountTypes';
+import { LineItem } from './lineItem';
+import { ValidationError } from './validationError';
+export declare class BankTransaction {
+ 'type': BankTransaction.TypeEnum;
+ 'contact': Contact;
+ 'lineItems': Array;
+ 'bankAccount': Account;
+ 'isReconciled'?: boolean;
+ 'date'?: string;
+ 'reference'?: string;
+ 'currencyCode'?: CurrencyCode;
+ 'currencyRate'?: number;
+ 'url'?: string;
+ 'status'?: BankTransaction.StatusEnum;
+ 'lineAmountTypes'?: LineAmountTypes;
+ 'subTotal'?: number;
+ 'totalTax'?: number;
+ 'total'?: number;
+ 'bankTransactionID'?: string;
+ 'prepaymentID'?: string;
+ 'overpaymentID'?: string;
+ 'updatedDateUTC'?: Date;
+ 'hasAttachments'?: boolean;
+ 'statusAttributeString'?: string;
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace BankTransaction {
+ enum TypeEnum {
+ RECEIVE,
+ RECEIVEOVERPAYMENT,
+ RECEIVEPREPAYMENT,
+ SPEND,
+ SPENDOVERPAYMENT,
+ SPENDPREPAYMENT,
+ RECEIVETRANSFER,
+ SPENDTRANSFER
+ }
+ enum StatusEnum {
+ AUTHORISED,
+ DELETED,
+ VOIDED
+ }
+}
diff --git a/dist/gen/model/accounting/bankTransaction.js b/dist/gen/model/accounting/bankTransaction.js
new file mode 100644
index 000000000..1b86e293b
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransaction.js
@@ -0,0 +1,141 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BankTransaction {
+ static getAttributeTypeMap() {
+ return BankTransaction.attributeTypeMap;
+ }
+}
+exports.BankTransaction = BankTransaction;
+BankTransaction.discriminator = undefined;
+BankTransaction.attributeTypeMap = [
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "BankTransaction.TypeEnum"
+ },
+ {
+ "name": "contact",
+ "baseName": "Contact",
+ "type": "Contact"
+ },
+ {
+ "name": "lineItems",
+ "baseName": "LineItems",
+ "type": "Array"
+ },
+ {
+ "name": "bankAccount",
+ "baseName": "BankAccount",
+ "type": "Account"
+ },
+ {
+ "name": "isReconciled",
+ "baseName": "IsReconciled",
+ "type": "boolean"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "currencyCode",
+ "baseName": "CurrencyCode",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "currencyRate",
+ "baseName": "CurrencyRate",
+ "type": "number"
+ },
+ {
+ "name": "url",
+ "baseName": "Url",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "BankTransaction.StatusEnum"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ },
+ {
+ "name": "subTotal",
+ "baseName": "SubTotal",
+ "type": "number"
+ },
+ {
+ "name": "totalTax",
+ "baseName": "TotalTax",
+ "type": "number"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "bankTransactionID",
+ "baseName": "BankTransactionID",
+ "type": "string"
+ },
+ {
+ "name": "prepaymentID",
+ "baseName": "PrepaymentID",
+ "type": "string"
+ },
+ {
+ "name": "overpaymentID",
+ "baseName": "OverpaymentID",
+ "type": "string"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "statusAttributeString",
+ "baseName": "StatusAttributeString",
+ "type": "string"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+(function (BankTransaction) {
+ let TypeEnum;
+ (function (TypeEnum) {
+ TypeEnum[TypeEnum["RECEIVE"] = 'RECEIVE'] = "RECEIVE";
+ TypeEnum[TypeEnum["RECEIVEOVERPAYMENT"] = 'RECEIVE-OVERPAYMENT'] = "RECEIVEOVERPAYMENT";
+ TypeEnum[TypeEnum["RECEIVEPREPAYMENT"] = 'RECEIVE-PREPAYMENT'] = "RECEIVEPREPAYMENT";
+ TypeEnum[TypeEnum["SPEND"] = 'SPEND'] = "SPEND";
+ TypeEnum[TypeEnum["SPENDOVERPAYMENT"] = 'SPEND-OVERPAYMENT'] = "SPENDOVERPAYMENT";
+ TypeEnum[TypeEnum["SPENDPREPAYMENT"] = 'SPEND-PREPAYMENT'] = "SPENDPREPAYMENT";
+ TypeEnum[TypeEnum["RECEIVETRANSFER"] = 'RECEIVE-TRANSFER'] = "RECEIVETRANSFER";
+ TypeEnum[TypeEnum["SPENDTRANSFER"] = 'SPEND-TRANSFER'] = "SPENDTRANSFER";
+ })(TypeEnum = BankTransaction.TypeEnum || (BankTransaction.TypeEnum = {}));
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ StatusEnum[StatusEnum["VOIDED"] = 'VOIDED'] = "VOIDED";
+ })(StatusEnum = BankTransaction.StatusEnum || (BankTransaction.StatusEnum = {}));
+})(BankTransaction = exports.BankTransaction || (exports.BankTransaction = {}));
+//# sourceMappingURL=bankTransaction.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bankTransaction.js.map b/dist/gen/model/accounting/bankTransaction.js.map
new file mode 100644
index 000000000..cd2c9951c
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransaction.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bankTransaction.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/bankTransaction.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bankTransactions.d.ts b/dist/gen/model/accounting/bankTransactions.d.ts
new file mode 100644
index 000000000..21d8ae26b
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransactions.d.ts
@@ -0,0 +1,15 @@
+import { BankTransaction } from './bankTransaction';
+export declare class BankTransactions {
+ 'bankTransactions'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/bankTransactions.js b/dist/gen/model/accounting/bankTransactions.js
new file mode 100644
index 000000000..9d43c56a4
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransactions.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BankTransactions {
+ static getAttributeTypeMap() {
+ return BankTransactions.attributeTypeMap;
+ }
+}
+exports.BankTransactions = BankTransactions;
+BankTransactions.discriminator = undefined;
+BankTransactions.attributeTypeMap = [
+ {
+ "name": "bankTransactions",
+ "baseName": "BankTransactions",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=bankTransactions.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bankTransactions.js.map b/dist/gen/model/accounting/bankTransactions.js.map
new file mode 100644
index 000000000..6399da51c
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransactions.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bankTransactions.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/bankTransactions.ts"],"names":[],"mappings":";;AAcA,MAAa,gBAAgB;IAYzB,MAAM,CAAC,mBAAmB;QACtB,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;IAC7C,CAAC;;AAdL,4CAeC;AAZU,8BAAa,GAAuB,SAAS,CAAC;AAE9C,iCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,wBAAwB;KACnC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bankTransfer.d.ts b/dist/gen/model/accounting/bankTransfer.d.ts
new file mode 100644
index 000000000..0b4f2c946
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransfer.d.ts
@@ -0,0 +1,26 @@
+import { Account } from './account';
+import { ValidationError } from './validationError';
+export declare class BankTransfer {
+ 'fromBankAccount': Account;
+ 'toBankAccount': Account;
+ 'amount': string;
+ 'date'?: string;
+ 'bankTransferID'?: string;
+ 'currencyRate'?: number;
+ 'fromBankTransactionID'?: string;
+ 'toBankTransactionID'?: string;
+ 'hasAttachments'?: boolean;
+ 'createdDateUTC'?: Date;
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/bankTransfer.js b/dist/gen/model/accounting/bankTransfer.js
new file mode 100644
index 000000000..3fda82abc
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransfer.js
@@ -0,0 +1,67 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BankTransfer {
+ static getAttributeTypeMap() {
+ return BankTransfer.attributeTypeMap;
+ }
+}
+exports.BankTransfer = BankTransfer;
+BankTransfer.discriminator = undefined;
+BankTransfer.attributeTypeMap = [
+ {
+ "name": "fromBankAccount",
+ "baseName": "FromBankAccount",
+ "type": "Account"
+ },
+ {
+ "name": "toBankAccount",
+ "baseName": "ToBankAccount",
+ "type": "Account"
+ },
+ {
+ "name": "amount",
+ "baseName": "Amount",
+ "type": "string"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "bankTransferID",
+ "baseName": "BankTransferID",
+ "type": "string"
+ },
+ {
+ "name": "currencyRate",
+ "baseName": "CurrencyRate",
+ "type": "number"
+ },
+ {
+ "name": "fromBankTransactionID",
+ "baseName": "FromBankTransactionID",
+ "type": "string"
+ },
+ {
+ "name": "toBankTransactionID",
+ "baseName": "ToBankTransactionID",
+ "type": "string"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "createdDateUTC",
+ "baseName": "CreatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=bankTransfer.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bankTransfer.js.map b/dist/gen/model/accounting/bankTransfer.js.map
new file mode 100644
index 000000000..c96f07289
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransfer.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bankTransfer.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/bankTransfer.ts"],"names":[],"mappings":";;AAeA,MAAa,YAAY;IAmGrB,MAAM,CAAC,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACzC,CAAC;;AArGL,oCAsGC;AA9DU,0BAAa,GAAuB,SAAS,CAAC;AAE9C,6BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,uBAAuB;QAC/B,UAAU,EAAE,uBAAuB;QACnC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,qBAAqB;QAC7B,UAAU,EAAE,qBAAqB;QACjC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,wBAAwB;KACnC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bankTransfers.d.ts b/dist/gen/model/accounting/bankTransfers.d.ts
new file mode 100644
index 000000000..7aac0ef2f
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransfers.d.ts
@@ -0,0 +1,15 @@
+import { BankTransfer } from './bankTransfer';
+export declare class BankTransfers {
+ 'bankTransfers'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/bankTransfers.js b/dist/gen/model/accounting/bankTransfers.js
new file mode 100644
index 000000000..f9d9879ce
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransfers.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BankTransfers {
+ static getAttributeTypeMap() {
+ return BankTransfers.attributeTypeMap;
+ }
+}
+exports.BankTransfers = BankTransfers;
+BankTransfers.discriminator = undefined;
+BankTransfers.attributeTypeMap = [
+ {
+ "name": "bankTransfers",
+ "baseName": "BankTransfers",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=bankTransfers.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bankTransfers.js.map b/dist/gen/model/accounting/bankTransfers.js.map
new file mode 100644
index 000000000..fabbb47ba
--- /dev/null
+++ b/dist/gen/model/accounting/bankTransfers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bankTransfers.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/bankTransfers.ts"],"names":[],"mappings":";;AAcA,MAAa,aAAa;IAYtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AAdL,sCAeC;AAZU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,qBAAqB;KAChC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/batchPayment.d.ts b/dist/gen/model/accounting/batchPayment.d.ts
new file mode 100644
index 000000000..0d1f7118a
--- /dev/null
+++ b/dist/gen/model/accounting/batchPayment.d.ts
@@ -0,0 +1,37 @@
+import { Account } from './account';
+import { Payment } from './payment';
+export declare class BatchPayment {
+ 'account'?: Account;
+ 'reference'?: string;
+ 'particulars'?: string;
+ 'code'?: string;
+ 'details'?: string;
+ 'narrative'?: string;
+ 'batchPaymentID'?: string;
+ 'dateString'?: string;
+ 'date'?: string;
+ 'amount'?: number;
+ 'payments'?: Array;
+ 'type'?: BatchPayment.TypeEnum;
+ 'status'?: string;
+ 'totalAmount'?: string;
+ 'updatedDateUTC'?: Date;
+ 'isReconciled'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace BatchPayment {
+ enum TypeEnum {
+ PAYBATCH,
+ RECBATCH
+ }
+}
diff --git a/dist/gen/model/accounting/batchPayment.js b/dist/gen/model/accounting/batchPayment.js
new file mode 100644
index 000000000..255800cd2
--- /dev/null
+++ b/dist/gen/model/accounting/batchPayment.js
@@ -0,0 +1,99 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BatchPayment {
+ static getAttributeTypeMap() {
+ return BatchPayment.attributeTypeMap;
+ }
+}
+exports.BatchPayment = BatchPayment;
+BatchPayment.discriminator = undefined;
+BatchPayment.attributeTypeMap = [
+ {
+ "name": "account",
+ "baseName": "Account",
+ "type": "Account"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "particulars",
+ "baseName": "Particulars",
+ "type": "string"
+ },
+ {
+ "name": "code",
+ "baseName": "Code",
+ "type": "string"
+ },
+ {
+ "name": "details",
+ "baseName": "Details",
+ "type": "string"
+ },
+ {
+ "name": "narrative",
+ "baseName": "Narrative",
+ "type": "string"
+ },
+ {
+ "name": "batchPaymentID",
+ "baseName": "BatchPaymentID",
+ "type": "string"
+ },
+ {
+ "name": "dateString",
+ "baseName": "DateString",
+ "type": "string"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "amount",
+ "baseName": "Amount",
+ "type": "number"
+ },
+ {
+ "name": "payments",
+ "baseName": "Payments",
+ "type": "Array"
+ },
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "BatchPayment.TypeEnum"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "string"
+ },
+ {
+ "name": "totalAmount",
+ "baseName": "TotalAmount",
+ "type": "string"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "isReconciled",
+ "baseName": "IsReconciled",
+ "type": "string"
+ }
+];
+(function (BatchPayment) {
+ let TypeEnum;
+ (function (TypeEnum) {
+ TypeEnum[TypeEnum["PAYBATCH"] = 'PAYBATCH'] = "PAYBATCH";
+ TypeEnum[TypeEnum["RECBATCH"] = 'RECBATCH'] = "RECBATCH";
+ })(TypeEnum = BatchPayment.TypeEnum || (BatchPayment.TypeEnum = {}));
+})(BatchPayment = exports.BatchPayment || (exports.BatchPayment = {}));
+//# sourceMappingURL=batchPayment.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/batchPayment.js.map b/dist/gen/model/accounting/batchPayment.js.map
new file mode 100644
index 000000000..e535a1f55
--- /dev/null
+++ b/dist/gen/model/accounting/batchPayment.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"batchPayment.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/batchPayment.ts"],"names":[],"mappings":";;AAeA,MAAa,YAAY;IAgJrB,MAAM,CAAC,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACzC,CAAC;;AAlJL,oCAmJC;AAvFU,0BAAa,GAAuB,SAAS,CAAC;AAE9C,6BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,uBAAuB;KAClC;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC;AAOf,WAAiB,YAAY;IACzB,IAAY,QAGX;IAHD,WAAY,QAAQ;QAChB,gCAAiB,UAAU,cAAA,CAAA;QAC3B,gCAAiB,UAAU,cAAA,CAAA;IAC/B,CAAC,EAHW,QAAQ,GAAR,qBAAQ,KAAR,qBAAQ,QAGnB;AACL,CAAC,EALgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAK5B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/batchPaymentDetails.d.ts b/dist/gen/model/accounting/batchPaymentDetails.d.ts
new file mode 100644
index 000000000..56ad896de
--- /dev/null
+++ b/dist/gen/model/accounting/batchPaymentDetails.d.ts
@@ -0,0 +1,18 @@
+export declare class BatchPaymentDetails {
+ 'bankAccountNumber'?: string;
+ 'bankAccountName'?: string;
+ 'details'?: string;
+ 'code'?: string;
+ 'reference'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/batchPaymentDetails.js b/dist/gen/model/accounting/batchPaymentDetails.js
new file mode 100644
index 000000000..27f54e907
--- /dev/null
+++ b/dist/gen/model/accounting/batchPaymentDetails.js
@@ -0,0 +1,37 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BatchPaymentDetails {
+ static getAttributeTypeMap() {
+ return BatchPaymentDetails.attributeTypeMap;
+ }
+}
+exports.BatchPaymentDetails = BatchPaymentDetails;
+BatchPaymentDetails.discriminator = undefined;
+BatchPaymentDetails.attributeTypeMap = [
+ {
+ "name": "bankAccountNumber",
+ "baseName": "BankAccountNumber",
+ "type": "string"
+ },
+ {
+ "name": "bankAccountName",
+ "baseName": "BankAccountName",
+ "type": "string"
+ },
+ {
+ "name": "details",
+ "baseName": "Details",
+ "type": "string"
+ },
+ {
+ "name": "code",
+ "baseName": "Code",
+ "type": "string"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=batchPaymentDetails.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/batchPaymentDetails.js.map b/dist/gen/model/accounting/batchPaymentDetails.js.map
new file mode 100644
index 000000000..25bf31b39
--- /dev/null
+++ b/dist/gen/model/accounting/batchPaymentDetails.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"batchPaymentDetails.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/batchPaymentDetails.ts"],"names":[],"mappings":";;AAgBA,MAAa,mBAAmB;IAmD5B,MAAM,CAAC,mBAAmB;QACtB,OAAO,mBAAmB,CAAC,gBAAgB,CAAC;IAChD,CAAC;;AArDL,kDAsDC;AAhCU,iCAAa,GAAuB,SAAS,CAAC;AAE9C,oCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,mBAAmB;QAC3B,UAAU,EAAE,mBAAmB;QAC/B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/batchPayments.d.ts b/dist/gen/model/accounting/batchPayments.d.ts
new file mode 100644
index 000000000..4539a11f3
--- /dev/null
+++ b/dist/gen/model/accounting/batchPayments.d.ts
@@ -0,0 +1,15 @@
+import { BatchPayment } from './batchPayment';
+export declare class BatchPayments {
+ 'batchPayments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/batchPayments.js b/dist/gen/model/accounting/batchPayments.js
new file mode 100644
index 000000000..aaf092bf5
--- /dev/null
+++ b/dist/gen/model/accounting/batchPayments.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BatchPayments {
+ static getAttributeTypeMap() {
+ return BatchPayments.attributeTypeMap;
+ }
+}
+exports.BatchPayments = BatchPayments;
+BatchPayments.discriminator = undefined;
+BatchPayments.attributeTypeMap = [
+ {
+ "name": "batchPayments",
+ "baseName": "BatchPayments",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=batchPayments.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/batchPayments.js.map b/dist/gen/model/accounting/batchPayments.js.map
new file mode 100644
index 000000000..ed0dd6842
--- /dev/null
+++ b/dist/gen/model/accounting/batchPayments.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"batchPayments.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/batchPayments.ts"],"names":[],"mappings":";;AAcA,MAAa,aAAa;IAYtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AAdL,sCAeC;AAZU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,qBAAqB;KAChC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bill.d.ts b/dist/gen/model/accounting/bill.d.ts
new file mode 100644
index 000000000..a4b61df3f
--- /dev/null
+++ b/dist/gen/model/accounting/bill.d.ts
@@ -0,0 +1,16 @@
+import { PaymentTermType } from './paymentTermType';
+export declare class Bill {
+ 'day'?: number;
+ 'type'?: PaymentTermType;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/bill.js b/dist/gen/model/accounting/bill.js
new file mode 100644
index 000000000..b12606e30
--- /dev/null
+++ b/dist/gen/model/accounting/bill.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Bill {
+ static getAttributeTypeMap() {
+ return Bill.attributeTypeMap;
+ }
+}
+exports.Bill = Bill;
+Bill.discriminator = undefined;
+Bill.attributeTypeMap = [
+ {
+ "name": "day",
+ "baseName": "Day",
+ "type": "number"
+ },
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "PaymentTermType"
+ }
+];
+//# sourceMappingURL=bill.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/bill.js.map b/dist/gen/model/accounting/bill.js.map
new file mode 100644
index 000000000..203cf068f
--- /dev/null
+++ b/dist/gen/model/accounting/bill.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bill.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/bill.ts"],"names":[],"mappings":";;AAcA,MAAa,IAAI;IAqBb,MAAM,CAAC,mBAAmB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;;AAvBL,oBAwBC;AAjBU,kBAAa,GAAuB,SAAS,CAAC;AAE9C,qBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,iBAAiB;KAC5B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/brandingTheme.d.ts b/dist/gen/model/accounting/brandingTheme.d.ts
new file mode 100644
index 000000000..b04a97736
--- /dev/null
+++ b/dist/gen/model/accounting/brandingTheme.d.ts
@@ -0,0 +1,24 @@
+export declare class BrandingTheme {
+ 'brandingThemeID'?: string;
+ 'name'?: string;
+ 'logoUrl'?: string;
+ 'type'?: BrandingTheme.TypeEnum;
+ 'sortOrder'?: number;
+ 'createdDateUTC'?: Date;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace BrandingTheme {
+ enum TypeEnum {
+ INVOICE
+ }
+}
diff --git a/dist/gen/model/accounting/brandingTheme.js b/dist/gen/model/accounting/brandingTheme.js
new file mode 100644
index 000000000..2936c4d56
--- /dev/null
+++ b/dist/gen/model/accounting/brandingTheme.js
@@ -0,0 +1,48 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BrandingTheme {
+ static getAttributeTypeMap() {
+ return BrandingTheme.attributeTypeMap;
+ }
+}
+exports.BrandingTheme = BrandingTheme;
+BrandingTheme.discriminator = undefined;
+BrandingTheme.attributeTypeMap = [
+ {
+ "name": "brandingThemeID",
+ "baseName": "BrandingThemeID",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "logoUrl",
+ "baseName": "LogoUrl",
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "BrandingTheme.TypeEnum"
+ },
+ {
+ "name": "sortOrder",
+ "baseName": "SortOrder",
+ "type": "number"
+ },
+ {
+ "name": "createdDateUTC",
+ "baseName": "CreatedDateUTC",
+ "type": "Date"
+ }
+];
+(function (BrandingTheme) {
+ let TypeEnum;
+ (function (TypeEnum) {
+ TypeEnum[TypeEnum["INVOICE"] = 'INVOICE'] = "INVOICE";
+ })(TypeEnum = BrandingTheme.TypeEnum || (BrandingTheme.TypeEnum = {}));
+})(BrandingTheme = exports.BrandingTheme || (exports.BrandingTheme = {}));
+//# sourceMappingURL=brandingTheme.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/brandingTheme.js.map b/dist/gen/model/accounting/brandingTheme.js.map
new file mode 100644
index 000000000..141c12f88
--- /dev/null
+++ b/dist/gen/model/accounting/brandingTheme.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"brandingTheme.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/brandingTheme.ts"],"names":[],"mappings":";;AAaA,MAAa,aAAa;IA4DtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AA9DL,sCA+DC;AArCU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,wBAAwB;KACnC;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;CAAK,CAAC;AAOf,WAAiB,aAAa;IAC1B,IAAY,QAEX;IAFD,WAAY,QAAQ;QAChB,+BAAgB,SAAS,aAAA,CAAA;IAC7B,CAAC,EAFW,QAAQ,GAAR,sBAAQ,KAAR,sBAAQ,QAEnB;AACL,CAAC,EAJgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAI7B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/brandingThemes.d.ts b/dist/gen/model/accounting/brandingThemes.d.ts
new file mode 100644
index 000000000..f9d3718b5
--- /dev/null
+++ b/dist/gen/model/accounting/brandingThemes.d.ts
@@ -0,0 +1,15 @@
+import { BrandingTheme } from './brandingTheme';
+export declare class BrandingThemes {
+ 'brandingThemes'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/brandingThemes.js b/dist/gen/model/accounting/brandingThemes.js
new file mode 100644
index 000000000..22fa343a1
--- /dev/null
+++ b/dist/gen/model/accounting/brandingThemes.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BrandingThemes {
+ static getAttributeTypeMap() {
+ return BrandingThemes.attributeTypeMap;
+ }
+}
+exports.BrandingThemes = BrandingThemes;
+BrandingThemes.discriminator = undefined;
+BrandingThemes.attributeTypeMap = [
+ {
+ "name": "brandingThemes",
+ "baseName": "BrandingThemes",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=brandingThemes.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/brandingThemes.js.map b/dist/gen/model/accounting/brandingThemes.js.map
new file mode 100644
index 000000000..d322a2974
--- /dev/null
+++ b/dist/gen/model/accounting/brandingThemes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"brandingThemes.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/brandingThemes.ts"],"names":[],"mappings":";;AAcA,MAAa,cAAc;IAYvB,MAAM,CAAC,mBAAmB;QACtB,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC3C,CAAC;;AAdL,wCAeC;AAZU,4BAAa,GAAuB,SAAS,CAAC;AAE9C,+BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,sBAAsB;KACjC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/cISOrgSetting.d.ts b/dist/gen/model/accounting/cISOrgSetting.d.ts
new file mode 100644
index 000000000..253c5dcb7
--- /dev/null
+++ b/dist/gen/model/accounting/cISOrgSetting.d.ts
@@ -0,0 +1,16 @@
+export declare class CISOrgSetting {
+ 'cISContractorEnabled'?: boolean;
+ 'cISSubContractorEnabled'?: boolean;
+ 'rate'?: number;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/cISOrgSetting.js b/dist/gen/model/accounting/cISOrgSetting.js
new file mode 100644
index 000000000..e8265de86
--- /dev/null
+++ b/dist/gen/model/accounting/cISOrgSetting.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class CISOrgSetting {
+ static getAttributeTypeMap() {
+ return CISOrgSetting.attributeTypeMap;
+ }
+}
+exports.CISOrgSetting = CISOrgSetting;
+CISOrgSetting.discriminator = undefined;
+CISOrgSetting.attributeTypeMap = [
+ {
+ "name": "cISContractorEnabled",
+ "baseName": "CISContractorEnabled",
+ "type": "boolean"
+ },
+ {
+ "name": "cISSubContractorEnabled",
+ "baseName": "CISSubContractorEnabled",
+ "type": "boolean"
+ },
+ {
+ "name": "rate",
+ "baseName": "Rate",
+ "type": "number"
+ }
+];
+//# sourceMappingURL=cISOrgSetting.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/cISOrgSetting.js.map b/dist/gen/model/accounting/cISOrgSetting.js.map
new file mode 100644
index 000000000..31ade4c8b
--- /dev/null
+++ b/dist/gen/model/accounting/cISOrgSetting.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cISOrgSetting.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/cISOrgSetting.ts"],"names":[],"mappings":";;AAaA,MAAa,aAAa;IAiCtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AAnCL,sCAoCC;AAtBU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,sBAAsB;QAC9B,UAAU,EAAE,sBAAsB;QAClC,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,yBAAyB;QACjC,UAAU,EAAE,yBAAyB;QACrC,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/cISSetting.d.ts b/dist/gen/model/accounting/cISSetting.d.ts
new file mode 100644
index 000000000..87c4c3df7
--- /dev/null
+++ b/dist/gen/model/accounting/cISSetting.d.ts
@@ -0,0 +1,15 @@
+export declare class CISSetting {
+ 'cISEnabled'?: boolean;
+ 'rate'?: number;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/cISSetting.js b/dist/gen/model/accounting/cISSetting.js
new file mode 100644
index 000000000..9ad76a8d7
--- /dev/null
+++ b/dist/gen/model/accounting/cISSetting.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class CISSetting {
+ static getAttributeTypeMap() {
+ return CISSetting.attributeTypeMap;
+ }
+}
+exports.CISSetting = CISSetting;
+CISSetting.discriminator = undefined;
+CISSetting.attributeTypeMap = [
+ {
+ "name": "cISEnabled",
+ "baseName": "CISEnabled",
+ "type": "boolean"
+ },
+ {
+ "name": "rate",
+ "baseName": "Rate",
+ "type": "number"
+ }
+];
+//# sourceMappingURL=cISSetting.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/cISSetting.js.map b/dist/gen/model/accounting/cISSetting.js.map
new file mode 100644
index 000000000..98922788e
--- /dev/null
+++ b/dist/gen/model/accounting/cISSetting.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cISSetting.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/cISSetting.ts"],"names":[],"mappings":";;AAaA,MAAa,UAAU;IAwBnB,MAAM,CAAC,mBAAmB;QACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;;AA1BL,gCA2BC;AAjBU,wBAAa,GAAuB,SAAS,CAAC;AAE9C,2BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/cISSettings.d.ts b/dist/gen/model/accounting/cISSettings.d.ts
new file mode 100644
index 000000000..185b5a3ed
--- /dev/null
+++ b/dist/gen/model/accounting/cISSettings.d.ts
@@ -0,0 +1,15 @@
+import { CISSetting } from './cISSetting';
+export declare class CISSettings {
+ 'cISSettings'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/cISSettings.js b/dist/gen/model/accounting/cISSettings.js
new file mode 100644
index 000000000..861166362
--- /dev/null
+++ b/dist/gen/model/accounting/cISSettings.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class CISSettings {
+ static getAttributeTypeMap() {
+ return CISSettings.attributeTypeMap;
+ }
+}
+exports.CISSettings = CISSettings;
+CISSettings.discriminator = undefined;
+CISSettings.attributeTypeMap = [
+ {
+ "name": "cISSettings",
+ "baseName": "CISSettings",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=cISSettings.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/cISSettings.js.map b/dist/gen/model/accounting/cISSettings.js.map
new file mode 100644
index 000000000..d15572f28
--- /dev/null
+++ b/dist/gen/model/accounting/cISSettings.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cISSettings.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/cISSettings.ts"],"names":[],"mappings":";;AAcA,MAAa,WAAW;IAYpB,MAAM,CAAC,mBAAmB;QACtB,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACxC,CAAC;;AAdL,kCAeC;AAZU,yBAAa,GAAuB,SAAS,CAAC;AAE9C,4BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contact.d.ts b/dist/gen/model/accounting/contact.d.ts
new file mode 100644
index 000000000..9d303b7bf
--- /dev/null
+++ b/dist/gen/model/accounting/contact.d.ts
@@ -0,0 +1,70 @@
+import { Address } from './address';
+import { Attachment } from './attachment';
+import { Balances } from './balances';
+import { BatchPaymentDetails } from './batchPaymentDetails';
+import { BrandingTheme } from './brandingTheme';
+import { ContactGroup } from './contactGroup';
+import { ContactPerson } from './contactPerson';
+import { CurrencyCode } from './currencyCode';
+import { PaymentTerm } from './paymentTerm';
+import { Phone } from './phone';
+import { SalesTrackingCategory } from './salesTrackingCategory';
+import { ValidationError } from './validationError';
+export declare class Contact {
+ 'contactID'?: string;
+ 'contactNumber'?: string;
+ 'accountNumber'?: string;
+ 'contactStatus'?: Contact.ContactStatusEnum;
+ 'name'?: string;
+ 'firstName'?: string;
+ 'lastName'?: string;
+ 'emailAddress'?: string;
+ 'skypeUserName'?: string;
+ 'contactPersons'?: Array;
+ 'bankAccountDetails'?: string;
+ 'taxNumber'?: string;
+ 'accountsReceivableTaxType'?: string;
+ 'accountsPayableTaxType'?: string;
+ 'addresses'?: Array;
+ 'phones'?: Array;
+ 'isSupplier'?: boolean;
+ 'isCustomer'?: boolean;
+ 'defaultCurrency'?: CurrencyCode;
+ 'xeroNetworkKey'?: string;
+ 'salesDefaultAccountCode'?: string;
+ 'purchasesDefaultAccountCode'?: string;
+ 'salesTrackingCategories'?: Array;
+ 'purchasesTrackingCategories'?: Array;
+ 'trackingCategoryName'?: string;
+ 'trackingCategoryOption'?: string;
+ 'paymentTerms'?: PaymentTerm;
+ 'updatedDateUTC'?: Date;
+ 'contactGroups'?: Array;
+ 'website'?: string;
+ 'brandingTheme'?: BrandingTheme;
+ 'batchPayments'?: BatchPaymentDetails;
+ 'discount'?: number;
+ 'balances'?: Balances;
+ 'attachments'?: Array;
+ 'hasAttachments'?: boolean;
+ 'validationErrors'?: Array;
+ 'hasValidationErrors'?: boolean;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Contact {
+ enum ContactStatusEnum {
+ ACTIVE,
+ ARCHIVED,
+ GDPRREQUEST
+ }
+}
diff --git a/dist/gen/model/accounting/contact.js b/dist/gen/model/accounting/contact.js
new file mode 100644
index 000000000..595c8ae2a
--- /dev/null
+++ b/dist/gen/model/accounting/contact.js
@@ -0,0 +1,210 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Contact {
+ static getAttributeTypeMap() {
+ return Contact.attributeTypeMap;
+ }
+}
+exports.Contact = Contact;
+Contact.discriminator = undefined;
+Contact.attributeTypeMap = [
+ {
+ "name": "contactID",
+ "baseName": "ContactID",
+ "type": "string"
+ },
+ {
+ "name": "contactNumber",
+ "baseName": "ContactNumber",
+ "type": "string"
+ },
+ {
+ "name": "accountNumber",
+ "baseName": "AccountNumber",
+ "type": "string"
+ },
+ {
+ "name": "contactStatus",
+ "baseName": "ContactStatus",
+ "type": "Contact.ContactStatusEnum"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "firstName",
+ "baseName": "FirstName",
+ "type": "string"
+ },
+ {
+ "name": "lastName",
+ "baseName": "LastName",
+ "type": "string"
+ },
+ {
+ "name": "emailAddress",
+ "baseName": "EmailAddress",
+ "type": "string"
+ },
+ {
+ "name": "skypeUserName",
+ "baseName": "SkypeUserName",
+ "type": "string"
+ },
+ {
+ "name": "contactPersons",
+ "baseName": "ContactPersons",
+ "type": "Array"
+ },
+ {
+ "name": "bankAccountDetails",
+ "baseName": "BankAccountDetails",
+ "type": "string"
+ },
+ {
+ "name": "taxNumber",
+ "baseName": "TaxNumber",
+ "type": "string"
+ },
+ {
+ "name": "accountsReceivableTaxType",
+ "baseName": "AccountsReceivableTaxType",
+ "type": "string"
+ },
+ {
+ "name": "accountsPayableTaxType",
+ "baseName": "AccountsPayableTaxType",
+ "type": "string"
+ },
+ {
+ "name": "addresses",
+ "baseName": "Addresses",
+ "type": "Array"
+ },
+ {
+ "name": "phones",
+ "baseName": "Phones",
+ "type": "Array"
+ },
+ {
+ "name": "isSupplier",
+ "baseName": "IsSupplier",
+ "type": "boolean"
+ },
+ {
+ "name": "isCustomer",
+ "baseName": "IsCustomer",
+ "type": "boolean"
+ },
+ {
+ "name": "defaultCurrency",
+ "baseName": "DefaultCurrency",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "xeroNetworkKey",
+ "baseName": "XeroNetworkKey",
+ "type": "string"
+ },
+ {
+ "name": "salesDefaultAccountCode",
+ "baseName": "SalesDefaultAccountCode",
+ "type": "string"
+ },
+ {
+ "name": "purchasesDefaultAccountCode",
+ "baseName": "PurchasesDefaultAccountCode",
+ "type": "string"
+ },
+ {
+ "name": "salesTrackingCategories",
+ "baseName": "SalesTrackingCategories",
+ "type": "Array"
+ },
+ {
+ "name": "purchasesTrackingCategories",
+ "baseName": "PurchasesTrackingCategories",
+ "type": "Array"
+ },
+ {
+ "name": "trackingCategoryName",
+ "baseName": "TrackingCategoryName",
+ "type": "string"
+ },
+ {
+ "name": "trackingCategoryOption",
+ "baseName": "TrackingCategoryOption",
+ "type": "string"
+ },
+ {
+ "name": "paymentTerms",
+ "baseName": "PaymentTerms",
+ "type": "PaymentTerm"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "contactGroups",
+ "baseName": "ContactGroups",
+ "type": "Array"
+ },
+ {
+ "name": "website",
+ "baseName": "Website",
+ "type": "string"
+ },
+ {
+ "name": "brandingTheme",
+ "baseName": "BrandingTheme",
+ "type": "BrandingTheme"
+ },
+ {
+ "name": "batchPayments",
+ "baseName": "BatchPayments",
+ "type": "BatchPaymentDetails"
+ },
+ {
+ "name": "discount",
+ "baseName": "Discount",
+ "type": "number"
+ },
+ {
+ "name": "balances",
+ "baseName": "Balances",
+ "type": "Balances"
+ },
+ {
+ "name": "attachments",
+ "baseName": "Attachments",
+ "type": "Array"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ },
+ {
+ "name": "hasValidationErrors",
+ "baseName": "HasValidationErrors",
+ "type": "boolean"
+ }
+];
+(function (Contact) {
+ let ContactStatusEnum;
+ (function (ContactStatusEnum) {
+ ContactStatusEnum[ContactStatusEnum["ACTIVE"] = 'ACTIVE'] = "ACTIVE";
+ ContactStatusEnum[ContactStatusEnum["ARCHIVED"] = 'ARCHIVED'] = "ARCHIVED";
+ ContactStatusEnum[ContactStatusEnum["GDPRREQUEST"] = 'GDPRREQUEST'] = "GDPRREQUEST";
+ })(ContactStatusEnum = Contact.ContactStatusEnum || (Contact.ContactStatusEnum = {}));
+})(Contact = exports.Contact || (exports.Contact = {}));
+//# sourceMappingURL=contact.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contact.js.map b/dist/gen/model/accounting/contact.js.map
new file mode 100644
index 000000000..d03114540
--- /dev/null
+++ b/dist/gen/model/accounting/contact.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"contact.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/contact.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contactGroup.d.ts b/dist/gen/model/accounting/contactGroup.d.ts
new file mode 100644
index 000000000..32ebd83d3
--- /dev/null
+++ b/dist/gen/model/accounting/contactGroup.d.ts
@@ -0,0 +1,24 @@
+import { Contact } from './contact';
+export declare class ContactGroup {
+ 'name'?: string;
+ 'status'?: ContactGroup.StatusEnum;
+ 'contactGroupID'?: string;
+ 'contacts'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace ContactGroup {
+ enum StatusEnum {
+ ACTIVE,
+ DELETED
+ }
+}
diff --git a/dist/gen/model/accounting/contactGroup.js b/dist/gen/model/accounting/contactGroup.js
new file mode 100644
index 000000000..68e91a2dd
--- /dev/null
+++ b/dist/gen/model/accounting/contactGroup.js
@@ -0,0 +1,39 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ContactGroup {
+ static getAttributeTypeMap() {
+ return ContactGroup.attributeTypeMap;
+ }
+}
+exports.ContactGroup = ContactGroup;
+ContactGroup.discriminator = undefined;
+ContactGroup.attributeTypeMap = [
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "ContactGroup.StatusEnum"
+ },
+ {
+ "name": "contactGroupID",
+ "baseName": "ContactGroupID",
+ "type": "string"
+ },
+ {
+ "name": "contacts",
+ "baseName": "Contacts",
+ "type": "Array"
+ }
+];
+(function (ContactGroup) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["ACTIVE"] = 'ACTIVE'] = "ACTIVE";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ })(StatusEnum = ContactGroup.StatusEnum || (ContactGroup.StatusEnum = {}));
+})(ContactGroup = exports.ContactGroup || (exports.ContactGroup = {}));
+//# sourceMappingURL=contactGroup.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contactGroup.js.map b/dist/gen/model/accounting/contactGroup.js.map
new file mode 100644
index 000000000..c2ea84b99
--- /dev/null
+++ b/dist/gen/model/accounting/contactGroup.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"contactGroup.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/contactGroup.ts"],"names":[],"mappings":";;AAcA,MAAa,YAAY;IA0CrB,MAAM,CAAC,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACzC,CAAC;;AA5CL,oCA6CC;AA3BU,0BAAa,GAAuB,SAAS,CAAC;AAE9C,6BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,yBAAyB;KACpC;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;CAAK,CAAC;AAOf,WAAiB,YAAY;IACzB,IAAY,UAGX;IAHD,WAAY,UAAU;QAClB,kCAAe,QAAQ,YAAA,CAAA;QACvB,mCAAgB,SAAS,aAAA,CAAA;IAC7B,CAAC,EAHW,UAAU,GAAV,uBAAU,KAAV,uBAAU,QAGrB;AACL,CAAC,EALgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAK5B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contactGroups.d.ts b/dist/gen/model/accounting/contactGroups.d.ts
new file mode 100644
index 000000000..37d8217f1
--- /dev/null
+++ b/dist/gen/model/accounting/contactGroups.d.ts
@@ -0,0 +1,15 @@
+import { ContactGroup } from './contactGroup';
+export declare class ContactGroups {
+ 'contactGroups'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/contactGroups.js b/dist/gen/model/accounting/contactGroups.js
new file mode 100644
index 000000000..5253b7e64
--- /dev/null
+++ b/dist/gen/model/accounting/contactGroups.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ContactGroups {
+ static getAttributeTypeMap() {
+ return ContactGroups.attributeTypeMap;
+ }
+}
+exports.ContactGroups = ContactGroups;
+ContactGroups.discriminator = undefined;
+ContactGroups.attributeTypeMap = [
+ {
+ "name": "contactGroups",
+ "baseName": "ContactGroups",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=contactGroups.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contactGroups.js.map b/dist/gen/model/accounting/contactGroups.js.map
new file mode 100644
index 000000000..d1ef52bea
--- /dev/null
+++ b/dist/gen/model/accounting/contactGroups.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"contactGroups.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/contactGroups.ts"],"names":[],"mappings":";;AAcA,MAAa,aAAa;IAYtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AAdL,sCAeC;AAZU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,qBAAqB;KAChC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contactPerson.d.ts b/dist/gen/model/accounting/contactPerson.d.ts
new file mode 100644
index 000000000..e07f96cc5
--- /dev/null
+++ b/dist/gen/model/accounting/contactPerson.d.ts
@@ -0,0 +1,17 @@
+export declare class ContactPerson {
+ 'firstName'?: string;
+ 'lastName'?: string;
+ 'emailAddress'?: string;
+ 'includeInEmails'?: boolean;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/contactPerson.js b/dist/gen/model/accounting/contactPerson.js
new file mode 100644
index 000000000..05d5babaf
--- /dev/null
+++ b/dist/gen/model/accounting/contactPerson.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ContactPerson {
+ static getAttributeTypeMap() {
+ return ContactPerson.attributeTypeMap;
+ }
+}
+exports.ContactPerson = ContactPerson;
+ContactPerson.discriminator = undefined;
+ContactPerson.attributeTypeMap = [
+ {
+ "name": "firstName",
+ "baseName": "FirstName",
+ "type": "string"
+ },
+ {
+ "name": "lastName",
+ "baseName": "LastName",
+ "type": "string"
+ },
+ {
+ "name": "emailAddress",
+ "baseName": "EmailAddress",
+ "type": "string"
+ },
+ {
+ "name": "includeInEmails",
+ "baseName": "IncludeInEmails",
+ "type": "boolean"
+ }
+];
+//# sourceMappingURL=contactPerson.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contactPerson.js.map b/dist/gen/model/accounting/contactPerson.js.map
new file mode 100644
index 000000000..07576c862
--- /dev/null
+++ b/dist/gen/model/accounting/contactPerson.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"contactPerson.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/contactPerson.ts"],"names":[],"mappings":";;AAaA,MAAa,aAAa;IA0CtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AA5CL,sCA6CC;AA3BU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,SAAS;KACpB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contacts.d.ts b/dist/gen/model/accounting/contacts.d.ts
new file mode 100644
index 000000000..a7753985a
--- /dev/null
+++ b/dist/gen/model/accounting/contacts.d.ts
@@ -0,0 +1,15 @@
+import { Contact } from './contact';
+export declare class Contacts {
+ 'contacts'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/contacts.js b/dist/gen/model/accounting/contacts.js
new file mode 100644
index 000000000..30a721780
--- /dev/null
+++ b/dist/gen/model/accounting/contacts.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Contacts {
+ static getAttributeTypeMap() {
+ return Contacts.attributeTypeMap;
+ }
+}
+exports.Contacts = Contacts;
+Contacts.discriminator = undefined;
+Contacts.attributeTypeMap = [
+ {
+ "name": "contacts",
+ "baseName": "Contacts",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=contacts.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/contacts.js.map b/dist/gen/model/accounting/contacts.js.map
new file mode 100644
index 000000000..dc301ea4a
--- /dev/null
+++ b/dist/gen/model/accounting/contacts.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/contacts.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IAYjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAdL,4BAeC;AAZU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/countryCode.d.ts b/dist/gen/model/accounting/countryCode.d.ts
new file mode 100644
index 000000000..c3f896a02
--- /dev/null
+++ b/dist/gen/model/accounting/countryCode.d.ts
@@ -0,0 +1,242 @@
+export declare enum CountryCode {
+ AD,
+ AE,
+ AF,
+ AG,
+ AI,
+ AL,
+ AM,
+ AN,
+ AO,
+ AQ,
+ AR,
+ AS,
+ AT,
+ AU,
+ AW,
+ AZ,
+ BA,
+ BB,
+ BD,
+ BE,
+ BF,
+ BG,
+ BH,
+ BI,
+ BJ,
+ BL,
+ BM,
+ BN,
+ BO,
+ BR,
+ BS,
+ BT,
+ BW,
+ BY,
+ BZ,
+ CA,
+ CC,
+ CD,
+ CF,
+ CG,
+ CH,
+ CI,
+ CK,
+ CL,
+ CM,
+ CN,
+ CO,
+ CR,
+ CU,
+ CV,
+ CW,
+ CX,
+ CY,
+ CZ,
+ DE,
+ DJ,
+ DK,
+ DM,
+ DO,
+ DZ,
+ EC,
+ EE,
+ EG,
+ EH,
+ ER,
+ ES,
+ ET,
+ FI,
+ FJ,
+ FK,
+ FM,
+ FO,
+ FR,
+ GA,
+ GB,
+ GD,
+ GE,
+ GG,
+ GH,
+ GI,
+ GL,
+ GM,
+ GN,
+ GQ,
+ GR,
+ GT,
+ GU,
+ GW,
+ GY,
+ HK,
+ HN,
+ HR,
+ HT,
+ HU,
+ ID,
+ IE,
+ IL,
+ IM,
+ IN,
+ IO,
+ IQ,
+ IR,
+ IS,
+ IT,
+ JE,
+ JM,
+ JO,
+ JP,
+ KE,
+ KG,
+ KH,
+ KI,
+ KM,
+ KN,
+ KP,
+ KR,
+ KW,
+ KY,
+ KZ,
+ LA,
+ LB,
+ LC,
+ LI,
+ LK,
+ LR,
+ LS,
+ LT,
+ LU,
+ LV,
+ LY,
+ MA,
+ MC,
+ MD,
+ ME,
+ MF,
+ MG,
+ MH,
+ MK,
+ ML,
+ MM,
+ MN,
+ MO,
+ MP,
+ MR,
+ MS,
+ MT,
+ MU,
+ MV,
+ MW,
+ MX,
+ MY,
+ MZ,
+ NA,
+ NC,
+ NE,
+ NG,
+ NI,
+ NL,
+ False,
+ NP,
+ NR,
+ NU,
+ NZ,
+ OM,
+ PA,
+ PE,
+ PF,
+ PG,
+ PH,
+ PK,
+ PL,
+ PM,
+ PN,
+ PR,
+ PS,
+ PT,
+ PW,
+ PY,
+ QA,
+ RE,
+ RO,
+ RS,
+ RU,
+ RW,
+ SA,
+ SB,
+ SC,
+ SD,
+ SE,
+ SG,
+ SH,
+ SI,
+ SJ,
+ SK,
+ SL,
+ SM,
+ SN,
+ SO,
+ SR,
+ SS,
+ ST,
+ SV,
+ SX,
+ SY,
+ SZ,
+ TC,
+ TD,
+ TG,
+ TH,
+ TJ,
+ TK,
+ TL,
+ TM,
+ TN,
+ TO,
+ TR,
+ TT,
+ TV,
+ TW,
+ TZ,
+ UA,
+ UG,
+ US,
+ UY,
+ UZ,
+ VA,
+ VC,
+ VE,
+ VG,
+ VI,
+ VN,
+ VU,
+ WF,
+ WS,
+ XK,
+ YE,
+ YT,
+ ZA,
+ ZM,
+ ZW
+}
diff --git a/dist/gen/model/accounting/countryCode.js b/dist/gen/model/accounting/countryCode.js
new file mode 100644
index 000000000..9d1dbceb7
--- /dev/null
+++ b/dist/gen/model/accounting/countryCode.js
@@ -0,0 +1,246 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var CountryCode;
+(function (CountryCode) {
+ CountryCode[CountryCode["AD"] = 'AD'] = "AD";
+ CountryCode[CountryCode["AE"] = 'AE'] = "AE";
+ CountryCode[CountryCode["AF"] = 'AF'] = "AF";
+ CountryCode[CountryCode["AG"] = 'AG'] = "AG";
+ CountryCode[CountryCode["AI"] = 'AI'] = "AI";
+ CountryCode[CountryCode["AL"] = 'AL'] = "AL";
+ CountryCode[CountryCode["AM"] = 'AM'] = "AM";
+ CountryCode[CountryCode["AN"] = 'AN'] = "AN";
+ CountryCode[CountryCode["AO"] = 'AO'] = "AO";
+ CountryCode[CountryCode["AQ"] = 'AQ'] = "AQ";
+ CountryCode[CountryCode["AR"] = 'AR'] = "AR";
+ CountryCode[CountryCode["AS"] = 'AS'] = "AS";
+ CountryCode[CountryCode["AT"] = 'AT'] = "AT";
+ CountryCode[CountryCode["AU"] = 'AU'] = "AU";
+ CountryCode[CountryCode["AW"] = 'AW'] = "AW";
+ CountryCode[CountryCode["AZ"] = 'AZ'] = "AZ";
+ CountryCode[CountryCode["BA"] = 'BA'] = "BA";
+ CountryCode[CountryCode["BB"] = 'BB'] = "BB";
+ CountryCode[CountryCode["BD"] = 'BD'] = "BD";
+ CountryCode[CountryCode["BE"] = 'BE'] = "BE";
+ CountryCode[CountryCode["BF"] = 'BF'] = "BF";
+ CountryCode[CountryCode["BG"] = 'BG'] = "BG";
+ CountryCode[CountryCode["BH"] = 'BH'] = "BH";
+ CountryCode[CountryCode["BI"] = 'BI'] = "BI";
+ CountryCode[CountryCode["BJ"] = 'BJ'] = "BJ";
+ CountryCode[CountryCode["BL"] = 'BL'] = "BL";
+ CountryCode[CountryCode["BM"] = 'BM'] = "BM";
+ CountryCode[CountryCode["BN"] = 'BN'] = "BN";
+ CountryCode[CountryCode["BO"] = 'BO'] = "BO";
+ CountryCode[CountryCode["BR"] = 'BR'] = "BR";
+ CountryCode[CountryCode["BS"] = 'BS'] = "BS";
+ CountryCode[CountryCode["BT"] = 'BT'] = "BT";
+ CountryCode[CountryCode["BW"] = 'BW'] = "BW";
+ CountryCode[CountryCode["BY"] = 'BY'] = "BY";
+ CountryCode[CountryCode["BZ"] = 'BZ'] = "BZ";
+ CountryCode[CountryCode["CA"] = 'CA'] = "CA";
+ CountryCode[CountryCode["CC"] = 'CC'] = "CC";
+ CountryCode[CountryCode["CD"] = 'CD'] = "CD";
+ CountryCode[CountryCode["CF"] = 'CF'] = "CF";
+ CountryCode[CountryCode["CG"] = 'CG'] = "CG";
+ CountryCode[CountryCode["CH"] = 'CH'] = "CH";
+ CountryCode[CountryCode["CI"] = 'CI'] = "CI";
+ CountryCode[CountryCode["CK"] = 'CK'] = "CK";
+ CountryCode[CountryCode["CL"] = 'CL'] = "CL";
+ CountryCode[CountryCode["CM"] = 'CM'] = "CM";
+ CountryCode[CountryCode["CN"] = 'CN'] = "CN";
+ CountryCode[CountryCode["CO"] = 'CO'] = "CO";
+ CountryCode[CountryCode["CR"] = 'CR'] = "CR";
+ CountryCode[CountryCode["CU"] = 'CU'] = "CU";
+ CountryCode[CountryCode["CV"] = 'CV'] = "CV";
+ CountryCode[CountryCode["CW"] = 'CW'] = "CW";
+ CountryCode[CountryCode["CX"] = 'CX'] = "CX";
+ CountryCode[CountryCode["CY"] = 'CY'] = "CY";
+ CountryCode[CountryCode["CZ"] = 'CZ'] = "CZ";
+ CountryCode[CountryCode["DE"] = 'DE'] = "DE";
+ CountryCode[CountryCode["DJ"] = 'DJ'] = "DJ";
+ CountryCode[CountryCode["DK"] = 'DK'] = "DK";
+ CountryCode[CountryCode["DM"] = 'DM'] = "DM";
+ CountryCode[CountryCode["DO"] = 'DO'] = "DO";
+ CountryCode[CountryCode["DZ"] = 'DZ'] = "DZ";
+ CountryCode[CountryCode["EC"] = 'EC'] = "EC";
+ CountryCode[CountryCode["EE"] = 'EE'] = "EE";
+ CountryCode[CountryCode["EG"] = 'EG'] = "EG";
+ CountryCode[CountryCode["EH"] = 'EH'] = "EH";
+ CountryCode[CountryCode["ER"] = 'ER'] = "ER";
+ CountryCode[CountryCode["ES"] = 'ES'] = "ES";
+ CountryCode[CountryCode["ET"] = 'ET'] = "ET";
+ CountryCode[CountryCode["FI"] = 'FI'] = "FI";
+ CountryCode[CountryCode["FJ"] = 'FJ'] = "FJ";
+ CountryCode[CountryCode["FK"] = 'FK'] = "FK";
+ CountryCode[CountryCode["FM"] = 'FM'] = "FM";
+ CountryCode[CountryCode["FO"] = 'FO'] = "FO";
+ CountryCode[CountryCode["FR"] = 'FR'] = "FR";
+ CountryCode[CountryCode["GA"] = 'GA'] = "GA";
+ CountryCode[CountryCode["GB"] = 'GB'] = "GB";
+ CountryCode[CountryCode["GD"] = 'GD'] = "GD";
+ CountryCode[CountryCode["GE"] = 'GE'] = "GE";
+ CountryCode[CountryCode["GG"] = 'GG'] = "GG";
+ CountryCode[CountryCode["GH"] = 'GH'] = "GH";
+ CountryCode[CountryCode["GI"] = 'GI'] = "GI";
+ CountryCode[CountryCode["GL"] = 'GL'] = "GL";
+ CountryCode[CountryCode["GM"] = 'GM'] = "GM";
+ CountryCode[CountryCode["GN"] = 'GN'] = "GN";
+ CountryCode[CountryCode["GQ"] = 'GQ'] = "GQ";
+ CountryCode[CountryCode["GR"] = 'GR'] = "GR";
+ CountryCode[CountryCode["GT"] = 'GT'] = "GT";
+ CountryCode[CountryCode["GU"] = 'GU'] = "GU";
+ CountryCode[CountryCode["GW"] = 'GW'] = "GW";
+ CountryCode[CountryCode["GY"] = 'GY'] = "GY";
+ CountryCode[CountryCode["HK"] = 'HK'] = "HK";
+ CountryCode[CountryCode["HN"] = 'HN'] = "HN";
+ CountryCode[CountryCode["HR"] = 'HR'] = "HR";
+ CountryCode[CountryCode["HT"] = 'HT'] = "HT";
+ CountryCode[CountryCode["HU"] = 'HU'] = "HU";
+ CountryCode[CountryCode["ID"] = 'ID'] = "ID";
+ CountryCode[CountryCode["IE"] = 'IE'] = "IE";
+ CountryCode[CountryCode["IL"] = 'IL'] = "IL";
+ CountryCode[CountryCode["IM"] = 'IM'] = "IM";
+ CountryCode[CountryCode["IN"] = 'IN'] = "IN";
+ CountryCode[CountryCode["IO"] = 'IO'] = "IO";
+ CountryCode[CountryCode["IQ"] = 'IQ'] = "IQ";
+ CountryCode[CountryCode["IR"] = 'IR'] = "IR";
+ CountryCode[CountryCode["IS"] = 'IS'] = "IS";
+ CountryCode[CountryCode["IT"] = 'IT'] = "IT";
+ CountryCode[CountryCode["JE"] = 'JE'] = "JE";
+ CountryCode[CountryCode["JM"] = 'JM'] = "JM";
+ CountryCode[CountryCode["JO"] = 'JO'] = "JO";
+ CountryCode[CountryCode["JP"] = 'JP'] = "JP";
+ CountryCode[CountryCode["KE"] = 'KE'] = "KE";
+ CountryCode[CountryCode["KG"] = 'KG'] = "KG";
+ CountryCode[CountryCode["KH"] = 'KH'] = "KH";
+ CountryCode[CountryCode["KI"] = 'KI'] = "KI";
+ CountryCode[CountryCode["KM"] = 'KM'] = "KM";
+ CountryCode[CountryCode["KN"] = 'KN'] = "KN";
+ CountryCode[CountryCode["KP"] = 'KP'] = "KP";
+ CountryCode[CountryCode["KR"] = 'KR'] = "KR";
+ CountryCode[CountryCode["KW"] = 'KW'] = "KW";
+ CountryCode[CountryCode["KY"] = 'KY'] = "KY";
+ CountryCode[CountryCode["KZ"] = 'KZ'] = "KZ";
+ CountryCode[CountryCode["LA"] = 'LA'] = "LA";
+ CountryCode[CountryCode["LB"] = 'LB'] = "LB";
+ CountryCode[CountryCode["LC"] = 'LC'] = "LC";
+ CountryCode[CountryCode["LI"] = 'LI'] = "LI";
+ CountryCode[CountryCode["LK"] = 'LK'] = "LK";
+ CountryCode[CountryCode["LR"] = 'LR'] = "LR";
+ CountryCode[CountryCode["LS"] = 'LS'] = "LS";
+ CountryCode[CountryCode["LT"] = 'LT'] = "LT";
+ CountryCode[CountryCode["LU"] = 'LU'] = "LU";
+ CountryCode[CountryCode["LV"] = 'LV'] = "LV";
+ CountryCode[CountryCode["LY"] = 'LY'] = "LY";
+ CountryCode[CountryCode["MA"] = 'MA'] = "MA";
+ CountryCode[CountryCode["MC"] = 'MC'] = "MC";
+ CountryCode[CountryCode["MD"] = 'MD'] = "MD";
+ CountryCode[CountryCode["ME"] = 'ME'] = "ME";
+ CountryCode[CountryCode["MF"] = 'MF'] = "MF";
+ CountryCode[CountryCode["MG"] = 'MG'] = "MG";
+ CountryCode[CountryCode["MH"] = 'MH'] = "MH";
+ CountryCode[CountryCode["MK"] = 'MK'] = "MK";
+ CountryCode[CountryCode["ML"] = 'ML'] = "ML";
+ CountryCode[CountryCode["MM"] = 'MM'] = "MM";
+ CountryCode[CountryCode["MN"] = 'MN'] = "MN";
+ CountryCode[CountryCode["MO"] = 'MO'] = "MO";
+ CountryCode[CountryCode["MP"] = 'MP'] = "MP";
+ CountryCode[CountryCode["MR"] = 'MR'] = "MR";
+ CountryCode[CountryCode["MS"] = 'MS'] = "MS";
+ CountryCode[CountryCode["MT"] = 'MT'] = "MT";
+ CountryCode[CountryCode["MU"] = 'MU'] = "MU";
+ CountryCode[CountryCode["MV"] = 'MV'] = "MV";
+ CountryCode[CountryCode["MW"] = 'MW'] = "MW";
+ CountryCode[CountryCode["MX"] = 'MX'] = "MX";
+ CountryCode[CountryCode["MY"] = 'MY'] = "MY";
+ CountryCode[CountryCode["MZ"] = 'MZ'] = "MZ";
+ CountryCode[CountryCode["NA"] = 'NA'] = "NA";
+ CountryCode[CountryCode["NC"] = 'NC'] = "NC";
+ CountryCode[CountryCode["NE"] = 'NE'] = "NE";
+ CountryCode[CountryCode["NG"] = 'NG'] = "NG";
+ CountryCode[CountryCode["NI"] = 'NI'] = "NI";
+ CountryCode[CountryCode["NL"] = 'NL'] = "NL";
+ CountryCode[CountryCode["False"] = 'false'] = "False";
+ CountryCode[CountryCode["NP"] = 'NP'] = "NP";
+ CountryCode[CountryCode["NR"] = 'NR'] = "NR";
+ CountryCode[CountryCode["NU"] = 'NU'] = "NU";
+ CountryCode[CountryCode["NZ"] = 'NZ'] = "NZ";
+ CountryCode[CountryCode["OM"] = 'OM'] = "OM";
+ CountryCode[CountryCode["PA"] = 'PA'] = "PA";
+ CountryCode[CountryCode["PE"] = 'PE'] = "PE";
+ CountryCode[CountryCode["PF"] = 'PF'] = "PF";
+ CountryCode[CountryCode["PG"] = 'PG'] = "PG";
+ CountryCode[CountryCode["PH"] = 'PH'] = "PH";
+ CountryCode[CountryCode["PK"] = 'PK'] = "PK";
+ CountryCode[CountryCode["PL"] = 'PL'] = "PL";
+ CountryCode[CountryCode["PM"] = 'PM'] = "PM";
+ CountryCode[CountryCode["PN"] = 'PN'] = "PN";
+ CountryCode[CountryCode["PR"] = 'PR'] = "PR";
+ CountryCode[CountryCode["PS"] = 'PS'] = "PS";
+ CountryCode[CountryCode["PT"] = 'PT'] = "PT";
+ CountryCode[CountryCode["PW"] = 'PW'] = "PW";
+ CountryCode[CountryCode["PY"] = 'PY'] = "PY";
+ CountryCode[CountryCode["QA"] = 'QA'] = "QA";
+ CountryCode[CountryCode["RE"] = 'RE'] = "RE";
+ CountryCode[CountryCode["RO"] = 'RO'] = "RO";
+ CountryCode[CountryCode["RS"] = 'RS'] = "RS";
+ CountryCode[CountryCode["RU"] = 'RU'] = "RU";
+ CountryCode[CountryCode["RW"] = 'RW'] = "RW";
+ CountryCode[CountryCode["SA"] = 'SA'] = "SA";
+ CountryCode[CountryCode["SB"] = 'SB'] = "SB";
+ CountryCode[CountryCode["SC"] = 'SC'] = "SC";
+ CountryCode[CountryCode["SD"] = 'SD'] = "SD";
+ CountryCode[CountryCode["SE"] = 'SE'] = "SE";
+ CountryCode[CountryCode["SG"] = 'SG'] = "SG";
+ CountryCode[CountryCode["SH"] = 'SH'] = "SH";
+ CountryCode[CountryCode["SI"] = 'SI'] = "SI";
+ CountryCode[CountryCode["SJ"] = 'SJ'] = "SJ";
+ CountryCode[CountryCode["SK"] = 'SK'] = "SK";
+ CountryCode[CountryCode["SL"] = 'SL'] = "SL";
+ CountryCode[CountryCode["SM"] = 'SM'] = "SM";
+ CountryCode[CountryCode["SN"] = 'SN'] = "SN";
+ CountryCode[CountryCode["SO"] = 'SO'] = "SO";
+ CountryCode[CountryCode["SR"] = 'SR'] = "SR";
+ CountryCode[CountryCode["SS"] = 'SS'] = "SS";
+ CountryCode[CountryCode["ST"] = 'ST'] = "ST";
+ CountryCode[CountryCode["SV"] = 'SV'] = "SV";
+ CountryCode[CountryCode["SX"] = 'SX'] = "SX";
+ CountryCode[CountryCode["SY"] = 'SY'] = "SY";
+ CountryCode[CountryCode["SZ"] = 'SZ'] = "SZ";
+ CountryCode[CountryCode["TC"] = 'TC'] = "TC";
+ CountryCode[CountryCode["TD"] = 'TD'] = "TD";
+ CountryCode[CountryCode["TG"] = 'TG'] = "TG";
+ CountryCode[CountryCode["TH"] = 'TH'] = "TH";
+ CountryCode[CountryCode["TJ"] = 'TJ'] = "TJ";
+ CountryCode[CountryCode["TK"] = 'TK'] = "TK";
+ CountryCode[CountryCode["TL"] = 'TL'] = "TL";
+ CountryCode[CountryCode["TM"] = 'TM'] = "TM";
+ CountryCode[CountryCode["TN"] = 'TN'] = "TN";
+ CountryCode[CountryCode["TO"] = 'TO'] = "TO";
+ CountryCode[CountryCode["TR"] = 'TR'] = "TR";
+ CountryCode[CountryCode["TT"] = 'TT'] = "TT";
+ CountryCode[CountryCode["TV"] = 'TV'] = "TV";
+ CountryCode[CountryCode["TW"] = 'TW'] = "TW";
+ CountryCode[CountryCode["TZ"] = 'TZ'] = "TZ";
+ CountryCode[CountryCode["UA"] = 'UA'] = "UA";
+ CountryCode[CountryCode["UG"] = 'UG'] = "UG";
+ CountryCode[CountryCode["US"] = 'US'] = "US";
+ CountryCode[CountryCode["UY"] = 'UY'] = "UY";
+ CountryCode[CountryCode["UZ"] = 'UZ'] = "UZ";
+ CountryCode[CountryCode["VA"] = 'VA'] = "VA";
+ CountryCode[CountryCode["VC"] = 'VC'] = "VC";
+ CountryCode[CountryCode["VE"] = 'VE'] = "VE";
+ CountryCode[CountryCode["VG"] = 'VG'] = "VG";
+ CountryCode[CountryCode["VI"] = 'VI'] = "VI";
+ CountryCode[CountryCode["VN"] = 'VN'] = "VN";
+ CountryCode[CountryCode["VU"] = 'VU'] = "VU";
+ CountryCode[CountryCode["WF"] = 'WF'] = "WF";
+ CountryCode[CountryCode["WS"] = 'WS'] = "WS";
+ CountryCode[CountryCode["XK"] = 'XK'] = "XK";
+ CountryCode[CountryCode["YE"] = 'YE'] = "YE";
+ CountryCode[CountryCode["YT"] = 'YT'] = "YT";
+ CountryCode[CountryCode["ZA"] = 'ZA'] = "ZA";
+ CountryCode[CountryCode["ZM"] = 'ZM'] = "ZM";
+ CountryCode[CountryCode["ZW"] = 'ZW'] = "ZW";
+})(CountryCode = exports.CountryCode || (exports.CountryCode = {}));
+//# sourceMappingURL=countryCode.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/countryCode.js.map b/dist/gen/model/accounting/countryCode.js.map
new file mode 100644
index 000000000..453a0c0d9
--- /dev/null
+++ b/dist/gen/model/accounting/countryCode.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"countryCode.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/countryCode.ts"],"names":[],"mappings":";;AAaA,IAAY,WAiPX;AAjPD,WAAY,WAAW;IACnB,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,mCAAc,OAAO,WAAA,CAAA;IACrB,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;IACf,gCAAW,IAAI,QAAA,CAAA;AACnB,CAAC,EAjPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAiPtB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/creditNote.d.ts b/dist/gen/model/accounting/creditNote.d.ts
new file mode 100644
index 000000000..383ad5468
--- /dev/null
+++ b/dist/gen/model/accounting/creditNote.d.ts
@@ -0,0 +1,57 @@
+import { Allocation } from './allocation';
+import { Contact } from './contact';
+import { CurrencyCode } from './currencyCode';
+import { LineAmountTypes } from './lineAmountTypes';
+import { LineItem } from './lineItem';
+import { Payment } from './payment';
+import { ValidationError } from './validationError';
+export declare class CreditNote {
+ 'type'?: CreditNote.TypeEnum;
+ 'contact'?: Contact;
+ 'date'?: string;
+ 'status'?: CreditNote.StatusEnum;
+ 'lineAmountTypes'?: LineAmountTypes;
+ 'lineItems'?: Array;
+ 'subTotal'?: number;
+ 'totalTax'?: number;
+ 'total'?: number;
+ 'updatedDateUTC'?: Date;
+ 'currencyCode'?: CurrencyCode;
+ 'fullyPaidOnDate'?: string;
+ 'creditNoteID'?: string;
+ 'creditNoteNumber'?: string;
+ 'reference'?: string;
+ 'sentToContact'?: boolean;
+ 'currencyRate'?: number;
+ 'remainingCredit'?: number;
+ 'allocations'?: Array;
+ 'payments'?: Array;
+ 'brandingThemeID'?: string;
+ 'hasAttachments'?: boolean;
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace CreditNote {
+ enum TypeEnum {
+ ACCPAYCREDIT,
+ ACCRECCREDIT
+ }
+ enum StatusEnum {
+ DRAFT,
+ SUBMITTED,
+ DELETED,
+ AUTHORISED,
+ PAID,
+ VOIDED
+ }
+}
diff --git a/dist/gen/model/accounting/creditNote.js b/dist/gen/model/accounting/creditNote.js
new file mode 100644
index 000000000..6dd99b04b
--- /dev/null
+++ b/dist/gen/model/accounting/creditNote.js
@@ -0,0 +1,143 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class CreditNote {
+ static getAttributeTypeMap() {
+ return CreditNote.attributeTypeMap;
+ }
+}
+exports.CreditNote = CreditNote;
+CreditNote.discriminator = undefined;
+CreditNote.attributeTypeMap = [
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "CreditNote.TypeEnum"
+ },
+ {
+ "name": "contact",
+ "baseName": "Contact",
+ "type": "Contact"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "CreditNote.StatusEnum"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ },
+ {
+ "name": "lineItems",
+ "baseName": "LineItems",
+ "type": "Array"
+ },
+ {
+ "name": "subTotal",
+ "baseName": "SubTotal",
+ "type": "number"
+ },
+ {
+ "name": "totalTax",
+ "baseName": "TotalTax",
+ "type": "number"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "currencyCode",
+ "baseName": "CurrencyCode",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "fullyPaidOnDate",
+ "baseName": "FullyPaidOnDate",
+ "type": "string"
+ },
+ {
+ "name": "creditNoteID",
+ "baseName": "CreditNoteID",
+ "type": "string"
+ },
+ {
+ "name": "creditNoteNumber",
+ "baseName": "CreditNoteNumber",
+ "type": "string"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "sentToContact",
+ "baseName": "SentToContact",
+ "type": "boolean"
+ },
+ {
+ "name": "currencyRate",
+ "baseName": "CurrencyRate",
+ "type": "number"
+ },
+ {
+ "name": "remainingCredit",
+ "baseName": "RemainingCredit",
+ "type": "number"
+ },
+ {
+ "name": "allocations",
+ "baseName": "Allocations",
+ "type": "Array"
+ },
+ {
+ "name": "payments",
+ "baseName": "Payments",
+ "type": "Array"
+ },
+ {
+ "name": "brandingThemeID",
+ "baseName": "BrandingThemeID",
+ "type": "string"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+(function (CreditNote) {
+ let TypeEnum;
+ (function (TypeEnum) {
+ TypeEnum[TypeEnum["ACCPAYCREDIT"] = 'ACCPAYCREDIT'] = "ACCPAYCREDIT";
+ TypeEnum[TypeEnum["ACCRECCREDIT"] = 'ACCRECCREDIT'] = "ACCRECCREDIT";
+ })(TypeEnum = CreditNote.TypeEnum || (CreditNote.TypeEnum = {}));
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["DRAFT"] = 'DRAFT'] = "DRAFT";
+ StatusEnum[StatusEnum["SUBMITTED"] = 'SUBMITTED'] = "SUBMITTED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ StatusEnum[StatusEnum["PAID"] = 'PAID'] = "PAID";
+ StatusEnum[StatusEnum["VOIDED"] = 'VOIDED'] = "VOIDED";
+ })(StatusEnum = CreditNote.StatusEnum || (CreditNote.StatusEnum = {}));
+})(CreditNote = exports.CreditNote || (exports.CreditNote = {}));
+//# sourceMappingURL=creditNote.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/creditNote.js.map b/dist/gen/model/accounting/creditNote.js.map
new file mode 100644
index 000000000..309f19998
--- /dev/null
+++ b/dist/gen/model/accounting/creditNote.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"creditNote.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/creditNote.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/creditNotes.d.ts b/dist/gen/model/accounting/creditNotes.d.ts
new file mode 100644
index 000000000..2188eb279
--- /dev/null
+++ b/dist/gen/model/accounting/creditNotes.d.ts
@@ -0,0 +1,15 @@
+import { CreditNote } from './creditNote';
+export declare class CreditNotes {
+ 'creditNotes'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/creditNotes.js b/dist/gen/model/accounting/creditNotes.js
new file mode 100644
index 000000000..50b181e21
--- /dev/null
+++ b/dist/gen/model/accounting/creditNotes.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class CreditNotes {
+ static getAttributeTypeMap() {
+ return CreditNotes.attributeTypeMap;
+ }
+}
+exports.CreditNotes = CreditNotes;
+CreditNotes.discriminator = undefined;
+CreditNotes.attributeTypeMap = [
+ {
+ "name": "creditNotes",
+ "baseName": "CreditNotes",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=creditNotes.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/creditNotes.js.map b/dist/gen/model/accounting/creditNotes.js.map
new file mode 100644
index 000000000..fe461730c
--- /dev/null
+++ b/dist/gen/model/accounting/creditNotes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"creditNotes.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/creditNotes.ts"],"names":[],"mappings":";;AAcA,MAAa,WAAW;IAYpB,MAAM,CAAC,mBAAmB;QACtB,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACxC,CAAC;;AAdL,kCAeC;AAZU,yBAAa,GAAuB,SAAS,CAAC;AAE9C,4BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/currencies.d.ts b/dist/gen/model/accounting/currencies.d.ts
new file mode 100644
index 000000000..b6da41612
--- /dev/null
+++ b/dist/gen/model/accounting/currencies.d.ts
@@ -0,0 +1,15 @@
+import { Currency } from './currency';
+export declare class Currencies {
+ 'currencies'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/currencies.js b/dist/gen/model/accounting/currencies.js
new file mode 100644
index 000000000..cb21d83ae
--- /dev/null
+++ b/dist/gen/model/accounting/currencies.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Currencies {
+ static getAttributeTypeMap() {
+ return Currencies.attributeTypeMap;
+ }
+}
+exports.Currencies = Currencies;
+Currencies.discriminator = undefined;
+Currencies.attributeTypeMap = [
+ {
+ "name": "currencies",
+ "baseName": "Currencies",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=currencies.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/currencies.js.map b/dist/gen/model/accounting/currencies.js.map
new file mode 100644
index 000000000..cb6f86323
--- /dev/null
+++ b/dist/gen/model/accounting/currencies.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"currencies.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/currencies.ts"],"names":[],"mappings":";;AAcA,MAAa,UAAU;IAYnB,MAAM,CAAC,mBAAmB;QACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;;AAdL,gCAeC;AAZU,wBAAa,GAAuB,SAAS,CAAC;AAE9C,2BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,iBAAiB;KAC5B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/currency.d.ts b/dist/gen/model/accounting/currency.d.ts
new file mode 100644
index 000000000..d4c26b5c0
--- /dev/null
+++ b/dist/gen/model/accounting/currency.d.ts
@@ -0,0 +1,16 @@
+import { CurrencyCode } from './currencyCode';
+export declare class Currency {
+ 'code'?: CurrencyCode;
+ 'description'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/currency.js b/dist/gen/model/accounting/currency.js
new file mode 100644
index 000000000..836cd7d05
--- /dev/null
+++ b/dist/gen/model/accounting/currency.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Currency {
+ static getAttributeTypeMap() {
+ return Currency.attributeTypeMap;
+ }
+}
+exports.Currency = Currency;
+Currency.discriminator = undefined;
+Currency.attributeTypeMap = [
+ {
+ "name": "code",
+ "baseName": "Code",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "description",
+ "baseName": "Description",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=currency.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/currency.js.map b/dist/gen/model/accounting/currency.js.map
new file mode 100644
index 000000000..452175a31
--- /dev/null
+++ b/dist/gen/model/accounting/currency.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/currency.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IAqBjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAvBL,4BAwBC;AAjBU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,cAAc;KACzB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/currencyCode.d.ts b/dist/gen/model/accounting/currencyCode.d.ts
new file mode 100644
index 000000000..e9065a8ff
--- /dev/null
+++ b/dist/gen/model/accounting/currencyCode.d.ts
@@ -0,0 +1,164 @@
+export declare enum CurrencyCode {
+ AED,
+ AFN,
+ ALL,
+ AMD,
+ ANG,
+ AOA,
+ ARS,
+ AUD,
+ AWG,
+ AZN,
+ BAM,
+ BBD,
+ BDT,
+ BGN,
+ BHD,
+ BIF,
+ BMD,
+ BND,
+ BOB,
+ BRL,
+ BSD,
+ BTN,
+ BWP,
+ BYN,
+ BZD,
+ CAD,
+ CDF,
+ CHF,
+ CLP,
+ CNY,
+ COP,
+ CRC,
+ CUC,
+ CUP,
+ CVE,
+ CZK,
+ DJF,
+ DKK,
+ DOP,
+ DZD,
+ EGP,
+ ERN,
+ ETB,
+ EUR,
+ FJD,
+ FKP,
+ GBP,
+ GEL,
+ GGP,
+ GHS,
+ GIP,
+ GMD,
+ GNF,
+ GTQ,
+ GYD,
+ HKD,
+ HNL,
+ HRK,
+ HTG,
+ HUF,
+ IDR,
+ ILS,
+ IMP,
+ INR,
+ IQD,
+ IRR,
+ ISK,
+ JEP,
+ JMD,
+ JOD,
+ JPY,
+ KES,
+ KGS,
+ KHR,
+ KMF,
+ KPW,
+ KRW,
+ KWD,
+ KYD,
+ KZT,
+ LAK,
+ LBP,
+ LKR,
+ LRD,
+ LSL,
+ LYD,
+ MAD,
+ MDL,
+ MGA,
+ MKD,
+ MMK,
+ MNT,
+ MOP,
+ MRU,
+ MUR,
+ MVR,
+ MWK,
+ MXN,
+ MYR,
+ MZN,
+ NAD,
+ NGN,
+ NIO,
+ NOK,
+ NPR,
+ NZD,
+ OMR,
+ PAB,
+ PEN,
+ PGK,
+ PHP,
+ PKR,
+ PLN,
+ PYG,
+ QAR,
+ RON,
+ RSD,
+ RUB,
+ RWF,
+ SAR,
+ SBD,
+ SCR,
+ SDG,
+ SEK,
+ SGD,
+ SHP,
+ SLL,
+ SOS,
+ SPL,
+ SRD,
+ STN,
+ SVC,
+ SYP,
+ SZL,
+ THB,
+ TJS,
+ TMT,
+ TND,
+ TOP,
+ TRY,
+ TTD,
+ TVD,
+ TWD,
+ TZS,
+ UAH,
+ UGX,
+ USD,
+ UYU,
+ UZS,
+ VEF,
+ VND,
+ VUV,
+ WST,
+ XAF,
+ XCD,
+ XDR,
+ XOF,
+ XPF,
+ YER,
+ ZAR,
+ ZMW,
+ ZWD
+}
diff --git a/dist/gen/model/accounting/currencyCode.js b/dist/gen/model/accounting/currencyCode.js
new file mode 100644
index 000000000..a752fba62
--- /dev/null
+++ b/dist/gen/model/accounting/currencyCode.js
@@ -0,0 +1,168 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var CurrencyCode;
+(function (CurrencyCode) {
+ CurrencyCode[CurrencyCode["AED"] = 'AED'] = "AED";
+ CurrencyCode[CurrencyCode["AFN"] = 'AFN'] = "AFN";
+ CurrencyCode[CurrencyCode["ALL"] = 'ALL'] = "ALL";
+ CurrencyCode[CurrencyCode["AMD"] = 'AMD'] = "AMD";
+ CurrencyCode[CurrencyCode["ANG"] = 'ANG'] = "ANG";
+ CurrencyCode[CurrencyCode["AOA"] = 'AOA'] = "AOA";
+ CurrencyCode[CurrencyCode["ARS"] = 'ARS'] = "ARS";
+ CurrencyCode[CurrencyCode["AUD"] = 'AUD'] = "AUD";
+ CurrencyCode[CurrencyCode["AWG"] = 'AWG'] = "AWG";
+ CurrencyCode[CurrencyCode["AZN"] = 'AZN'] = "AZN";
+ CurrencyCode[CurrencyCode["BAM"] = 'BAM'] = "BAM";
+ CurrencyCode[CurrencyCode["BBD"] = 'BBD'] = "BBD";
+ CurrencyCode[CurrencyCode["BDT"] = 'BDT'] = "BDT";
+ CurrencyCode[CurrencyCode["BGN"] = 'BGN'] = "BGN";
+ CurrencyCode[CurrencyCode["BHD"] = 'BHD'] = "BHD";
+ CurrencyCode[CurrencyCode["BIF"] = 'BIF'] = "BIF";
+ CurrencyCode[CurrencyCode["BMD"] = 'BMD'] = "BMD";
+ CurrencyCode[CurrencyCode["BND"] = 'BND'] = "BND";
+ CurrencyCode[CurrencyCode["BOB"] = 'BOB'] = "BOB";
+ CurrencyCode[CurrencyCode["BRL"] = 'BRL'] = "BRL";
+ CurrencyCode[CurrencyCode["BSD"] = 'BSD'] = "BSD";
+ CurrencyCode[CurrencyCode["BTN"] = 'BTN'] = "BTN";
+ CurrencyCode[CurrencyCode["BWP"] = 'BWP'] = "BWP";
+ CurrencyCode[CurrencyCode["BYN"] = 'BYN'] = "BYN";
+ CurrencyCode[CurrencyCode["BZD"] = 'BZD'] = "BZD";
+ CurrencyCode[CurrencyCode["CAD"] = 'CAD'] = "CAD";
+ CurrencyCode[CurrencyCode["CDF"] = 'CDF'] = "CDF";
+ CurrencyCode[CurrencyCode["CHF"] = 'CHF'] = "CHF";
+ CurrencyCode[CurrencyCode["CLP"] = 'CLP'] = "CLP";
+ CurrencyCode[CurrencyCode["CNY"] = 'CNY'] = "CNY";
+ CurrencyCode[CurrencyCode["COP"] = 'COP'] = "COP";
+ CurrencyCode[CurrencyCode["CRC"] = 'CRC'] = "CRC";
+ CurrencyCode[CurrencyCode["CUC"] = 'CUC'] = "CUC";
+ CurrencyCode[CurrencyCode["CUP"] = 'CUP'] = "CUP";
+ CurrencyCode[CurrencyCode["CVE"] = 'CVE'] = "CVE";
+ CurrencyCode[CurrencyCode["CZK"] = 'CZK'] = "CZK";
+ CurrencyCode[CurrencyCode["DJF"] = 'DJF'] = "DJF";
+ CurrencyCode[CurrencyCode["DKK"] = 'DKK'] = "DKK";
+ CurrencyCode[CurrencyCode["DOP"] = 'DOP'] = "DOP";
+ CurrencyCode[CurrencyCode["DZD"] = 'DZD'] = "DZD";
+ CurrencyCode[CurrencyCode["EGP"] = 'EGP'] = "EGP";
+ CurrencyCode[CurrencyCode["ERN"] = 'ERN'] = "ERN";
+ CurrencyCode[CurrencyCode["ETB"] = 'ETB'] = "ETB";
+ CurrencyCode[CurrencyCode["EUR"] = 'EUR'] = "EUR";
+ CurrencyCode[CurrencyCode["FJD"] = 'FJD'] = "FJD";
+ CurrencyCode[CurrencyCode["FKP"] = 'FKP'] = "FKP";
+ CurrencyCode[CurrencyCode["GBP"] = 'GBP'] = "GBP";
+ CurrencyCode[CurrencyCode["GEL"] = 'GEL'] = "GEL";
+ CurrencyCode[CurrencyCode["GGP"] = 'GGP'] = "GGP";
+ CurrencyCode[CurrencyCode["GHS"] = 'GHS'] = "GHS";
+ CurrencyCode[CurrencyCode["GIP"] = 'GIP'] = "GIP";
+ CurrencyCode[CurrencyCode["GMD"] = 'GMD'] = "GMD";
+ CurrencyCode[CurrencyCode["GNF"] = 'GNF'] = "GNF";
+ CurrencyCode[CurrencyCode["GTQ"] = 'GTQ'] = "GTQ";
+ CurrencyCode[CurrencyCode["GYD"] = 'GYD'] = "GYD";
+ CurrencyCode[CurrencyCode["HKD"] = 'HKD'] = "HKD";
+ CurrencyCode[CurrencyCode["HNL"] = 'HNL'] = "HNL";
+ CurrencyCode[CurrencyCode["HRK"] = 'HRK'] = "HRK";
+ CurrencyCode[CurrencyCode["HTG"] = 'HTG'] = "HTG";
+ CurrencyCode[CurrencyCode["HUF"] = 'HUF'] = "HUF";
+ CurrencyCode[CurrencyCode["IDR"] = 'IDR'] = "IDR";
+ CurrencyCode[CurrencyCode["ILS"] = 'ILS'] = "ILS";
+ CurrencyCode[CurrencyCode["IMP"] = 'IMP'] = "IMP";
+ CurrencyCode[CurrencyCode["INR"] = 'INR'] = "INR";
+ CurrencyCode[CurrencyCode["IQD"] = 'IQD'] = "IQD";
+ CurrencyCode[CurrencyCode["IRR"] = 'IRR'] = "IRR";
+ CurrencyCode[CurrencyCode["ISK"] = 'ISK'] = "ISK";
+ CurrencyCode[CurrencyCode["JEP"] = 'JEP'] = "JEP";
+ CurrencyCode[CurrencyCode["JMD"] = 'JMD'] = "JMD";
+ CurrencyCode[CurrencyCode["JOD"] = 'JOD'] = "JOD";
+ CurrencyCode[CurrencyCode["JPY"] = 'JPY'] = "JPY";
+ CurrencyCode[CurrencyCode["KES"] = 'KES'] = "KES";
+ CurrencyCode[CurrencyCode["KGS"] = 'KGS'] = "KGS";
+ CurrencyCode[CurrencyCode["KHR"] = 'KHR'] = "KHR";
+ CurrencyCode[CurrencyCode["KMF"] = 'KMF'] = "KMF";
+ CurrencyCode[CurrencyCode["KPW"] = 'KPW'] = "KPW";
+ CurrencyCode[CurrencyCode["KRW"] = 'KRW'] = "KRW";
+ CurrencyCode[CurrencyCode["KWD"] = 'KWD'] = "KWD";
+ CurrencyCode[CurrencyCode["KYD"] = 'KYD'] = "KYD";
+ CurrencyCode[CurrencyCode["KZT"] = 'KZT'] = "KZT";
+ CurrencyCode[CurrencyCode["LAK"] = 'LAK'] = "LAK";
+ CurrencyCode[CurrencyCode["LBP"] = 'LBP'] = "LBP";
+ CurrencyCode[CurrencyCode["LKR"] = 'LKR'] = "LKR";
+ CurrencyCode[CurrencyCode["LRD"] = 'LRD'] = "LRD";
+ CurrencyCode[CurrencyCode["LSL"] = 'LSL'] = "LSL";
+ CurrencyCode[CurrencyCode["LYD"] = 'LYD'] = "LYD";
+ CurrencyCode[CurrencyCode["MAD"] = 'MAD'] = "MAD";
+ CurrencyCode[CurrencyCode["MDL"] = 'MDL'] = "MDL";
+ CurrencyCode[CurrencyCode["MGA"] = 'MGA'] = "MGA";
+ CurrencyCode[CurrencyCode["MKD"] = 'MKD'] = "MKD";
+ CurrencyCode[CurrencyCode["MMK"] = 'MMK'] = "MMK";
+ CurrencyCode[CurrencyCode["MNT"] = 'MNT'] = "MNT";
+ CurrencyCode[CurrencyCode["MOP"] = 'MOP'] = "MOP";
+ CurrencyCode[CurrencyCode["MRU"] = 'MRU'] = "MRU";
+ CurrencyCode[CurrencyCode["MUR"] = 'MUR'] = "MUR";
+ CurrencyCode[CurrencyCode["MVR"] = 'MVR'] = "MVR";
+ CurrencyCode[CurrencyCode["MWK"] = 'MWK'] = "MWK";
+ CurrencyCode[CurrencyCode["MXN"] = 'MXN'] = "MXN";
+ CurrencyCode[CurrencyCode["MYR"] = 'MYR'] = "MYR";
+ CurrencyCode[CurrencyCode["MZN"] = 'MZN'] = "MZN";
+ CurrencyCode[CurrencyCode["NAD"] = 'NAD'] = "NAD";
+ CurrencyCode[CurrencyCode["NGN"] = 'NGN'] = "NGN";
+ CurrencyCode[CurrencyCode["NIO"] = 'NIO'] = "NIO";
+ CurrencyCode[CurrencyCode["NOK"] = 'NOK'] = "NOK";
+ CurrencyCode[CurrencyCode["NPR"] = 'NPR'] = "NPR";
+ CurrencyCode[CurrencyCode["NZD"] = 'NZD'] = "NZD";
+ CurrencyCode[CurrencyCode["OMR"] = 'OMR'] = "OMR";
+ CurrencyCode[CurrencyCode["PAB"] = 'PAB'] = "PAB";
+ CurrencyCode[CurrencyCode["PEN"] = 'PEN'] = "PEN";
+ CurrencyCode[CurrencyCode["PGK"] = 'PGK'] = "PGK";
+ CurrencyCode[CurrencyCode["PHP"] = 'PHP'] = "PHP";
+ CurrencyCode[CurrencyCode["PKR"] = 'PKR'] = "PKR";
+ CurrencyCode[CurrencyCode["PLN"] = 'PLN'] = "PLN";
+ CurrencyCode[CurrencyCode["PYG"] = 'PYG'] = "PYG";
+ CurrencyCode[CurrencyCode["QAR"] = 'QAR'] = "QAR";
+ CurrencyCode[CurrencyCode["RON"] = 'RON'] = "RON";
+ CurrencyCode[CurrencyCode["RSD"] = 'RSD'] = "RSD";
+ CurrencyCode[CurrencyCode["RUB"] = 'RUB'] = "RUB";
+ CurrencyCode[CurrencyCode["RWF"] = 'RWF'] = "RWF";
+ CurrencyCode[CurrencyCode["SAR"] = 'SAR'] = "SAR";
+ CurrencyCode[CurrencyCode["SBD"] = 'SBD'] = "SBD";
+ CurrencyCode[CurrencyCode["SCR"] = 'SCR'] = "SCR";
+ CurrencyCode[CurrencyCode["SDG"] = 'SDG'] = "SDG";
+ CurrencyCode[CurrencyCode["SEK"] = 'SEK'] = "SEK";
+ CurrencyCode[CurrencyCode["SGD"] = 'SGD'] = "SGD";
+ CurrencyCode[CurrencyCode["SHP"] = 'SHP'] = "SHP";
+ CurrencyCode[CurrencyCode["SLL"] = 'SLL'] = "SLL";
+ CurrencyCode[CurrencyCode["SOS"] = 'SOS'] = "SOS";
+ CurrencyCode[CurrencyCode["SPL"] = 'SPL'] = "SPL";
+ CurrencyCode[CurrencyCode["SRD"] = 'SRD'] = "SRD";
+ CurrencyCode[CurrencyCode["STN"] = 'STN'] = "STN";
+ CurrencyCode[CurrencyCode["SVC"] = 'SVC'] = "SVC";
+ CurrencyCode[CurrencyCode["SYP"] = 'SYP'] = "SYP";
+ CurrencyCode[CurrencyCode["SZL"] = 'SZL'] = "SZL";
+ CurrencyCode[CurrencyCode["THB"] = 'THB'] = "THB";
+ CurrencyCode[CurrencyCode["TJS"] = 'TJS'] = "TJS";
+ CurrencyCode[CurrencyCode["TMT"] = 'TMT'] = "TMT";
+ CurrencyCode[CurrencyCode["TND"] = 'TND'] = "TND";
+ CurrencyCode[CurrencyCode["TOP"] = 'TOP'] = "TOP";
+ CurrencyCode[CurrencyCode["TRY"] = 'TRY'] = "TRY";
+ CurrencyCode[CurrencyCode["TTD"] = 'TTD'] = "TTD";
+ CurrencyCode[CurrencyCode["TVD"] = 'TVD'] = "TVD";
+ CurrencyCode[CurrencyCode["TWD"] = 'TWD'] = "TWD";
+ CurrencyCode[CurrencyCode["TZS"] = 'TZS'] = "TZS";
+ CurrencyCode[CurrencyCode["UAH"] = 'UAH'] = "UAH";
+ CurrencyCode[CurrencyCode["UGX"] = 'UGX'] = "UGX";
+ CurrencyCode[CurrencyCode["USD"] = 'USD'] = "USD";
+ CurrencyCode[CurrencyCode["UYU"] = 'UYU'] = "UYU";
+ CurrencyCode[CurrencyCode["UZS"] = 'UZS'] = "UZS";
+ CurrencyCode[CurrencyCode["VEF"] = 'VEF'] = "VEF";
+ CurrencyCode[CurrencyCode["VND"] = 'VND'] = "VND";
+ CurrencyCode[CurrencyCode["VUV"] = 'VUV'] = "VUV";
+ CurrencyCode[CurrencyCode["WST"] = 'WST'] = "WST";
+ CurrencyCode[CurrencyCode["XAF"] = 'XAF'] = "XAF";
+ CurrencyCode[CurrencyCode["XCD"] = 'XCD'] = "XCD";
+ CurrencyCode[CurrencyCode["XDR"] = 'XDR'] = "XDR";
+ CurrencyCode[CurrencyCode["XOF"] = 'XOF'] = "XOF";
+ CurrencyCode[CurrencyCode["XPF"] = 'XPF'] = "XPF";
+ CurrencyCode[CurrencyCode["YER"] = 'YER'] = "YER";
+ CurrencyCode[CurrencyCode["ZAR"] = 'ZAR'] = "ZAR";
+ CurrencyCode[CurrencyCode["ZMW"] = 'ZMW'] = "ZMW";
+ CurrencyCode[CurrencyCode["ZWD"] = 'ZWD'] = "ZWD";
+})(CurrencyCode = exports.CurrencyCode || (exports.CurrencyCode = {}));
+//# sourceMappingURL=currencyCode.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/currencyCode.js.map b/dist/gen/model/accounting/currencyCode.js.map
new file mode 100644
index 000000000..3124391b2
--- /dev/null
+++ b/dist/gen/model/accounting/currencyCode.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"currencyCode.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/currencyCode.ts"],"names":[],"mappings":";;AAgBA,IAAY,YAmKX;AAnKD,WAAY,YAAY;IACpB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;IACjB,mCAAY,KAAK,SAAA,CAAA;AACrB,CAAC,EAnKW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAmKvB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/element.d.ts b/dist/gen/model/accounting/element.d.ts
new file mode 100644
index 000000000..b308b7a6b
--- /dev/null
+++ b/dist/gen/model/accounting/element.d.ts
@@ -0,0 +1,15 @@
+import { ValidationError } from './validationError';
+export declare class Element {
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/element.js b/dist/gen/model/accounting/element.js
new file mode 100644
index 000000000..f7d4f0d10
--- /dev/null
+++ b/dist/gen/model/accounting/element.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Element {
+ static getAttributeTypeMap() {
+ return Element.attributeTypeMap;
+ }
+}
+exports.Element = Element;
+Element.discriminator = undefined;
+Element.attributeTypeMap = [
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=element.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/element.js.map b/dist/gen/model/accounting/element.js.map
new file mode 100644
index 000000000..f41f187f9
--- /dev/null
+++ b/dist/gen/model/accounting/element.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/element.ts"],"names":[],"mappings":";;AAcA,MAAa,OAAO;IAehB,MAAM,CAAC,mBAAmB;QACtB,OAAO,OAAO,CAAC,gBAAgB,CAAC;IACpC,CAAC;;AAjBL,0BAkBC;AAZU,qBAAa,GAAuB,SAAS,CAAC;AAE9C,wBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,wBAAwB;KACnC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/employee.d.ts b/dist/gen/model/accounting/employee.d.ts
new file mode 100644
index 000000000..9ba95b49b
--- /dev/null
+++ b/dist/gen/model/accounting/employee.d.ts
@@ -0,0 +1,27 @@
+import { ExternalLink } from './externalLink';
+export declare class Employee {
+ 'employeeID'?: string;
+ 'status'?: Employee.StatusEnum;
+ 'firstName'?: string;
+ 'lastName'?: string;
+ 'externalLink'?: ExternalLink;
+ 'updatedDateUTC'?: Date;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Employee {
+ enum StatusEnum {
+ ACTIVE,
+ ARCHIVED,
+ GDPRREQUEST
+ }
+}
diff --git a/dist/gen/model/accounting/employee.js b/dist/gen/model/accounting/employee.js
new file mode 100644
index 000000000..4063183fe
--- /dev/null
+++ b/dist/gen/model/accounting/employee.js
@@ -0,0 +1,50 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Employee {
+ static getAttributeTypeMap() {
+ return Employee.attributeTypeMap;
+ }
+}
+exports.Employee = Employee;
+Employee.discriminator = undefined;
+Employee.attributeTypeMap = [
+ {
+ "name": "employeeID",
+ "baseName": "EmployeeID",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "Employee.StatusEnum"
+ },
+ {
+ "name": "firstName",
+ "baseName": "FirstName",
+ "type": "string"
+ },
+ {
+ "name": "lastName",
+ "baseName": "LastName",
+ "type": "string"
+ },
+ {
+ "name": "externalLink",
+ "baseName": "ExternalLink",
+ "type": "ExternalLink"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ }
+];
+(function (Employee) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["ACTIVE"] = 'ACTIVE'] = "ACTIVE";
+ StatusEnum[StatusEnum["ARCHIVED"] = 'ARCHIVED'] = "ARCHIVED";
+ StatusEnum[StatusEnum["GDPRREQUEST"] = 'GDPRREQUEST'] = "GDPRREQUEST";
+ })(StatusEnum = Employee.StatusEnum || (Employee.StatusEnum = {}));
+})(Employee = exports.Employee || (exports.Employee = {}));
+//# sourceMappingURL=employee.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/employee.js.map b/dist/gen/model/accounting/employee.js.map
new file mode 100644
index 000000000..fd367d7d7
--- /dev/null
+++ b/dist/gen/model/accounting/employee.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"employee.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/employee.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IAsDjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAxDL,4BAyDC;AArCU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,qBAAqB;KAChC;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,cAAc;KACzB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;CAAK,CAAC;AAOf,WAAiB,QAAQ;IACrB,IAAY,UAIX;IAJD,WAAY,UAAU;QAClB,kCAAe,QAAQ,YAAA,CAAA;QACvB,oCAAiB,UAAU,cAAA,CAAA;QAC3B,uCAAoB,aAAa,iBAAA,CAAA;IACrC,CAAC,EAJW,UAAU,GAAV,mBAAU,KAAV,mBAAU,QAIrB;AACL,CAAC,EANgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAMxB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/employees.d.ts b/dist/gen/model/accounting/employees.d.ts
new file mode 100644
index 000000000..a3def9a90
--- /dev/null
+++ b/dist/gen/model/accounting/employees.d.ts
@@ -0,0 +1,15 @@
+import { Employee } from './employee';
+export declare class Employees {
+ 'employees'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/employees.js b/dist/gen/model/accounting/employees.js
new file mode 100644
index 000000000..c67553da1
--- /dev/null
+++ b/dist/gen/model/accounting/employees.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Employees {
+ static getAttributeTypeMap() {
+ return Employees.attributeTypeMap;
+ }
+}
+exports.Employees = Employees;
+Employees.discriminator = undefined;
+Employees.attributeTypeMap = [
+ {
+ "name": "employees",
+ "baseName": "Employees",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=employees.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/employees.js.map b/dist/gen/model/accounting/employees.js.map
new file mode 100644
index 000000000..800c644b8
--- /dev/null
+++ b/dist/gen/model/accounting/employees.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"employees.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/employees.ts"],"names":[],"mappings":";;AAcA,MAAa,SAAS;IAYlB,MAAM,CAAC,mBAAmB;QACtB,OAAO,SAAS,CAAC,gBAAgB,CAAC;IACtC,CAAC;;AAdL,8BAeC;AAZU,uBAAa,GAAuB,SAAS,CAAC;AAE9C,0BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,iBAAiB;KAC5B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/expenseClaim.d.ts b/dist/gen/model/accounting/expenseClaim.d.ts
new file mode 100644
index 000000000..952cb3600
--- /dev/null
+++ b/dist/gen/model/accounting/expenseClaim.d.ts
@@ -0,0 +1,37 @@
+import { Payment } from './payment';
+import { Receipt } from './receipt';
+import { User } from './user';
+export declare class ExpenseClaim {
+ 'expenseClaimID'?: string;
+ 'status'?: ExpenseClaim.StatusEnum;
+ 'payments'?: Array;
+ 'user'?: User;
+ 'receipts'?: Array;
+ 'updatedDateUTC'?: Date;
+ 'total'?: number;
+ 'amountDue'?: number;
+ 'amountPaid'?: number;
+ 'paymentDueDate'?: string;
+ 'reportingDate'?: string;
+ 'receiptID'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace ExpenseClaim {
+ enum StatusEnum {
+ SUBMITTED,
+ AUTHORISED,
+ PAID,
+ VOIDED,
+ DELETED
+ }
+}
diff --git a/dist/gen/model/accounting/expenseClaim.js b/dist/gen/model/accounting/expenseClaim.js
new file mode 100644
index 000000000..6c01a9106
--- /dev/null
+++ b/dist/gen/model/accounting/expenseClaim.js
@@ -0,0 +1,82 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ExpenseClaim {
+ static getAttributeTypeMap() {
+ return ExpenseClaim.attributeTypeMap;
+ }
+}
+exports.ExpenseClaim = ExpenseClaim;
+ExpenseClaim.discriminator = undefined;
+ExpenseClaim.attributeTypeMap = [
+ {
+ "name": "expenseClaimID",
+ "baseName": "ExpenseClaimID",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "ExpenseClaim.StatusEnum"
+ },
+ {
+ "name": "payments",
+ "baseName": "Payments",
+ "type": "Array"
+ },
+ {
+ "name": "user",
+ "baseName": "User",
+ "type": "User"
+ },
+ {
+ "name": "receipts",
+ "baseName": "Receipts",
+ "type": "Array"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "amountDue",
+ "baseName": "AmountDue",
+ "type": "number"
+ },
+ {
+ "name": "amountPaid",
+ "baseName": "AmountPaid",
+ "type": "number"
+ },
+ {
+ "name": "paymentDueDate",
+ "baseName": "PaymentDueDate",
+ "type": "string"
+ },
+ {
+ "name": "reportingDate",
+ "baseName": "ReportingDate",
+ "type": "string"
+ },
+ {
+ "name": "receiptID",
+ "baseName": "ReceiptID",
+ "type": "string"
+ }
+];
+(function (ExpenseClaim) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["SUBMITTED"] = 'SUBMITTED'] = "SUBMITTED";
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ StatusEnum[StatusEnum["PAID"] = 'PAID'] = "PAID";
+ StatusEnum[StatusEnum["VOIDED"] = 'VOIDED'] = "VOIDED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ })(StatusEnum = ExpenseClaim.StatusEnum || (ExpenseClaim.StatusEnum = {}));
+})(ExpenseClaim = exports.ExpenseClaim || (exports.ExpenseClaim = {}));
+//# sourceMappingURL=expenseClaim.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/expenseClaim.js.map b/dist/gen/model/accounting/expenseClaim.js.map
new file mode 100644
index 000000000..09f84d1ed
--- /dev/null
+++ b/dist/gen/model/accounting/expenseClaim.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"expenseClaim.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/expenseClaim.ts"],"names":[],"mappings":";;AAgBA,MAAa,YAAY;IA4GrB,MAAM,CAAC,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACzC,CAAC;;AA9GL,oCA+GC;AAnEU,0BAAa,GAAuB,SAAS,CAAC;AAE9C,6BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,yBAAyB;KACpC;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC;AAOf,WAAiB,YAAY;IACzB,IAAY,UAMX;IAND,WAAY,UAAU;QAClB,qCAAkB,WAAW,eAAA,CAAA;QAC7B,sCAAmB,YAAY,gBAAA,CAAA;QAC/B,gCAAa,MAAM,UAAA,CAAA;QACnB,kCAAe,QAAQ,YAAA,CAAA;QACvB,mCAAgB,SAAS,aAAA,CAAA;IAC7B,CAAC,EANW,UAAU,GAAV,uBAAU,KAAV,uBAAU,QAMrB;AACL,CAAC,EARgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQ5B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/expenseClaims.d.ts b/dist/gen/model/accounting/expenseClaims.d.ts
new file mode 100644
index 000000000..4e5a76719
--- /dev/null
+++ b/dist/gen/model/accounting/expenseClaims.d.ts
@@ -0,0 +1,15 @@
+import { ExpenseClaim } from './expenseClaim';
+export declare class ExpenseClaims {
+ 'expenseClaims'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/expenseClaims.js b/dist/gen/model/accounting/expenseClaims.js
new file mode 100644
index 000000000..5188e2d1b
--- /dev/null
+++ b/dist/gen/model/accounting/expenseClaims.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ExpenseClaims {
+ static getAttributeTypeMap() {
+ return ExpenseClaims.attributeTypeMap;
+ }
+}
+exports.ExpenseClaims = ExpenseClaims;
+ExpenseClaims.discriminator = undefined;
+ExpenseClaims.attributeTypeMap = [
+ {
+ "name": "expenseClaims",
+ "baseName": "ExpenseClaims",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=expenseClaims.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/expenseClaims.js.map b/dist/gen/model/accounting/expenseClaims.js.map
new file mode 100644
index 000000000..443031b26
--- /dev/null
+++ b/dist/gen/model/accounting/expenseClaims.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"expenseClaims.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/expenseClaims.ts"],"names":[],"mappings":";;AAcA,MAAa,aAAa;IAYtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AAdL,sCAeC;AAZU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,qBAAqB;KAChC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/externalLink.d.ts b/dist/gen/model/accounting/externalLink.d.ts
new file mode 100644
index 000000000..20889ce5f
--- /dev/null
+++ b/dist/gen/model/accounting/externalLink.d.ts
@@ -0,0 +1,25 @@
+export declare class ExternalLink {
+ 'linkType'?: ExternalLink.LinkTypeEnum;
+ 'url'?: string;
+ 'description'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace ExternalLink {
+ enum LinkTypeEnum {
+ Facebook,
+ GooglePlus,
+ LinkedIn,
+ Twitter,
+ Website
+ }
+}
diff --git a/dist/gen/model/accounting/externalLink.js b/dist/gen/model/accounting/externalLink.js
new file mode 100644
index 000000000..caa33ce9f
--- /dev/null
+++ b/dist/gen/model/accounting/externalLink.js
@@ -0,0 +1,37 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ExternalLink {
+ static getAttributeTypeMap() {
+ return ExternalLink.attributeTypeMap;
+ }
+}
+exports.ExternalLink = ExternalLink;
+ExternalLink.discriminator = undefined;
+ExternalLink.attributeTypeMap = [
+ {
+ "name": "linkType",
+ "baseName": "LinkType",
+ "type": "ExternalLink.LinkTypeEnum"
+ },
+ {
+ "name": "url",
+ "baseName": "Url",
+ "type": "string"
+ },
+ {
+ "name": "description",
+ "baseName": "Description",
+ "type": "string"
+ }
+];
+(function (ExternalLink) {
+ let LinkTypeEnum;
+ (function (LinkTypeEnum) {
+ LinkTypeEnum[LinkTypeEnum["Facebook"] = 'Facebook'] = "Facebook";
+ LinkTypeEnum[LinkTypeEnum["GooglePlus"] = 'GooglePlus'] = "GooglePlus";
+ LinkTypeEnum[LinkTypeEnum["LinkedIn"] = 'LinkedIn'] = "LinkedIn";
+ LinkTypeEnum[LinkTypeEnum["Twitter"] = 'Twitter'] = "Twitter";
+ LinkTypeEnum[LinkTypeEnum["Website"] = 'Website'] = "Website";
+ })(LinkTypeEnum = ExternalLink.LinkTypeEnum || (ExternalLink.LinkTypeEnum = {}));
+})(ExternalLink = exports.ExternalLink || (exports.ExternalLink = {}));
+//# sourceMappingURL=externalLink.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/externalLink.js.map b/dist/gen/model/accounting/externalLink.js.map
new file mode 100644
index 000000000..fc054314f
--- /dev/null
+++ b/dist/gen/model/accounting/externalLink.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"externalLink.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/externalLink.ts"],"names":[],"mappings":";;AAaA,MAAa,YAAY;IA8BrB,MAAM,CAAC,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACzC,CAAC;;AAhCL,oCAiCC;AAtBU,0BAAa,GAAuB,SAAS,CAAC;AAE9C,6BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,2BAA2B;KACtC;IACD;QACI,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC;AAOf,WAAiB,YAAY;IACzB,IAAY,YAMX;IAND,WAAY,YAAY;QACpB,wCAAiB,UAAU,cAAA,CAAA;QAC3B,0CAAmB,YAAY,gBAAA,CAAA;QAC/B,wCAAiB,UAAU,cAAA,CAAA;QAC3B,uCAAgB,SAAS,aAAA,CAAA;QACzB,uCAAgB,SAAS,aAAA,CAAA;IAC7B,CAAC,EANW,YAAY,GAAZ,yBAAY,KAAZ,yBAAY,QAMvB;AACL,CAAC,EARgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQ5B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/historyRecord.d.ts b/dist/gen/model/accounting/historyRecord.d.ts
new file mode 100644
index 000000000..e94a1c119
--- /dev/null
+++ b/dist/gen/model/accounting/historyRecord.d.ts
@@ -0,0 +1,17 @@
+export declare class HistoryRecord {
+ 'details'?: string;
+ 'changes'?: string;
+ 'user'?: string;
+ 'dateUTC'?: Date;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/historyRecord.js b/dist/gen/model/accounting/historyRecord.js
new file mode 100644
index 000000000..d680d8014
--- /dev/null
+++ b/dist/gen/model/accounting/historyRecord.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class HistoryRecord {
+ static getAttributeTypeMap() {
+ return HistoryRecord.attributeTypeMap;
+ }
+}
+exports.HistoryRecord = HistoryRecord;
+HistoryRecord.discriminator = undefined;
+HistoryRecord.attributeTypeMap = [
+ {
+ "name": "details",
+ "baseName": "Details",
+ "type": "string"
+ },
+ {
+ "name": "changes",
+ "baseName": "Changes",
+ "type": "string"
+ },
+ {
+ "name": "user",
+ "baseName": "User",
+ "type": "string"
+ },
+ {
+ "name": "dateUTC",
+ "baseName": "DateUTC",
+ "type": "Date"
+ }
+];
+//# sourceMappingURL=historyRecord.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/historyRecord.js.map b/dist/gen/model/accounting/historyRecord.js.map
new file mode 100644
index 000000000..e1c973d90
--- /dev/null
+++ b/dist/gen/model/accounting/historyRecord.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"historyRecord.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/historyRecord.ts"],"names":[],"mappings":";;AAaA,MAAa,aAAa;IA0CtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AA5CL,sCA6CC;AA3BU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,MAAM;KACjB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/historyRecords.d.ts b/dist/gen/model/accounting/historyRecords.d.ts
new file mode 100644
index 000000000..a8a98203d
--- /dev/null
+++ b/dist/gen/model/accounting/historyRecords.d.ts
@@ -0,0 +1,15 @@
+import { HistoryRecord } from './historyRecord';
+export declare class HistoryRecords {
+ 'historyRecords'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/historyRecords.js b/dist/gen/model/accounting/historyRecords.js
new file mode 100644
index 000000000..2c5960f9a
--- /dev/null
+++ b/dist/gen/model/accounting/historyRecords.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class HistoryRecords {
+ static getAttributeTypeMap() {
+ return HistoryRecords.attributeTypeMap;
+ }
+}
+exports.HistoryRecords = HistoryRecords;
+HistoryRecords.discriminator = undefined;
+HistoryRecords.attributeTypeMap = [
+ {
+ "name": "historyRecords",
+ "baseName": "HistoryRecords",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=historyRecords.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/historyRecords.js.map b/dist/gen/model/accounting/historyRecords.js.map
new file mode 100644
index 000000000..f4f91e30a
--- /dev/null
+++ b/dist/gen/model/accounting/historyRecords.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"historyRecords.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/historyRecords.ts"],"names":[],"mappings":";;AAcA,MAAa,cAAc;IAYvB,MAAM,CAAC,mBAAmB;QACtB,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC3C,CAAC;;AAdL,wCAeC;AAZU,4BAAa,GAAuB,SAAS,CAAC;AAE9C,+BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,sBAAsB;KACjC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/invoice.d.ts b/dist/gen/model/accounting/invoice.d.ts
new file mode 100644
index 000000000..f14236c1f
--- /dev/null
+++ b/dist/gen/model/accounting/invoice.d.ts
@@ -0,0 +1,77 @@
+import { Attachment } from './attachment';
+import { Contact } from './contact';
+import { CreditNote } from './creditNote';
+import { CurrencyCode } from './currencyCode';
+import { LineAmountTypes } from './lineAmountTypes';
+import { LineItem } from './lineItem';
+import { Overpayment } from './overpayment';
+import { Payment } from './payment';
+import { Prepayment } from './prepayment';
+import { ValidationError } from './validationError';
+export declare class Invoice {
+ 'type': Invoice.TypeEnum;
+ 'contact': Contact;
+ 'lineItems': Array;
+ 'date'?: string;
+ 'dueDate'?: string;
+ 'lineAmountTypes'?: LineAmountTypes;
+ 'invoiceNumber'?: string;
+ 'reference'?: string;
+ 'brandingThemeID'?: string;
+ 'url'?: string;
+ 'currencyCode'?: CurrencyCode;
+ 'currencyRate'?: number;
+ 'status'?: Invoice.StatusEnum;
+ 'sentToContact'?: boolean;
+ 'expectedPaymentDate'?: string;
+ 'plannedPaymentDate'?: string;
+ 'cISDeduction'?: number;
+ 'subTotal'?: number;
+ 'totalTax'?: number;
+ 'total'?: number;
+ 'totalDiscount'?: number;
+ 'invoiceID'?: string;
+ 'hasAttachments'?: boolean;
+ 'isDiscounted'?: boolean;
+ 'payments'?: Array;
+ 'prepayments'?: Array;
+ 'overpayments'?: Array;
+ 'amountDue'?: number;
+ 'amountPaid'?: number;
+ 'fullyPaidOnDate'?: string;
+ 'amountCredited'?: number;
+ 'updatedDateUTC'?: Date;
+ 'creditNotes'?: Array;
+ 'attachments'?: Array;
+ 'hasErrors'?: boolean;
+ 'statusAttributeString'?: string;
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Invoice {
+ enum TypeEnum {
+ ACCPAY,
+ ACCPAYCREDIT,
+ AROVERPAYMENT,
+ ACCREC,
+ ACCRECCREDIT
+ }
+ enum StatusEnum {
+ DRAFT,
+ SUBMITTED,
+ DELETED,
+ AUTHORISED,
+ PAID,
+ VOIDED
+ }
+}
diff --git a/dist/gen/model/accounting/invoice.js b/dist/gen/model/accounting/invoice.js
new file mode 100644
index 000000000..19391fef2
--- /dev/null
+++ b/dist/gen/model/accounting/invoice.js
@@ -0,0 +1,216 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Invoice {
+ static getAttributeTypeMap() {
+ return Invoice.attributeTypeMap;
+ }
+}
+exports.Invoice = Invoice;
+Invoice.discriminator = undefined;
+Invoice.attributeTypeMap = [
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "Invoice.TypeEnum"
+ },
+ {
+ "name": "contact",
+ "baseName": "Contact",
+ "type": "Contact"
+ },
+ {
+ "name": "lineItems",
+ "baseName": "LineItems",
+ "type": "Array"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "dueDate",
+ "baseName": "DueDate",
+ "type": "string"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ },
+ {
+ "name": "invoiceNumber",
+ "baseName": "InvoiceNumber",
+ "type": "string"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "brandingThemeID",
+ "baseName": "BrandingThemeID",
+ "type": "string"
+ },
+ {
+ "name": "url",
+ "baseName": "Url",
+ "type": "string"
+ },
+ {
+ "name": "currencyCode",
+ "baseName": "CurrencyCode",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "currencyRate",
+ "baseName": "CurrencyRate",
+ "type": "number"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "Invoice.StatusEnum"
+ },
+ {
+ "name": "sentToContact",
+ "baseName": "SentToContact",
+ "type": "boolean"
+ },
+ {
+ "name": "expectedPaymentDate",
+ "baseName": "ExpectedPaymentDate",
+ "type": "string"
+ },
+ {
+ "name": "plannedPaymentDate",
+ "baseName": "PlannedPaymentDate",
+ "type": "string"
+ },
+ {
+ "name": "cISDeduction",
+ "baseName": "CISDeduction",
+ "type": "number"
+ },
+ {
+ "name": "subTotal",
+ "baseName": "SubTotal",
+ "type": "number"
+ },
+ {
+ "name": "totalTax",
+ "baseName": "TotalTax",
+ "type": "number"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "totalDiscount",
+ "baseName": "TotalDiscount",
+ "type": "number"
+ },
+ {
+ "name": "invoiceID",
+ "baseName": "InvoiceID",
+ "type": "string"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "isDiscounted",
+ "baseName": "IsDiscounted",
+ "type": "boolean"
+ },
+ {
+ "name": "payments",
+ "baseName": "Payments",
+ "type": "Array"
+ },
+ {
+ "name": "prepayments",
+ "baseName": "Prepayments",
+ "type": "Array"
+ },
+ {
+ "name": "overpayments",
+ "baseName": "Overpayments",
+ "type": "Array"
+ },
+ {
+ "name": "amountDue",
+ "baseName": "AmountDue",
+ "type": "number"
+ },
+ {
+ "name": "amountPaid",
+ "baseName": "AmountPaid",
+ "type": "number"
+ },
+ {
+ "name": "fullyPaidOnDate",
+ "baseName": "FullyPaidOnDate",
+ "type": "string"
+ },
+ {
+ "name": "amountCredited",
+ "baseName": "AmountCredited",
+ "type": "number"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "creditNotes",
+ "baseName": "CreditNotes",
+ "type": "Array"
+ },
+ {
+ "name": "attachments",
+ "baseName": "Attachments",
+ "type": "Array"
+ },
+ {
+ "name": "hasErrors",
+ "baseName": "HasErrors",
+ "type": "boolean"
+ },
+ {
+ "name": "statusAttributeString",
+ "baseName": "StatusAttributeString",
+ "type": "string"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+(function (Invoice) {
+ let TypeEnum;
+ (function (TypeEnum) {
+ TypeEnum[TypeEnum["ACCPAY"] = 'ACCPAY'] = "ACCPAY";
+ TypeEnum[TypeEnum["ACCPAYCREDIT"] = 'ACCPAYCREDIT'] = "ACCPAYCREDIT";
+ TypeEnum[TypeEnum["AROVERPAYMENT"] = 'AROVERPAYMENT'] = "AROVERPAYMENT";
+ TypeEnum[TypeEnum["ACCREC"] = 'ACCREC'] = "ACCREC";
+ TypeEnum[TypeEnum["ACCRECCREDIT"] = 'ACCRECCREDIT'] = "ACCRECCREDIT";
+ })(TypeEnum = Invoice.TypeEnum || (Invoice.TypeEnum = {}));
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["DRAFT"] = 'DRAFT'] = "DRAFT";
+ StatusEnum[StatusEnum["SUBMITTED"] = 'SUBMITTED'] = "SUBMITTED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ StatusEnum[StatusEnum["PAID"] = 'PAID'] = "PAID";
+ StatusEnum[StatusEnum["VOIDED"] = 'VOIDED'] = "VOIDED";
+ })(StatusEnum = Invoice.StatusEnum || (Invoice.StatusEnum = {}));
+})(Invoice = exports.Invoice || (exports.Invoice = {}));
+//# sourceMappingURL=invoice.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/invoice.js.map b/dist/gen/model/accounting/invoice.js.map
new file mode 100644
index 000000000..f79937e4a
--- /dev/null
+++ b/dist/gen/model/accounting/invoice.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/invoice.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/invoiceReminder.d.ts b/dist/gen/model/accounting/invoiceReminder.d.ts
new file mode 100644
index 000000000..c999b2d0c
--- /dev/null
+++ b/dist/gen/model/accounting/invoiceReminder.d.ts
@@ -0,0 +1,14 @@
+export declare class InvoiceReminder {
+ 'enabled'?: boolean;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/invoiceReminder.js b/dist/gen/model/accounting/invoiceReminder.js
new file mode 100644
index 000000000..5f11ad9e0
--- /dev/null
+++ b/dist/gen/model/accounting/invoiceReminder.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class InvoiceReminder {
+ static getAttributeTypeMap() {
+ return InvoiceReminder.attributeTypeMap;
+ }
+}
+exports.InvoiceReminder = InvoiceReminder;
+InvoiceReminder.discriminator = undefined;
+InvoiceReminder.attributeTypeMap = [
+ {
+ "name": "enabled",
+ "baseName": "Enabled",
+ "type": "boolean"
+ }
+];
+//# sourceMappingURL=invoiceReminder.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/invoiceReminder.js.map b/dist/gen/model/accounting/invoiceReminder.js.map
new file mode 100644
index 000000000..6d8eacef5
--- /dev/null
+++ b/dist/gen/model/accounting/invoiceReminder.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"invoiceReminder.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/invoiceReminder.ts"],"names":[],"mappings":";;AAaA,MAAa,eAAe;IAexB,MAAM,CAAC,mBAAmB;QACtB,OAAO,eAAe,CAAC,gBAAgB,CAAC;IAC5C,CAAC;;AAjBL,0CAkBC;AAZU,6BAAa,GAAuB,SAAS,CAAC;AAE9C,gCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/invoiceReminders.d.ts b/dist/gen/model/accounting/invoiceReminders.d.ts
new file mode 100644
index 000000000..d403a727d
--- /dev/null
+++ b/dist/gen/model/accounting/invoiceReminders.d.ts
@@ -0,0 +1,15 @@
+import { InvoiceReminder } from './invoiceReminder';
+export declare class InvoiceReminders {
+ 'invoiceReminders'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/invoiceReminders.js b/dist/gen/model/accounting/invoiceReminders.js
new file mode 100644
index 000000000..7d22aa5b4
--- /dev/null
+++ b/dist/gen/model/accounting/invoiceReminders.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class InvoiceReminders {
+ static getAttributeTypeMap() {
+ return InvoiceReminders.attributeTypeMap;
+ }
+}
+exports.InvoiceReminders = InvoiceReminders;
+InvoiceReminders.discriminator = undefined;
+InvoiceReminders.attributeTypeMap = [
+ {
+ "name": "invoiceReminders",
+ "baseName": "InvoiceReminders",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=invoiceReminders.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/invoiceReminders.js.map b/dist/gen/model/accounting/invoiceReminders.js.map
new file mode 100644
index 000000000..9681c89fe
--- /dev/null
+++ b/dist/gen/model/accounting/invoiceReminders.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"invoiceReminders.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/invoiceReminders.ts"],"names":[],"mappings":";;AAcA,MAAa,gBAAgB;IAYzB,MAAM,CAAC,mBAAmB;QACtB,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;IAC7C,CAAC;;AAdL,4CAeC;AAZU,8BAAa,GAAuB,SAAS,CAAC;AAE9C,iCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,wBAAwB;KACnC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/invoices.d.ts b/dist/gen/model/accounting/invoices.d.ts
new file mode 100644
index 000000000..151c3938f
--- /dev/null
+++ b/dist/gen/model/accounting/invoices.d.ts
@@ -0,0 +1,15 @@
+import { Invoice } from './invoice';
+export declare class Invoices {
+ 'invoices'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/invoices.js b/dist/gen/model/accounting/invoices.js
new file mode 100644
index 000000000..753ca999a
--- /dev/null
+++ b/dist/gen/model/accounting/invoices.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Invoices {
+ static getAttributeTypeMap() {
+ return Invoices.attributeTypeMap;
+ }
+}
+exports.Invoices = Invoices;
+Invoices.discriminator = undefined;
+Invoices.attributeTypeMap = [
+ {
+ "name": "invoices",
+ "baseName": "Invoices",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=invoices.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/invoices.js.map b/dist/gen/model/accounting/invoices.js.map
new file mode 100644
index 000000000..0b1f767ba
--- /dev/null
+++ b/dist/gen/model/accounting/invoices.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/invoices.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IAYjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAdL,4BAeC;AAZU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/item.d.ts b/dist/gen/model/accounting/item.d.ts
new file mode 100644
index 000000000..b70996d2f
--- /dev/null
+++ b/dist/gen/model/accounting/item.d.ts
@@ -0,0 +1,30 @@
+import { Purchase } from './purchase';
+import { ValidationError } from './validationError';
+export declare class Item {
+ 'code': string;
+ 'inventoryAssetAccountCode': string;
+ 'name'?: string;
+ 'isSold'?: boolean;
+ 'isPurchased'?: boolean;
+ 'description'?: string;
+ 'purchaseDescription'?: string;
+ 'purchaseDetails'?: Purchase;
+ 'salesDetails'?: Purchase;
+ 'isTrackedAsInventory'?: boolean;
+ 'totalCostPool'?: number;
+ 'quantityOnHand'?: number;
+ 'updatedDateUTC'?: Date;
+ 'itemID'?: string;
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/item.js b/dist/gen/model/accounting/item.js
new file mode 100644
index 000000000..6d671854c
--- /dev/null
+++ b/dist/gen/model/accounting/item.js
@@ -0,0 +1,87 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Item {
+ static getAttributeTypeMap() {
+ return Item.attributeTypeMap;
+ }
+}
+exports.Item = Item;
+Item.discriminator = undefined;
+Item.attributeTypeMap = [
+ {
+ "name": "code",
+ "baseName": "Code",
+ "type": "string"
+ },
+ {
+ "name": "inventoryAssetAccountCode",
+ "baseName": "InventoryAssetAccountCode",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "isSold",
+ "baseName": "IsSold",
+ "type": "boolean"
+ },
+ {
+ "name": "isPurchased",
+ "baseName": "IsPurchased",
+ "type": "boolean"
+ },
+ {
+ "name": "description",
+ "baseName": "Description",
+ "type": "string"
+ },
+ {
+ "name": "purchaseDescription",
+ "baseName": "PurchaseDescription",
+ "type": "string"
+ },
+ {
+ "name": "purchaseDetails",
+ "baseName": "PurchaseDetails",
+ "type": "Purchase"
+ },
+ {
+ "name": "salesDetails",
+ "baseName": "SalesDetails",
+ "type": "Purchase"
+ },
+ {
+ "name": "isTrackedAsInventory",
+ "baseName": "IsTrackedAsInventory",
+ "type": "boolean"
+ },
+ {
+ "name": "totalCostPool",
+ "baseName": "TotalCostPool",
+ "type": "number"
+ },
+ {
+ "name": "quantityOnHand",
+ "baseName": "QuantityOnHand",
+ "type": "number"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "itemID",
+ "baseName": "ItemID",
+ "type": "string"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=item.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/item.js.map b/dist/gen/model/accounting/item.js.map
new file mode 100644
index 000000000..d87c650de
--- /dev/null
+++ b/dist/gen/model/accounting/item.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/item.ts"],"names":[],"mappings":";;AAeA,MAAa,IAAI;IAuIb,MAAM,CAAC,mBAAmB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;;AAzIL,oBA0IC;AAlFU,kBAAa,GAAuB,SAAS,CAAC;AAE9C,qBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,2BAA2B;QACnC,UAAU,EAAE,2BAA2B;QACvC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,qBAAqB;QAC7B,UAAU,EAAE,qBAAqB;QACjC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,UAAU;KACrB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,UAAU;KACrB;IACD;QACI,MAAM,EAAE,sBAAsB;QAC9B,UAAU,EAAE,sBAAsB;QAClC,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,wBAAwB;KACnC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/items.d.ts b/dist/gen/model/accounting/items.d.ts
new file mode 100644
index 000000000..b8b4dc357
--- /dev/null
+++ b/dist/gen/model/accounting/items.d.ts
@@ -0,0 +1,15 @@
+import { Item } from './item';
+export declare class Items {
+ 'items'?: Array- ;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/items.js b/dist/gen/model/accounting/items.js
new file mode 100644
index 000000000..cfdf398fe
--- /dev/null
+++ b/dist/gen/model/accounting/items.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Items {
+ static getAttributeTypeMap() {
+ return Items.attributeTypeMap;
+ }
+}
+exports.Items = Items;
+Items.discriminator = undefined;
+Items.attributeTypeMap = [
+ {
+ "name": "items",
+ "baseName": "Items",
+ "type": "Array
- "
+ }
+];
+//# sourceMappingURL=items.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/items.js.map b/dist/gen/model/accounting/items.js.map
new file mode 100644
index 000000000..32fbc77f2
--- /dev/null
+++ b/dist/gen/model/accounting/items.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"items.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/items.ts"],"names":[],"mappings":";;AAcA,MAAa,KAAK;IAYd,MAAM,CAAC,mBAAmB;QACtB,OAAO,KAAK,CAAC,gBAAgB,CAAC;IAClC,CAAC;;AAdL,sBAeC;AAZU,mBAAa,GAAuB,SAAS,CAAC;AAE9C,sBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,aAAa;KACxB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/journal.d.ts b/dist/gen/model/accounting/journal.d.ts
new file mode 100644
index 000000000..db4d9e457
--- /dev/null
+++ b/dist/gen/model/accounting/journal.d.ts
@@ -0,0 +1,51 @@
+import { JournalLine } from './journalLine';
+export declare class Journal {
+ 'journalID'?: string;
+ 'journalDate'?: string;
+ 'journalNumber'?: string;
+ 'createdDateUTC'?: Date;
+ 'reference'?: string;
+ 'sourceID'?: string;
+ 'sourceType'?: Journal.SourceTypeEnum;
+ 'journalLines'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Journal {
+ enum SourceTypeEnum {
+ ACCREC,
+ ACCPAY,
+ ACCRECCREDIT,
+ ACCPAYCREDIT,
+ ACCRECPAYMENT,
+ ACCPAYPAYMENT,
+ ARCREDITPAYMENT,
+ APCREDITPAYMENT,
+ CASHREC,
+ CASHPAID,
+ TRANSFER,
+ ARPREPAYMENT,
+ APPREPAYMENT,
+ AROVERPAYMENT,
+ APOVERPAYMENT,
+ EXPCLAIM,
+ EXPPAYMENT,
+ MANJOURNAL,
+ PAYSLIP,
+ WAGEPAYABLE,
+ INTEGRATEDPAYROLLPE,
+ INTEGRATEDPAYROLLPT,
+ EXTERNALSPENDMONEY,
+ INTEGRATEDPAYROLLPTPAYMENT,
+ INTEGRATEDPAYROLLCN
+ }
+}
diff --git a/dist/gen/model/accounting/journal.js b/dist/gen/model/accounting/journal.js
new file mode 100644
index 000000000..217c797c3
--- /dev/null
+++ b/dist/gen/model/accounting/journal.js
@@ -0,0 +1,82 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Journal {
+ static getAttributeTypeMap() {
+ return Journal.attributeTypeMap;
+ }
+}
+exports.Journal = Journal;
+Journal.discriminator = undefined;
+Journal.attributeTypeMap = [
+ {
+ "name": "journalID",
+ "baseName": "JournalID",
+ "type": "string"
+ },
+ {
+ "name": "journalDate",
+ "baseName": "JournalDate",
+ "type": "string"
+ },
+ {
+ "name": "journalNumber",
+ "baseName": "JournalNumber",
+ "type": "string"
+ },
+ {
+ "name": "createdDateUTC",
+ "baseName": "CreatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "sourceID",
+ "baseName": "SourceID",
+ "type": "string"
+ },
+ {
+ "name": "sourceType",
+ "baseName": "SourceType",
+ "type": "Journal.SourceTypeEnum"
+ },
+ {
+ "name": "journalLines",
+ "baseName": "JournalLines",
+ "type": "Array"
+ }
+];
+(function (Journal) {
+ let SourceTypeEnum;
+ (function (SourceTypeEnum) {
+ SourceTypeEnum[SourceTypeEnum["ACCREC"] = 'ACCREC'] = "ACCREC";
+ SourceTypeEnum[SourceTypeEnum["ACCPAY"] = 'ACCPAY'] = "ACCPAY";
+ SourceTypeEnum[SourceTypeEnum["ACCRECCREDIT"] = 'ACCRECCREDIT'] = "ACCRECCREDIT";
+ SourceTypeEnum[SourceTypeEnum["ACCPAYCREDIT"] = 'ACCPAYCREDIT'] = "ACCPAYCREDIT";
+ SourceTypeEnum[SourceTypeEnum["ACCRECPAYMENT"] = 'ACCRECPAYMENT'] = "ACCRECPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["ACCPAYPAYMENT"] = 'ACCPAYPAYMENT'] = "ACCPAYPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["ARCREDITPAYMENT"] = 'ARCREDITPAYMENT'] = "ARCREDITPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["APCREDITPAYMENT"] = 'APCREDITPAYMENT'] = "APCREDITPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["CASHREC"] = 'CASHREC'] = "CASHREC";
+ SourceTypeEnum[SourceTypeEnum["CASHPAID"] = 'CASHPAID'] = "CASHPAID";
+ SourceTypeEnum[SourceTypeEnum["TRANSFER"] = 'TRANSFER'] = "TRANSFER";
+ SourceTypeEnum[SourceTypeEnum["ARPREPAYMENT"] = 'ARPREPAYMENT'] = "ARPREPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["APPREPAYMENT"] = 'APPREPAYMENT'] = "APPREPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["AROVERPAYMENT"] = 'AROVERPAYMENT'] = "AROVERPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["APOVERPAYMENT"] = 'APOVERPAYMENT'] = "APOVERPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["EXPCLAIM"] = 'EXPCLAIM'] = "EXPCLAIM";
+ SourceTypeEnum[SourceTypeEnum["EXPPAYMENT"] = 'EXPPAYMENT'] = "EXPPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["MANJOURNAL"] = 'MANJOURNAL'] = "MANJOURNAL";
+ SourceTypeEnum[SourceTypeEnum["PAYSLIP"] = 'PAYSLIP'] = "PAYSLIP";
+ SourceTypeEnum[SourceTypeEnum["WAGEPAYABLE"] = 'WAGEPAYABLE'] = "WAGEPAYABLE";
+ SourceTypeEnum[SourceTypeEnum["INTEGRATEDPAYROLLPE"] = 'INTEGRATEDPAYROLLPE'] = "INTEGRATEDPAYROLLPE";
+ SourceTypeEnum[SourceTypeEnum["INTEGRATEDPAYROLLPT"] = 'INTEGRATEDPAYROLLPT'] = "INTEGRATEDPAYROLLPT";
+ SourceTypeEnum[SourceTypeEnum["EXTERNALSPENDMONEY"] = 'EXTERNALSPENDMONEY'] = "EXTERNALSPENDMONEY";
+ SourceTypeEnum[SourceTypeEnum["INTEGRATEDPAYROLLPTPAYMENT"] = 'INTEGRATEDPAYROLLPTPAYMENT'] = "INTEGRATEDPAYROLLPTPAYMENT";
+ SourceTypeEnum[SourceTypeEnum["INTEGRATEDPAYROLLCN"] = 'INTEGRATEDPAYROLLCN'] = "INTEGRATEDPAYROLLCN";
+ })(SourceTypeEnum = Journal.SourceTypeEnum || (Journal.SourceTypeEnum = {}));
+})(Journal = exports.Journal || (exports.Journal = {}));
+//# sourceMappingURL=journal.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/journal.js.map b/dist/gen/model/accounting/journal.js.map
new file mode 100644
index 000000000..470efa06a
--- /dev/null
+++ b/dist/gen/model/accounting/journal.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/journal.ts"],"names":[],"mappings":";;AAcA,MAAa,OAAO;IA8EhB,MAAM,CAAC,mBAAmB;QACtB,OAAO,OAAO,CAAC,gBAAgB,CAAC;IACpC,CAAC;;AAhFL,0BAiFC;AA/CU,qBAAa,GAAuB,SAAS,CAAC;AAE9C,wBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,wBAAwB;KACnC;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,oBAAoB;KAC/B;CAAK,CAAC;AAOf,WAAiB,OAAO;IACpB,IAAY,cA0BX;IA1BD,WAAY,cAAc;QACtB,0CAAe,QAAQ,YAAA,CAAA;QACvB,0CAAe,QAAQ,YAAA,CAAA;QACvB,gDAAqB,cAAc,kBAAA,CAAA;QACnC,gDAAqB,cAAc,kBAAA,CAAA;QACnC,iDAAsB,eAAe,mBAAA,CAAA;QACrC,iDAAsB,eAAe,mBAAA,CAAA;QACrC,mDAAwB,iBAAiB,qBAAA,CAAA;QACzC,mDAAwB,iBAAiB,qBAAA,CAAA;QACzC,2CAAgB,SAAS,aAAA,CAAA;QACzB,4CAAiB,UAAU,cAAA,CAAA;QAC3B,4CAAiB,UAAU,cAAA,CAAA;QAC3B,gDAAqB,cAAc,kBAAA,CAAA;QACnC,gDAAqB,cAAc,kBAAA,CAAA;QACnC,iDAAsB,eAAe,mBAAA,CAAA;QACrC,iDAAsB,eAAe,mBAAA,CAAA;QACrC,4CAAiB,UAAU,cAAA,CAAA;QAC3B,8CAAmB,YAAY,gBAAA,CAAA;QAC/B,8CAAmB,YAAY,gBAAA,CAAA;QAC/B,2CAAgB,SAAS,aAAA,CAAA;QACzB,+CAAoB,aAAa,iBAAA,CAAA;QACjC,uDAA4B,qBAAqB,yBAAA,CAAA;QACjD,uDAA4B,qBAAqB,yBAAA,CAAA;QACjD,sDAA2B,oBAAoB,wBAAA,CAAA;QAC/C,8DAAmC,4BAA4B,gCAAA,CAAA;QAC/D,uDAA4B,qBAAqB,yBAAA,CAAA;IACrD,CAAC,EA1BW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QA0BzB;AACL,CAAC,EA5BgB,OAAO,GAAP,eAAO,KAAP,eAAO,QA4BvB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/journalLine.d.ts b/dist/gen/model/accounting/journalLine.d.ts
new file mode 100644
index 000000000..ff6b74149
--- /dev/null
+++ b/dist/gen/model/accounting/journalLine.d.ts
@@ -0,0 +1,27 @@
+import { AccountType } from './accountType';
+import { TrackingCategory } from './trackingCategory';
+export declare class JournalLine {
+ 'journalLineID'?: string;
+ 'accountID'?: string;
+ 'accountCode'?: string;
+ 'accountType'?: AccountType;
+ 'accountName'?: string;
+ 'description'?: string;
+ 'netAmount'?: number;
+ 'grossAmount'?: number;
+ 'taxAmount'?: number;
+ 'taxType'?: string;
+ 'taxName'?: string;
+ 'trackingCategories'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/journalLine.js b/dist/gen/model/accounting/journalLine.js
new file mode 100644
index 000000000..5fde2d1e2
--- /dev/null
+++ b/dist/gen/model/accounting/journalLine.js
@@ -0,0 +1,72 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class JournalLine {
+ static getAttributeTypeMap() {
+ return JournalLine.attributeTypeMap;
+ }
+}
+exports.JournalLine = JournalLine;
+JournalLine.discriminator = undefined;
+JournalLine.attributeTypeMap = [
+ {
+ "name": "journalLineID",
+ "baseName": "JournalLineID",
+ "type": "string"
+ },
+ {
+ "name": "accountID",
+ "baseName": "AccountID",
+ "type": "string"
+ },
+ {
+ "name": "accountCode",
+ "baseName": "AccountCode",
+ "type": "string"
+ },
+ {
+ "name": "accountType",
+ "baseName": "AccountType",
+ "type": "AccountType"
+ },
+ {
+ "name": "accountName",
+ "baseName": "AccountName",
+ "type": "string"
+ },
+ {
+ "name": "description",
+ "baseName": "Description",
+ "type": "string"
+ },
+ {
+ "name": "netAmount",
+ "baseName": "NetAmount",
+ "type": "number"
+ },
+ {
+ "name": "grossAmount",
+ "baseName": "GrossAmount",
+ "type": "number"
+ },
+ {
+ "name": "taxAmount",
+ "baseName": "TaxAmount",
+ "type": "number"
+ },
+ {
+ "name": "taxType",
+ "baseName": "TaxType",
+ "type": "string"
+ },
+ {
+ "name": "taxName",
+ "baseName": "TaxName",
+ "type": "string"
+ },
+ {
+ "name": "trackingCategories",
+ "baseName": "TrackingCategories",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=journalLine.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/journalLine.js.map b/dist/gen/model/accounting/journalLine.js.map
new file mode 100644
index 000000000..e611a36e6
--- /dev/null
+++ b/dist/gen/model/accounting/journalLine.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"journalLine.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/journalLine.ts"],"names":[],"mappings":";;AAeA,MAAa,WAAW;IA+GpB,MAAM,CAAC,mBAAmB;QACtB,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACxC,CAAC;;AAjHL,kCAkHC;AAnEU,yBAAa,GAAuB,SAAS,CAAC;AAE9C,4BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,aAAa;KACxB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,yBAAyB;KACpC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/journals.d.ts b/dist/gen/model/accounting/journals.d.ts
new file mode 100644
index 000000000..982e274cd
--- /dev/null
+++ b/dist/gen/model/accounting/journals.d.ts
@@ -0,0 +1,15 @@
+import { Journal } from './journal';
+export declare class Journals {
+ 'journals'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/journals.js b/dist/gen/model/accounting/journals.js
new file mode 100644
index 000000000..e2917991c
--- /dev/null
+++ b/dist/gen/model/accounting/journals.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Journals {
+ static getAttributeTypeMap() {
+ return Journals.attributeTypeMap;
+ }
+}
+exports.Journals = Journals;
+Journals.discriminator = undefined;
+Journals.attributeTypeMap = [
+ {
+ "name": "journals",
+ "baseName": "Journals",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=journals.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/journals.js.map b/dist/gen/model/accounting/journals.js.map
new file mode 100644
index 000000000..45d8c110a
--- /dev/null
+++ b/dist/gen/model/accounting/journals.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"journals.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/journals.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IAYjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAdL,4BAeC;AAZU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/lineAmountTypes.d.ts b/dist/gen/model/accounting/lineAmountTypes.d.ts
new file mode 100644
index 000000000..879367aa2
--- /dev/null
+++ b/dist/gen/model/accounting/lineAmountTypes.d.ts
@@ -0,0 +1,5 @@
+export declare enum LineAmountTypes {
+ Exclusive,
+ Inclusive,
+ NoTax
+}
diff --git a/dist/gen/model/accounting/lineAmountTypes.js b/dist/gen/model/accounting/lineAmountTypes.js
new file mode 100644
index 000000000..ad36feb63
--- /dev/null
+++ b/dist/gen/model/accounting/lineAmountTypes.js
@@ -0,0 +1,9 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var LineAmountTypes;
+(function (LineAmountTypes) {
+ LineAmountTypes[LineAmountTypes["Exclusive"] = 'Exclusive'] = "Exclusive";
+ LineAmountTypes[LineAmountTypes["Inclusive"] = 'Inclusive'] = "Inclusive";
+ LineAmountTypes[LineAmountTypes["NoTax"] = 'NoTax'] = "NoTax";
+})(LineAmountTypes = exports.LineAmountTypes || (exports.LineAmountTypes = {}));
+//# sourceMappingURL=lineAmountTypes.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/lineAmountTypes.js.map b/dist/gen/model/accounting/lineAmountTypes.js.map
new file mode 100644
index 000000000..c79567b0c
--- /dev/null
+++ b/dist/gen/model/accounting/lineAmountTypes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"lineAmountTypes.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/lineAmountTypes.ts"],"names":[],"mappings":";;AAgBA,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,+CAAkB,WAAW,eAAA,CAAA;IAC7B,+CAAkB,WAAW,eAAA,CAAA;IAC7B,2CAAc,OAAO,WAAA,CAAA;AACzB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/lineItem.d.ts b/dist/gen/model/accounting/lineItem.d.ts
new file mode 100644
index 000000000..f6299da84
--- /dev/null
+++ b/dist/gen/model/accounting/lineItem.d.ts
@@ -0,0 +1,27 @@
+import { LineItemTracking } from './lineItemTracking';
+export declare class LineItem {
+ 'lineItemID'?: string;
+ 'description'?: string;
+ 'quantity'?: number;
+ 'unitAmount'?: number;
+ 'itemCode'?: string;
+ 'accountCode'?: string;
+ 'taxType'?: string;
+ 'taxAmount'?: number;
+ 'lineAmount'?: number;
+ 'tracking'?: Array;
+ 'discountRate'?: string;
+ 'discountAmount'?: number;
+ 'repeatingInvoiceID'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/lineItem.js b/dist/gen/model/accounting/lineItem.js
new file mode 100644
index 000000000..9b64cdc6d
--- /dev/null
+++ b/dist/gen/model/accounting/lineItem.js
@@ -0,0 +1,77 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class LineItem {
+ static getAttributeTypeMap() {
+ return LineItem.attributeTypeMap;
+ }
+}
+exports.LineItem = LineItem;
+LineItem.discriminator = undefined;
+LineItem.attributeTypeMap = [
+ {
+ "name": "lineItemID",
+ "baseName": "LineItemID",
+ "type": "string"
+ },
+ {
+ "name": "description",
+ "baseName": "Description",
+ "type": "string"
+ },
+ {
+ "name": "quantity",
+ "baseName": "Quantity",
+ "type": "number"
+ },
+ {
+ "name": "unitAmount",
+ "baseName": "UnitAmount",
+ "type": "number"
+ },
+ {
+ "name": "itemCode",
+ "baseName": "ItemCode",
+ "type": "string"
+ },
+ {
+ "name": "accountCode",
+ "baseName": "AccountCode",
+ "type": "string"
+ },
+ {
+ "name": "taxType",
+ "baseName": "TaxType",
+ "type": "string"
+ },
+ {
+ "name": "taxAmount",
+ "baseName": "TaxAmount",
+ "type": "number"
+ },
+ {
+ "name": "lineAmount",
+ "baseName": "LineAmount",
+ "type": "number"
+ },
+ {
+ "name": "tracking",
+ "baseName": "Tracking",
+ "type": "Array"
+ },
+ {
+ "name": "discountRate",
+ "baseName": "DiscountRate",
+ "type": "string"
+ },
+ {
+ "name": "discountAmount",
+ "baseName": "DiscountAmount",
+ "type": "number"
+ },
+ {
+ "name": "repeatingInvoiceID",
+ "baseName": "RepeatingInvoiceID",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=lineItem.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/lineItem.js.map b/dist/gen/model/accounting/lineItem.js.map
new file mode 100644
index 000000000..8c2eadb11
--- /dev/null
+++ b/dist/gen/model/accounting/lineItem.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"lineItem.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/lineItem.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IA2HjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AA7HL,4BA8HC;AAxEU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,yBAAyB;KACpC;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/lineItemTracking.d.ts b/dist/gen/model/accounting/lineItemTracking.d.ts
new file mode 100644
index 000000000..ade0a6057
--- /dev/null
+++ b/dist/gen/model/accounting/lineItemTracking.d.ts
@@ -0,0 +1,16 @@
+export declare class LineItemTracking {
+ 'trackingCategoryID'?: string;
+ 'name'?: string;
+ 'option'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/lineItemTracking.js b/dist/gen/model/accounting/lineItemTracking.js
new file mode 100644
index 000000000..1c3c7d02b
--- /dev/null
+++ b/dist/gen/model/accounting/lineItemTracking.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class LineItemTracking {
+ static getAttributeTypeMap() {
+ return LineItemTracking.attributeTypeMap;
+ }
+}
+exports.LineItemTracking = LineItemTracking;
+LineItemTracking.discriminator = undefined;
+LineItemTracking.attributeTypeMap = [
+ {
+ "name": "trackingCategoryID",
+ "baseName": "TrackingCategoryID",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "option",
+ "baseName": "Option",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=lineItemTracking.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/lineItemTracking.js.map b/dist/gen/model/accounting/lineItemTracking.js.map
new file mode 100644
index 000000000..18166d0e0
--- /dev/null
+++ b/dist/gen/model/accounting/lineItemTracking.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"lineItemTracking.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/lineItemTracking.ts"],"names":[],"mappings":";;AAaA,MAAa,gBAAgB;IAiCzB,MAAM,CAAC,mBAAmB;QACtB,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;IAC7C,CAAC;;AAnCL,4CAoCC;AAtBU,8BAAa,GAAuB,SAAS,CAAC;AAE9C,iCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/linkedTransaction.d.ts b/dist/gen/model/accounting/linkedTransaction.d.ts
new file mode 100644
index 000000000..676bd74fe
--- /dev/null
+++ b/dist/gen/model/accounting/linkedTransaction.d.ts
@@ -0,0 +1,41 @@
+import { ValidationError } from './validationError';
+export declare class LinkedTransaction {
+ 'sourceTransactionID'?: string;
+ 'sourceLineItemID': string;
+ 'contactID'?: string;
+ 'targetTransactionID'?: string;
+ 'targetLineItemID'?: string;
+ 'linkedTransactionID'?: string;
+ 'status'?: LinkedTransaction.StatusEnum;
+ 'type'?: LinkedTransaction.TypeEnum;
+ 'updatedDateUTC'?: Date;
+ 'sourceTransactionTypeCode'?: LinkedTransaction.SourceTransactionTypeCodeEnum;
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace LinkedTransaction {
+ enum StatusEnum {
+ APPROVED,
+ DRAFT,
+ ONDRAFT,
+ BILLED,
+ VOIDED
+ }
+ enum TypeEnum {
+ BILLABLEEXPENSE
+ }
+ enum SourceTransactionTypeCodeEnum {
+ ACCPAY,
+ SPEND
+ }
+}
diff --git a/dist/gen/model/accounting/linkedTransaction.js b/dist/gen/model/accounting/linkedTransaction.js
new file mode 100644
index 000000000..41e6b91a2
--- /dev/null
+++ b/dist/gen/model/accounting/linkedTransaction.js
@@ -0,0 +1,86 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class LinkedTransaction {
+ static getAttributeTypeMap() {
+ return LinkedTransaction.attributeTypeMap;
+ }
+}
+exports.LinkedTransaction = LinkedTransaction;
+LinkedTransaction.discriminator = undefined;
+LinkedTransaction.attributeTypeMap = [
+ {
+ "name": "sourceTransactionID",
+ "baseName": "SourceTransactionID",
+ "type": "string"
+ },
+ {
+ "name": "sourceLineItemID",
+ "baseName": "SourceLineItemID",
+ "type": "string"
+ },
+ {
+ "name": "contactID",
+ "baseName": "ContactID",
+ "type": "string"
+ },
+ {
+ "name": "targetTransactionID",
+ "baseName": "TargetTransactionID",
+ "type": "string"
+ },
+ {
+ "name": "targetLineItemID",
+ "baseName": "TargetLineItemID",
+ "type": "string"
+ },
+ {
+ "name": "linkedTransactionID",
+ "baseName": "LinkedTransactionID",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "LinkedTransaction.StatusEnum"
+ },
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "LinkedTransaction.TypeEnum"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "sourceTransactionTypeCode",
+ "baseName": "SourceTransactionTypeCode",
+ "type": "LinkedTransaction.SourceTransactionTypeCodeEnum"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+(function (LinkedTransaction) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["APPROVED"] = 'APPROVED'] = "APPROVED";
+ StatusEnum[StatusEnum["DRAFT"] = 'DRAFT'] = "DRAFT";
+ StatusEnum[StatusEnum["ONDRAFT"] = 'ONDRAFT'] = "ONDRAFT";
+ StatusEnum[StatusEnum["BILLED"] = 'BILLED'] = "BILLED";
+ StatusEnum[StatusEnum["VOIDED"] = 'VOIDED'] = "VOIDED";
+ })(StatusEnum = LinkedTransaction.StatusEnum || (LinkedTransaction.StatusEnum = {}));
+ let TypeEnum;
+ (function (TypeEnum) {
+ TypeEnum[TypeEnum["BILLABLEEXPENSE"] = 'BILLABLEEXPENSE'] = "BILLABLEEXPENSE";
+ })(TypeEnum = LinkedTransaction.TypeEnum || (LinkedTransaction.TypeEnum = {}));
+ let SourceTransactionTypeCodeEnum;
+ (function (SourceTransactionTypeCodeEnum) {
+ SourceTransactionTypeCodeEnum[SourceTransactionTypeCodeEnum["ACCPAY"] = 'ACCPAY'] = "ACCPAY";
+ SourceTransactionTypeCodeEnum[SourceTransactionTypeCodeEnum["SPEND"] = 'SPEND'] = "SPEND";
+ })(SourceTransactionTypeCodeEnum = LinkedTransaction.SourceTransactionTypeCodeEnum || (LinkedTransaction.SourceTransactionTypeCodeEnum = {}));
+})(LinkedTransaction = exports.LinkedTransaction || (exports.LinkedTransaction = {}));
+//# sourceMappingURL=linkedTransaction.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/linkedTransaction.js.map b/dist/gen/model/accounting/linkedTransaction.js.map
new file mode 100644
index 000000000..6414c18d5
--- /dev/null
+++ b/dist/gen/model/accounting/linkedTransaction.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"linkedTransaction.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/linkedTransaction.ts"],"names":[],"mappings":";;AAcA,MAAa,iBAAiB;IAyG1B,MAAM,CAAC,mBAAmB;QACtB,OAAO,iBAAiB,CAAC,gBAAgB,CAAC;IAC9C,CAAC;;AA3GL,8CA4GC;AA9DU,+BAAa,GAAuB,SAAS,CAAC;AAE9C,kCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,qBAAqB;QAC7B,UAAU,EAAE,qBAAqB;QACjC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,qBAAqB;QAC7B,UAAU,EAAE,qBAAqB;QACjC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,qBAAqB;QAC7B,UAAU,EAAE,qBAAqB;QACjC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,8BAA8B;KACzC;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,4BAA4B;KACvC;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,2BAA2B;QACnC,UAAU,EAAE,2BAA2B;QACvC,MAAM,EAAE,iDAAiD;KAC5D;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,wBAAwB;KACnC;CAAK,CAAC;AAOf,WAAiB,iBAAiB;IAC9B,IAAY,UAMX;IAND,WAAY,UAAU;QAClB,oCAAiB,UAAU,cAAA,CAAA;QAC3B,iCAAc,OAAO,WAAA,CAAA;QACrB,mCAAgB,SAAS,aAAA,CAAA;QACzB,kCAAe,QAAQ,YAAA,CAAA;QACvB,kCAAe,QAAQ,YAAA,CAAA;IAC3B,CAAC,EANW,UAAU,GAAV,4BAAU,KAAV,4BAAU,QAMrB;IACD,IAAY,QAEX;IAFD,WAAY,QAAQ;QAChB,uCAAwB,iBAAiB,qBAAA,CAAA;IAC7C,CAAC,EAFW,QAAQ,GAAR,0BAAQ,KAAR,0BAAQ,QAEnB;IACD,IAAY,6BAGX;IAHD,WAAY,6BAA6B;QACrC,wEAAe,QAAQ,YAAA,CAAA;QACvB,uEAAc,OAAO,WAAA,CAAA;IACzB,CAAC,EAHW,6BAA6B,GAA7B,+CAA6B,KAA7B,+CAA6B,QAGxC;AACL,CAAC,EAfgB,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAejC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/linkedTransactions.d.ts b/dist/gen/model/accounting/linkedTransactions.d.ts
new file mode 100644
index 000000000..905c976dc
--- /dev/null
+++ b/dist/gen/model/accounting/linkedTransactions.d.ts
@@ -0,0 +1,15 @@
+import { LinkedTransaction } from './linkedTransaction';
+export declare class LinkedTransactions {
+ 'linkedTransactions'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/linkedTransactions.js b/dist/gen/model/accounting/linkedTransactions.js
new file mode 100644
index 000000000..2aede2c17
--- /dev/null
+++ b/dist/gen/model/accounting/linkedTransactions.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class LinkedTransactions {
+ static getAttributeTypeMap() {
+ return LinkedTransactions.attributeTypeMap;
+ }
+}
+exports.LinkedTransactions = LinkedTransactions;
+LinkedTransactions.discriminator = undefined;
+LinkedTransactions.attributeTypeMap = [
+ {
+ "name": "linkedTransactions",
+ "baseName": "LinkedTransactions",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=linkedTransactions.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/linkedTransactions.js.map b/dist/gen/model/accounting/linkedTransactions.js.map
new file mode 100644
index 000000000..43cdd9dcc
--- /dev/null
+++ b/dist/gen/model/accounting/linkedTransactions.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"linkedTransactions.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/linkedTransactions.ts"],"names":[],"mappings":";;AAcA,MAAa,kBAAkB;IAY3B,MAAM,CAAC,mBAAmB;QACtB,OAAO,kBAAkB,CAAC,gBAAgB,CAAC;IAC/C,CAAC;;AAdL,gDAeC;AAZU,gCAAa,GAAuB,SAAS,CAAC;AAE9C,mCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,0BAA0B;KACrC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/manualJournal.d.ts b/dist/gen/model/accounting/manualJournal.d.ts
new file mode 100644
index 000000000..4af5f6889
--- /dev/null
+++ b/dist/gen/model/accounting/manualJournal.d.ts
@@ -0,0 +1,38 @@
+import { Attachment } from './attachment';
+import { LineAmountTypes } from './lineAmountTypes';
+import { ManualJournalLine } from './manualJournalLine';
+import { ValidationError } from './validationError';
+export declare class ManualJournal {
+ 'narration': string;
+ 'journalLines': Array;
+ 'date'?: string;
+ 'lineAmountTypes'?: LineAmountTypes;
+ 'status'?: ManualJournal.StatusEnum;
+ 'url'?: string;
+ 'showOnCashBasisReports'?: boolean;
+ 'hasAttachments'?: boolean;
+ 'updatedDateUTC'?: Date;
+ 'manualJournalID'?: string;
+ 'warnings'?: Array;
+ 'validationErrors'?: Array;
+ 'attachments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace ManualJournal {
+ enum StatusEnum {
+ DRAFT,
+ POSTED,
+ DELETED,
+ VOIDED
+ }
+}
diff --git a/dist/gen/model/accounting/manualJournal.js b/dist/gen/model/accounting/manualJournal.js
new file mode 100644
index 000000000..6f04e883b
--- /dev/null
+++ b/dist/gen/model/accounting/manualJournal.js
@@ -0,0 +1,86 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ManualJournal {
+ static getAttributeTypeMap() {
+ return ManualJournal.attributeTypeMap;
+ }
+}
+exports.ManualJournal = ManualJournal;
+ManualJournal.discriminator = undefined;
+ManualJournal.attributeTypeMap = [
+ {
+ "name": "narration",
+ "baseName": "Narration",
+ "type": "string"
+ },
+ {
+ "name": "journalLines",
+ "baseName": "JournalLines",
+ "type": "Array"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "ManualJournal.StatusEnum"
+ },
+ {
+ "name": "url",
+ "baseName": "Url",
+ "type": "string"
+ },
+ {
+ "name": "showOnCashBasisReports",
+ "baseName": "ShowOnCashBasisReports",
+ "type": "boolean"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "manualJournalID",
+ "baseName": "ManualJournalID",
+ "type": "string"
+ },
+ {
+ "name": "warnings",
+ "baseName": "Warnings",
+ "type": "Array"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ },
+ {
+ "name": "attachments",
+ "baseName": "Attachments",
+ "type": "Array"
+ }
+];
+(function (ManualJournal) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["DRAFT"] = 'DRAFT'] = "DRAFT";
+ StatusEnum[StatusEnum["POSTED"] = 'POSTED'] = "POSTED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ StatusEnum[StatusEnum["VOIDED"] = 'VOIDED'] = "VOIDED";
+ })(StatusEnum = ManualJournal.StatusEnum || (ManualJournal.StatusEnum = {}));
+})(ManualJournal = exports.ManualJournal || (exports.ManualJournal = {}));
+//# sourceMappingURL=manualJournal.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/manualJournal.js.map b/dist/gen/model/accounting/manualJournal.js.map
new file mode 100644
index 000000000..c8c2460ce
--- /dev/null
+++ b/dist/gen/model/accounting/manualJournal.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manualJournal.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/manualJournal.ts"],"names":[],"mappings":";;AAiBA,MAAa,aAAa;IAwHtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AA1HL,sCA2HC;AAxEU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,0BAA0B;KACrC;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,0BAA0B;KACrC;IACD;QACI,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,wBAAwB;QAChC,UAAU,EAAE,wBAAwB;QACpC,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,wBAAwB;KACnC;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,wBAAwB;KACnC;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC;AAOf,WAAiB,aAAa;IAC1B,IAAY,UAKX;IALD,WAAY,UAAU;QAClB,iCAAc,OAAO,WAAA,CAAA;QACrB,kCAAe,QAAQ,YAAA,CAAA;QACvB,mCAAgB,SAAS,aAAA,CAAA;QACzB,kCAAe,QAAQ,YAAA,CAAA;IAC3B,CAAC,EALW,UAAU,GAAV,wBAAU,KAAV,wBAAU,QAKrB;AACL,CAAC,EAPgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAO7B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/manualJournalLine.d.ts b/dist/gen/model/accounting/manualJournalLine.d.ts
new file mode 100644
index 000000000..5bb85b181
--- /dev/null
+++ b/dist/gen/model/accounting/manualJournalLine.d.ts
@@ -0,0 +1,21 @@
+import { TrackingCategory } from './trackingCategory';
+export declare class ManualJournalLine {
+ 'lineAmount'?: number;
+ 'accountCode'?: string;
+ 'description'?: string;
+ 'taxType'?: string;
+ 'tracking'?: Array;
+ 'taxAmount'?: number;
+ 'isBlank'?: boolean;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/manualJournalLine.js b/dist/gen/model/accounting/manualJournalLine.js
new file mode 100644
index 000000000..5bcd16d17
--- /dev/null
+++ b/dist/gen/model/accounting/manualJournalLine.js
@@ -0,0 +1,47 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ManualJournalLine {
+ static getAttributeTypeMap() {
+ return ManualJournalLine.attributeTypeMap;
+ }
+}
+exports.ManualJournalLine = ManualJournalLine;
+ManualJournalLine.discriminator = undefined;
+ManualJournalLine.attributeTypeMap = [
+ {
+ "name": "lineAmount",
+ "baseName": "LineAmount",
+ "type": "number"
+ },
+ {
+ "name": "accountCode",
+ "baseName": "AccountCode",
+ "type": "string"
+ },
+ {
+ "name": "description",
+ "baseName": "Description",
+ "type": "string"
+ },
+ {
+ "name": "taxType",
+ "baseName": "TaxType",
+ "type": "string"
+ },
+ {
+ "name": "tracking",
+ "baseName": "Tracking",
+ "type": "Array"
+ },
+ {
+ "name": "taxAmount",
+ "baseName": "TaxAmount",
+ "type": "number"
+ },
+ {
+ "name": "isBlank",
+ "baseName": "IsBlank",
+ "type": "boolean"
+ }
+];
+//# sourceMappingURL=manualJournalLine.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/manualJournalLine.js.map b/dist/gen/model/accounting/manualJournalLine.js.map
new file mode 100644
index 000000000..9c4c2719c
--- /dev/null
+++ b/dist/gen/model/accounting/manualJournalLine.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manualJournalLine.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/manualJournalLine.ts"],"names":[],"mappings":";;AAcA,MAAa,iBAAiB;IAqE1B,MAAM,CAAC,mBAAmB;QACtB,OAAO,iBAAiB,CAAC,gBAAgB,CAAC;IAC9C,CAAC;;AAvEL,8CAwEC;AA1CU,+BAAa,GAAuB,SAAS,CAAC;AAE9C,kCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,yBAAyB;KACpC;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/manualJournals.d.ts b/dist/gen/model/accounting/manualJournals.d.ts
new file mode 100644
index 000000000..9991ed759
--- /dev/null
+++ b/dist/gen/model/accounting/manualJournals.d.ts
@@ -0,0 +1,15 @@
+import { ManualJournal } from './manualJournal';
+export declare class ManualJournals {
+ 'manualJournals'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/manualJournals.js b/dist/gen/model/accounting/manualJournals.js
new file mode 100644
index 000000000..358f3156b
--- /dev/null
+++ b/dist/gen/model/accounting/manualJournals.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ManualJournals {
+ static getAttributeTypeMap() {
+ return ManualJournals.attributeTypeMap;
+ }
+}
+exports.ManualJournals = ManualJournals;
+ManualJournals.discriminator = undefined;
+ManualJournals.attributeTypeMap = [
+ {
+ "name": "manualJournals",
+ "baseName": "ManualJournals",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=manualJournals.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/manualJournals.js.map b/dist/gen/model/accounting/manualJournals.js.map
new file mode 100644
index 000000000..8fad0b18e
--- /dev/null
+++ b/dist/gen/model/accounting/manualJournals.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manualJournals.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/manualJournals.ts"],"names":[],"mappings":";;AAcA,MAAa,cAAc;IAYvB,MAAM,CAAC,mBAAmB;QACtB,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC3C,CAAC;;AAdL,wCAeC;AAZU,4BAAa,GAAuB,SAAS,CAAC;AAE9C,+BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,sBAAsB;KACjC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/modelError.d.ts b/dist/gen/model/accounting/modelError.d.ts
new file mode 100644
index 000000000..c3db38d61
--- /dev/null
+++ b/dist/gen/model/accounting/modelError.d.ts
@@ -0,0 +1,18 @@
+import { Element } from './element';
+export declare class ModelError {
+ 'errorNumber'?: number;
+ 'type'?: string;
+ 'message'?: string;
+ 'elements'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/modelError.js b/dist/gen/model/accounting/modelError.js
new file mode 100644
index 000000000..5bf2041e0
--- /dev/null
+++ b/dist/gen/model/accounting/modelError.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ModelError {
+ static getAttributeTypeMap() {
+ return ModelError.attributeTypeMap;
+ }
+}
+exports.ModelError = ModelError;
+ModelError.discriminator = undefined;
+ModelError.attributeTypeMap = [
+ {
+ "name": "errorNumber",
+ "baseName": "ErrorNumber",
+ "type": "number"
+ },
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "string"
+ },
+ {
+ "name": "message",
+ "baseName": "Message",
+ "type": "string"
+ },
+ {
+ "name": "elements",
+ "baseName": "Elements",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=modelError.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/modelError.js.map b/dist/gen/model/accounting/modelError.js.map
new file mode 100644
index 000000000..f61480fd4
--- /dev/null
+++ b/dist/gen/model/accounting/modelError.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"modelError.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/modelError.ts"],"names":[],"mappings":";;AAcA,MAAa,UAAU;IA0CnB,MAAM,CAAC,mBAAmB;QACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;;AA5CL,gCA6CC;AA3BU,wBAAa,GAAuB,SAAS,CAAC;AAE9C,2BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/models.d.ts b/dist/gen/model/accounting/models.d.ts
new file mode 100644
index 000000000..2da51dd7d
--- /dev/null
+++ b/dist/gen/model/accounting/models.d.ts
@@ -0,0 +1,142 @@
+export * from './account';
+export * from './accountType';
+export * from './accounts';
+export * from './accountsPayable';
+export * from './accountsReceivable';
+export * from './address';
+export * from './allocation';
+export * from './allocations';
+export * from './attachment';
+export * from './attachments';
+export * from './balances';
+export * from './bankTransaction';
+export * from './bankTransactions';
+export * from './bankTransfer';
+export * from './bankTransfers';
+export * from './batchPayment';
+export * from './batchPaymentDetails';
+export * from './batchPayments';
+export * from './bill';
+export * from './brandingTheme';
+export * from './brandingThemes';
+export * from './cISOrgSetting';
+export * from './cISSetting';
+export * from './cISSettings';
+export * from './contact';
+export * from './contactGroup';
+export * from './contactGroups';
+export * from './contactPerson';
+export * from './contacts';
+export * from './countryCode';
+export * from './creditNote';
+export * from './creditNotes';
+export * from './currencies';
+export * from './currency';
+export * from './currencyCode';
+export * from './element';
+export * from './employee';
+export * from './employees';
+export * from './expenseClaim';
+export * from './expenseClaims';
+export * from './externalLink';
+export * from './historyRecord';
+export * from './historyRecords';
+export * from './invoice';
+export * from './invoiceReminder';
+export * from './invoiceReminders';
+export * from './invoices';
+export * from './item';
+export * from './items';
+export * from './journal';
+export * from './journalLine';
+export * from './journals';
+export * from './lineAmountTypes';
+export * from './lineItem';
+export * from './lineItemTracking';
+export * from './linkedTransaction';
+export * from './linkedTransactions';
+export * from './manualJournal';
+export * from './manualJournalLine';
+export * from './manualJournals';
+export * from './modelError';
+export * from './onlineInvoice';
+export * from './onlineInvoices';
+export * from './organisation';
+export * from './organisations';
+export * from './overpayment';
+export * from './overpayments';
+export * from './payment';
+export * from './paymentService';
+export * from './paymentServices';
+export * from './paymentTerm';
+export * from './paymentTermType';
+export * from './payments';
+export * from './phone';
+export * from './prepayment';
+export * from './prepayments';
+export * from './purchase';
+export * from './purchaseOrder';
+export * from './purchaseOrders';
+export * from './quote';
+export * from './quoteStatusCodes';
+export * from './quotes';
+export * from './receipt';
+export * from './receipts';
+export * from './repeatingInvoice';
+export * from './repeatingInvoices';
+export * from './report';
+export * from './reportAttribute';
+export * from './reportCell';
+export * from './reportFields';
+export * from './reportRow';
+export * from './reportRows';
+export * from './reportWithRow';
+export * from './reportWithRows';
+export * from './reports';
+export * from './requestEmpty';
+export * from './rowType';
+export * from './salesTrackingCategory';
+export * from './schedule';
+export * from './taxComponent';
+export * from './taxRate';
+export * from './taxRates';
+export * from './taxType';
+export * from './tenNinteyNineContact';
+export * from './timeZone';
+export * from './trackingCategories';
+export * from './trackingCategory';
+export * from './trackingOption';
+export * from './trackingOptions';
+export * from './user';
+export * from './users';
+export * from './validationError';
+import localVarRequest = require('request');
+export declare class ObjectSerializer {
+ static findCorrectType(data: any, expectedType: string): any;
+ static serialize(data: any, type: string): any;
+ static deserialize(data: any, type: string): any;
+}
+export interface Authentication {
+ applyToRequest(requestOptions: localVarRequest.Options): Promise | void;
+}
+export declare class HttpBasicAuth implements Authentication {
+ username: string;
+ password: string;
+ applyToRequest(requestOptions: localVarRequest.Options): void;
+}
+export declare class ApiKeyAuth implements Authentication {
+ private location;
+ private paramName;
+ apiKey: string;
+ constructor(location: string, paramName: string);
+ applyToRequest(requestOptions: localVarRequest.Options): void;
+}
+export declare class OAuth implements Authentication {
+ accessToken: string;
+ applyToRequest(requestOptions: localVarRequest.Options): void;
+}
+export declare class VoidAuth implements Authentication {
+ username: string;
+ password: string;
+ applyToRequest(_: localVarRequest.Options): void;
+}
diff --git a/dist/gen/model/accounting/models.js b/dist/gen/model/accounting/models.js
new file mode 100644
index 000000000..ac0bf8225
--- /dev/null
+++ b/dist/gen/model/accounting/models.js
@@ -0,0 +1,567 @@
+"use strict";
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(require("./account"));
+__export(require("./accountType"));
+__export(require("./accounts"));
+__export(require("./accountsPayable"));
+__export(require("./accountsReceivable"));
+__export(require("./address"));
+__export(require("./allocation"));
+__export(require("./allocations"));
+__export(require("./attachment"));
+__export(require("./attachments"));
+__export(require("./balances"));
+__export(require("./bankTransaction"));
+__export(require("./bankTransactions"));
+__export(require("./bankTransfer"));
+__export(require("./bankTransfers"));
+__export(require("./batchPayment"));
+__export(require("./batchPaymentDetails"));
+__export(require("./batchPayments"));
+__export(require("./bill"));
+__export(require("./brandingTheme"));
+__export(require("./brandingThemes"));
+__export(require("./cISOrgSetting"));
+__export(require("./cISSetting"));
+__export(require("./cISSettings"));
+__export(require("./contact"));
+__export(require("./contactGroup"));
+__export(require("./contactGroups"));
+__export(require("./contactPerson"));
+__export(require("./contacts"));
+__export(require("./countryCode"));
+__export(require("./creditNote"));
+__export(require("./creditNotes"));
+__export(require("./currencies"));
+__export(require("./currency"));
+__export(require("./currencyCode"));
+__export(require("./element"));
+__export(require("./employee"));
+__export(require("./employees"));
+__export(require("./expenseClaim"));
+__export(require("./expenseClaims"));
+__export(require("./externalLink"));
+__export(require("./historyRecord"));
+__export(require("./historyRecords"));
+__export(require("./invoice"));
+__export(require("./invoiceReminder"));
+__export(require("./invoiceReminders"));
+__export(require("./invoices"));
+__export(require("./item"));
+__export(require("./items"));
+__export(require("./journal"));
+__export(require("./journalLine"));
+__export(require("./journals"));
+__export(require("./lineAmountTypes"));
+__export(require("./lineItem"));
+__export(require("./lineItemTracking"));
+__export(require("./linkedTransaction"));
+__export(require("./linkedTransactions"));
+__export(require("./manualJournal"));
+__export(require("./manualJournalLine"));
+__export(require("./manualJournals"));
+__export(require("./modelError"));
+__export(require("./onlineInvoice"));
+__export(require("./onlineInvoices"));
+__export(require("./organisation"));
+__export(require("./organisations"));
+__export(require("./overpayment"));
+__export(require("./overpayments"));
+__export(require("./payment"));
+__export(require("./paymentService"));
+__export(require("./paymentServices"));
+__export(require("./paymentTerm"));
+__export(require("./paymentTermType"));
+__export(require("./payments"));
+__export(require("./phone"));
+__export(require("./prepayment"));
+__export(require("./prepayments"));
+__export(require("./purchase"));
+__export(require("./purchaseOrder"));
+__export(require("./purchaseOrders"));
+__export(require("./quote"));
+__export(require("./quoteStatusCodes"));
+__export(require("./quotes"));
+__export(require("./receipt"));
+__export(require("./receipts"));
+__export(require("./repeatingInvoice"));
+__export(require("./repeatingInvoices"));
+__export(require("./report"));
+__export(require("./reportAttribute"));
+__export(require("./reportCell"));
+__export(require("./reportFields"));
+__export(require("./reportRow"));
+__export(require("./reportRows"));
+__export(require("./reportWithRow"));
+__export(require("./reportWithRows"));
+__export(require("./reports"));
+__export(require("./requestEmpty"));
+__export(require("./rowType"));
+__export(require("./salesTrackingCategory"));
+__export(require("./schedule"));
+__export(require("./taxComponent"));
+__export(require("./taxRate"));
+__export(require("./taxRates"));
+__export(require("./taxType"));
+__export(require("./tenNinteyNineContact"));
+__export(require("./timeZone"));
+__export(require("./trackingCategories"));
+__export(require("./trackingCategory"));
+__export(require("./trackingOption"));
+__export(require("./trackingOptions"));
+__export(require("./user"));
+__export(require("./users"));
+__export(require("./validationError"));
+const account_1 = require("./account");
+const accountType_1 = require("./accountType");
+const accounts_1 = require("./accounts");
+const accountsPayable_1 = require("./accountsPayable");
+const accountsReceivable_1 = require("./accountsReceivable");
+const address_1 = require("./address");
+const allocation_1 = require("./allocation");
+const allocations_1 = require("./allocations");
+const attachment_1 = require("./attachment");
+const attachments_1 = require("./attachments");
+const balances_1 = require("./balances");
+const bankTransaction_1 = require("./bankTransaction");
+const bankTransactions_1 = require("./bankTransactions");
+const bankTransfer_1 = require("./bankTransfer");
+const bankTransfers_1 = require("./bankTransfers");
+const batchPayment_1 = require("./batchPayment");
+const batchPaymentDetails_1 = require("./batchPaymentDetails");
+const batchPayments_1 = require("./batchPayments");
+const bill_1 = require("./bill");
+const brandingTheme_1 = require("./brandingTheme");
+const brandingThemes_1 = require("./brandingThemes");
+const cISOrgSetting_1 = require("./cISOrgSetting");
+const cISSetting_1 = require("./cISSetting");
+const cISSettings_1 = require("./cISSettings");
+const contact_1 = require("./contact");
+const contactGroup_1 = require("./contactGroup");
+const contactGroups_1 = require("./contactGroups");
+const contactPerson_1 = require("./contactPerson");
+const contacts_1 = require("./contacts");
+const countryCode_1 = require("./countryCode");
+const creditNote_1 = require("./creditNote");
+const creditNotes_1 = require("./creditNotes");
+const currencies_1 = require("./currencies");
+const currency_1 = require("./currency");
+const currencyCode_1 = require("./currencyCode");
+const element_1 = require("./element");
+const employee_1 = require("./employee");
+const employees_1 = require("./employees");
+const expenseClaim_1 = require("./expenseClaim");
+const expenseClaims_1 = require("./expenseClaims");
+const externalLink_1 = require("./externalLink");
+const historyRecord_1 = require("./historyRecord");
+const historyRecords_1 = require("./historyRecords");
+const invoice_1 = require("./invoice");
+const invoiceReminder_1 = require("./invoiceReminder");
+const invoiceReminders_1 = require("./invoiceReminders");
+const invoices_1 = require("./invoices");
+const item_1 = require("./item");
+const items_1 = require("./items");
+const journal_1 = require("./journal");
+const journalLine_1 = require("./journalLine");
+const journals_1 = require("./journals");
+const lineAmountTypes_1 = require("./lineAmountTypes");
+const lineItem_1 = require("./lineItem");
+const lineItemTracking_1 = require("./lineItemTracking");
+const linkedTransaction_1 = require("./linkedTransaction");
+const linkedTransactions_1 = require("./linkedTransactions");
+const manualJournal_1 = require("./manualJournal");
+const manualJournalLine_1 = require("./manualJournalLine");
+const manualJournals_1 = require("./manualJournals");
+const modelError_1 = require("./modelError");
+const onlineInvoice_1 = require("./onlineInvoice");
+const onlineInvoices_1 = require("./onlineInvoices");
+const organisation_1 = require("./organisation");
+const organisations_1 = require("./organisations");
+const overpayment_1 = require("./overpayment");
+const overpayments_1 = require("./overpayments");
+const payment_1 = require("./payment");
+const paymentService_1 = require("./paymentService");
+const paymentServices_1 = require("./paymentServices");
+const paymentTerm_1 = require("./paymentTerm");
+const paymentTermType_1 = require("./paymentTermType");
+const payments_1 = require("./payments");
+const phone_1 = require("./phone");
+const prepayment_1 = require("./prepayment");
+const prepayments_1 = require("./prepayments");
+const purchase_1 = require("./purchase");
+const purchaseOrder_1 = require("./purchaseOrder");
+const purchaseOrders_1 = require("./purchaseOrders");
+const quote_1 = require("./quote");
+const quoteStatusCodes_1 = require("./quoteStatusCodes");
+const quotes_1 = require("./quotes");
+const receipt_1 = require("./receipt");
+const receipts_1 = require("./receipts");
+const repeatingInvoice_1 = require("./repeatingInvoice");
+const repeatingInvoices_1 = require("./repeatingInvoices");
+const report_1 = require("./report");
+const reportAttribute_1 = require("./reportAttribute");
+const reportCell_1 = require("./reportCell");
+const reportFields_1 = require("./reportFields");
+const reportRow_1 = require("./reportRow");
+const reportRows_1 = require("./reportRows");
+const reportWithRow_1 = require("./reportWithRow");
+const reportWithRows_1 = require("./reportWithRows");
+const reports_1 = require("./reports");
+const requestEmpty_1 = require("./requestEmpty");
+const rowType_1 = require("./rowType");
+const salesTrackingCategory_1 = require("./salesTrackingCategory");
+const schedule_1 = require("./schedule");
+const taxComponent_1 = require("./taxComponent");
+const taxRate_1 = require("./taxRate");
+const taxRates_1 = require("./taxRates");
+const taxType_1 = require("./taxType");
+const tenNinteyNineContact_1 = require("./tenNinteyNineContact");
+const timeZone_1 = require("./timeZone");
+const trackingCategories_1 = require("./trackingCategories");
+const trackingCategory_1 = require("./trackingCategory");
+const trackingOption_1 = require("./trackingOption");
+const trackingOptions_1 = require("./trackingOptions");
+const user_1 = require("./user");
+const users_1 = require("./users");
+const validationError_1 = require("./validationError");
+let primitives = [
+ "string",
+ "boolean",
+ "double",
+ "integer",
+ "long",
+ "float",
+ "number",
+ "any"
+];
+let enumsMap = {
+ "Account.StatusEnum": account_1.Account.StatusEnum,
+ "Account.BankAccountTypeEnum": account_1.Account.BankAccountTypeEnum,
+ "Account.ClassEnum": account_1.Account.ClassEnum,
+ "Account.SystemAccountEnum": account_1.Account.SystemAccountEnum,
+ "AccountType": accountType_1.AccountType,
+ "Address.AddressTypeEnum": address_1.Address.AddressTypeEnum,
+ "BankTransaction.TypeEnum": bankTransaction_1.BankTransaction.TypeEnum,
+ "BankTransaction.StatusEnum": bankTransaction_1.BankTransaction.StatusEnum,
+ "BatchPayment.TypeEnum": batchPayment_1.BatchPayment.TypeEnum,
+ "BrandingTheme.TypeEnum": brandingTheme_1.BrandingTheme.TypeEnum,
+ "Contact.ContactStatusEnum": contact_1.Contact.ContactStatusEnum,
+ "ContactGroup.StatusEnum": contactGroup_1.ContactGroup.StatusEnum,
+ "CountryCode": countryCode_1.CountryCode,
+ "CreditNote.TypeEnum": creditNote_1.CreditNote.TypeEnum,
+ "CreditNote.StatusEnum": creditNote_1.CreditNote.StatusEnum,
+ "CurrencyCode": currencyCode_1.CurrencyCode,
+ "Employee.StatusEnum": employee_1.Employee.StatusEnum,
+ "ExpenseClaim.StatusEnum": expenseClaim_1.ExpenseClaim.StatusEnum,
+ "ExternalLink.LinkTypeEnum": externalLink_1.ExternalLink.LinkTypeEnum,
+ "Invoice.TypeEnum": invoice_1.Invoice.TypeEnum,
+ "Invoice.StatusEnum": invoice_1.Invoice.StatusEnum,
+ "Journal.SourceTypeEnum": journal_1.Journal.SourceTypeEnum,
+ "LineAmountTypes": lineAmountTypes_1.LineAmountTypes,
+ "LinkedTransaction.StatusEnum": linkedTransaction_1.LinkedTransaction.StatusEnum,
+ "LinkedTransaction.TypeEnum": linkedTransaction_1.LinkedTransaction.TypeEnum,
+ "LinkedTransaction.SourceTransactionTypeCodeEnum": linkedTransaction_1.LinkedTransaction.SourceTransactionTypeCodeEnum,
+ "ManualJournal.StatusEnum": manualJournal_1.ManualJournal.StatusEnum,
+ "Organisation.VersionEnum": organisation_1.Organisation.VersionEnum,
+ "Organisation.OrganisationTypeEnum": organisation_1.Organisation.OrganisationTypeEnum,
+ "Organisation.SalesTaxBasisEnum": organisation_1.Organisation.SalesTaxBasisEnum,
+ "Organisation.SalesTaxPeriodEnum": organisation_1.Organisation.SalesTaxPeriodEnum,
+ "Organisation.OrganisationEntityTypeEnum": organisation_1.Organisation.OrganisationEntityTypeEnum,
+ "Organisation.ClassEnum": organisation_1.Organisation.ClassEnum,
+ "Organisation.EditionEnum": organisation_1.Organisation.EditionEnum,
+ "Overpayment.TypeEnum": overpayment_1.Overpayment.TypeEnum,
+ "Overpayment.StatusEnum": overpayment_1.Overpayment.StatusEnum,
+ "Payment.StatusEnum": payment_1.Payment.StatusEnum,
+ "Payment.PaymentTypeEnum": payment_1.Payment.PaymentTypeEnum,
+ "PaymentTermType": paymentTermType_1.PaymentTermType,
+ "Phone.PhoneTypeEnum": phone_1.Phone.PhoneTypeEnum,
+ "Prepayment.TypeEnum": prepayment_1.Prepayment.TypeEnum,
+ "Prepayment.StatusEnum": prepayment_1.Prepayment.StatusEnum,
+ "PurchaseOrder.StatusEnum": purchaseOrder_1.PurchaseOrder.StatusEnum,
+ "QuoteStatusCodes": quoteStatusCodes_1.QuoteStatusCodes,
+ "Receipt.StatusEnum": receipt_1.Receipt.StatusEnum,
+ "RepeatingInvoice.TypeEnum": repeatingInvoice_1.RepeatingInvoice.TypeEnum,
+ "RepeatingInvoice.StatusEnum": repeatingInvoice_1.RepeatingInvoice.StatusEnum,
+ "Report.ReportTypeEnum": report_1.Report.ReportTypeEnum,
+ "RowType": rowType_1.RowType,
+ "Schedule.UnitEnum": schedule_1.Schedule.UnitEnum,
+ "Schedule.DueDateTypeEnum": schedule_1.Schedule.DueDateTypeEnum,
+ "TaxRate.StatusEnum": taxRate_1.TaxRate.StatusEnum,
+ "TaxRate.ReportTaxTypeEnum": taxRate_1.TaxRate.ReportTaxTypeEnum,
+ "TaxType": taxType_1.TaxType,
+ "TimeZone": timeZone_1.TimeZone,
+ "TrackingCategory.StatusEnum": trackingCategory_1.TrackingCategory.StatusEnum,
+ "TrackingOption.StatusEnum": trackingOption_1.TrackingOption.StatusEnum,
+ "User.OrganisationRoleEnum": user_1.User.OrganisationRoleEnum,
+};
+let typeMap = {
+ "Account": account_1.Account,
+ "Accounts": accounts_1.Accounts,
+ "AccountsPayable": accountsPayable_1.AccountsPayable,
+ "AccountsReceivable": accountsReceivable_1.AccountsReceivable,
+ "Address": address_1.Address,
+ "Allocation": allocation_1.Allocation,
+ "Allocations": allocations_1.Allocations,
+ "Attachment": attachment_1.Attachment,
+ "Attachments": attachments_1.Attachments,
+ "Balances": balances_1.Balances,
+ "BankTransaction": bankTransaction_1.BankTransaction,
+ "BankTransactions": bankTransactions_1.BankTransactions,
+ "BankTransfer": bankTransfer_1.BankTransfer,
+ "BankTransfers": bankTransfers_1.BankTransfers,
+ "BatchPayment": batchPayment_1.BatchPayment,
+ "BatchPaymentDetails": batchPaymentDetails_1.BatchPaymentDetails,
+ "BatchPayments": batchPayments_1.BatchPayments,
+ "Bill": bill_1.Bill,
+ "BrandingTheme": brandingTheme_1.BrandingTheme,
+ "BrandingThemes": brandingThemes_1.BrandingThemes,
+ "CISOrgSetting": cISOrgSetting_1.CISOrgSetting,
+ "CISSetting": cISSetting_1.CISSetting,
+ "CISSettings": cISSettings_1.CISSettings,
+ "Contact": contact_1.Contact,
+ "ContactGroup": contactGroup_1.ContactGroup,
+ "ContactGroups": contactGroups_1.ContactGroups,
+ "ContactPerson": contactPerson_1.ContactPerson,
+ "Contacts": contacts_1.Contacts,
+ "CreditNote": creditNote_1.CreditNote,
+ "CreditNotes": creditNotes_1.CreditNotes,
+ "Currencies": currencies_1.Currencies,
+ "Currency": currency_1.Currency,
+ "Element": element_1.Element,
+ "Employee": employee_1.Employee,
+ "Employees": employees_1.Employees,
+ "ExpenseClaim": expenseClaim_1.ExpenseClaim,
+ "ExpenseClaims": expenseClaims_1.ExpenseClaims,
+ "ExternalLink": externalLink_1.ExternalLink,
+ "HistoryRecord": historyRecord_1.HistoryRecord,
+ "HistoryRecords": historyRecords_1.HistoryRecords,
+ "Invoice": invoice_1.Invoice,
+ "InvoiceReminder": invoiceReminder_1.InvoiceReminder,
+ "InvoiceReminders": invoiceReminders_1.InvoiceReminders,
+ "Invoices": invoices_1.Invoices,
+ "Item": item_1.Item,
+ "Items": items_1.Items,
+ "Journal": journal_1.Journal,
+ "JournalLine": journalLine_1.JournalLine,
+ "Journals": journals_1.Journals,
+ "LineItem": lineItem_1.LineItem,
+ "LineItemTracking": lineItemTracking_1.LineItemTracking,
+ "LinkedTransaction": linkedTransaction_1.LinkedTransaction,
+ "LinkedTransactions": linkedTransactions_1.LinkedTransactions,
+ "ManualJournal": manualJournal_1.ManualJournal,
+ "ManualJournalLine": manualJournalLine_1.ManualJournalLine,
+ "ManualJournals": manualJournals_1.ManualJournals,
+ "ModelError": modelError_1.ModelError,
+ "OnlineInvoice": onlineInvoice_1.OnlineInvoice,
+ "OnlineInvoices": onlineInvoices_1.OnlineInvoices,
+ "Organisation": organisation_1.Organisation,
+ "Organisations": organisations_1.Organisations,
+ "Overpayment": overpayment_1.Overpayment,
+ "Overpayments": overpayments_1.Overpayments,
+ "Payment": payment_1.Payment,
+ "PaymentService": paymentService_1.PaymentService,
+ "PaymentServices": paymentServices_1.PaymentServices,
+ "PaymentTerm": paymentTerm_1.PaymentTerm,
+ "Payments": payments_1.Payments,
+ "Phone": phone_1.Phone,
+ "Prepayment": prepayment_1.Prepayment,
+ "Prepayments": prepayments_1.Prepayments,
+ "Purchase": purchase_1.Purchase,
+ "PurchaseOrder": purchaseOrder_1.PurchaseOrder,
+ "PurchaseOrders": purchaseOrders_1.PurchaseOrders,
+ "Quote": quote_1.Quote,
+ "Quotes": quotes_1.Quotes,
+ "Receipt": receipt_1.Receipt,
+ "Receipts": receipts_1.Receipts,
+ "RepeatingInvoice": repeatingInvoice_1.RepeatingInvoice,
+ "RepeatingInvoices": repeatingInvoices_1.RepeatingInvoices,
+ "Report": report_1.Report,
+ "ReportAttribute": reportAttribute_1.ReportAttribute,
+ "ReportCell": reportCell_1.ReportCell,
+ "ReportFields": reportFields_1.ReportFields,
+ "ReportRow": reportRow_1.ReportRow,
+ "ReportRows": reportRows_1.ReportRows,
+ "ReportWithRow": reportWithRow_1.ReportWithRow,
+ "ReportWithRows": reportWithRows_1.ReportWithRows,
+ "Reports": reports_1.Reports,
+ "RequestEmpty": requestEmpty_1.RequestEmpty,
+ "SalesTrackingCategory": salesTrackingCategory_1.SalesTrackingCategory,
+ "Schedule": schedule_1.Schedule,
+ "TaxComponent": taxComponent_1.TaxComponent,
+ "TaxRate": taxRate_1.TaxRate,
+ "TaxRates": taxRates_1.TaxRates,
+ "TenNinteyNineContact": tenNinteyNineContact_1.TenNinteyNineContact,
+ "TrackingCategories": trackingCategories_1.TrackingCategories,
+ "TrackingCategory": trackingCategory_1.TrackingCategory,
+ "TrackingOption": trackingOption_1.TrackingOption,
+ "TrackingOptions": trackingOptions_1.TrackingOptions,
+ "User": user_1.User,
+ "Users": users_1.Users,
+ "ValidationError": validationError_1.ValidationError,
+};
+class ObjectSerializer {
+ static findCorrectType(data, expectedType) {
+ if (data == undefined) {
+ return expectedType;
+ }
+ else if (primitives.indexOf(expectedType.toLowerCase()) !== -1) {
+ return expectedType;
+ }
+ else if (expectedType === "Date") {
+ return expectedType;
+ }
+ else {
+ if (enumsMap[expectedType]) {
+ return expectedType;
+ }
+ if (!typeMap[expectedType]) {
+ return expectedType;
+ }
+ let discriminatorProperty = typeMap[expectedType].discriminator;
+ if (discriminatorProperty == null) {
+ return expectedType;
+ }
+ else {
+ if (data[discriminatorProperty]) {
+ var discriminatorType = data[discriminatorProperty];
+ if (typeMap[discriminatorType]) {
+ return discriminatorType;
+ }
+ else {
+ return expectedType;
+ }
+ }
+ else {
+ return expectedType;
+ }
+ }
+ }
+ }
+ static serialize(data, type) {
+ if (data == undefined) {
+ return data;
+ }
+ else if (primitives.indexOf(type.toLowerCase()) !== -1) {
+ return data;
+ }
+ else if (type.lastIndexOf("Array<", 0) === 0) {
+ let subType = type.replace("Array<", "");
+ subType = subType.substring(0, subType.length - 1);
+ let transformedData = [];
+ for (let index in data) {
+ let date = data[index];
+ transformedData.push(ObjectSerializer.serialize(date, subType));
+ }
+ return transformedData;
+ }
+ else if (type === "Date") {
+ return data.toISOString();
+ }
+ else {
+ if (enumsMap[type]) {
+ return data;
+ }
+ if (!typeMap[type]) {
+ return data;
+ }
+ type = this.findCorrectType(data, type);
+ let attributeTypes = typeMap[type].getAttributeTypeMap();
+ let instance = {};
+ for (let index in attributeTypes) {
+ let attributeType = attributeTypes[index];
+ instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type);
+ }
+ return instance;
+ }
+ }
+ static deserialize(data, type) {
+ type = ObjectSerializer.findCorrectType(data, type);
+ if (data == undefined) {
+ return data;
+ }
+ else if (primitives.indexOf(type.toLowerCase()) !== -1) {
+ return data;
+ }
+ else if (type.lastIndexOf("Array<", 0) === 0) {
+ let subType = type.replace("Array<", "");
+ subType = subType.substring(0, subType.length - 1);
+ let transformedData = [];
+ for (let index in data) {
+ let date = data[index];
+ transformedData.push(ObjectSerializer.deserialize(date, subType));
+ }
+ return transformedData;
+ }
+ else if (type === "Date") {
+ return new Date(data);
+ }
+ else {
+ if (enumsMap[type]) {
+ return data;
+ }
+ if (!typeMap[type]) {
+ return data;
+ }
+ let instance = new typeMap[type]();
+ let attributeTypes = typeMap[type].getAttributeTypeMap();
+ for (let index in attributeTypes) {
+ let attributeType = attributeTypes[index];
+ instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type);
+ }
+ return instance;
+ }
+ }
+}
+exports.ObjectSerializer = ObjectSerializer;
+class HttpBasicAuth {
+ constructor() {
+ this.username = '';
+ this.password = '';
+ }
+ applyToRequest(requestOptions) {
+ requestOptions.auth = {
+ username: this.username, password: this.password
+ };
+ }
+}
+exports.HttpBasicAuth = HttpBasicAuth;
+class ApiKeyAuth {
+ constructor(location, paramName) {
+ this.location = location;
+ this.paramName = paramName;
+ this.apiKey = '';
+ }
+ applyToRequest(requestOptions) {
+ if (this.location == "query") {
+ requestOptions.qs[this.paramName] = this.apiKey;
+ }
+ else if (this.location == "header" && requestOptions && requestOptions.headers) {
+ requestOptions.headers[this.paramName] = this.apiKey;
+ }
+ }
+}
+exports.ApiKeyAuth = ApiKeyAuth;
+class OAuth {
+ constructor() {
+ this.accessToken = '';
+ }
+ applyToRequest(requestOptions) {
+ if (requestOptions && requestOptions.headers) {
+ requestOptions.headers["Authorization"] = "Bearer " + this.accessToken;
+ }
+ }
+}
+exports.OAuth = OAuth;
+class VoidAuth {
+ constructor() {
+ this.username = '';
+ this.password = '';
+ }
+ applyToRequest(_) {
+ }
+}
+exports.VoidAuth = VoidAuth;
+//# sourceMappingURL=models.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/models.js.map b/dist/gen/model/accounting/models.js.map
new file mode 100644
index 000000000..980efb264
--- /dev/null
+++ b/dist/gen/model/accounting/models.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/models.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/onlineInvoice.d.ts b/dist/gen/model/accounting/onlineInvoice.d.ts
new file mode 100644
index 000000000..0a5f23d8b
--- /dev/null
+++ b/dist/gen/model/accounting/onlineInvoice.d.ts
@@ -0,0 +1,14 @@
+export declare class OnlineInvoice {
+ 'onlineInvoiceUrl'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/onlineInvoice.js b/dist/gen/model/accounting/onlineInvoice.js
new file mode 100644
index 000000000..c11816676
--- /dev/null
+++ b/dist/gen/model/accounting/onlineInvoice.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class OnlineInvoice {
+ static getAttributeTypeMap() {
+ return OnlineInvoice.attributeTypeMap;
+ }
+}
+exports.OnlineInvoice = OnlineInvoice;
+OnlineInvoice.discriminator = undefined;
+OnlineInvoice.attributeTypeMap = [
+ {
+ "name": "onlineInvoiceUrl",
+ "baseName": "OnlineInvoiceUrl",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=onlineInvoice.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/onlineInvoice.js.map b/dist/gen/model/accounting/onlineInvoice.js.map
new file mode 100644
index 000000000..71cc4a6ed
--- /dev/null
+++ b/dist/gen/model/accounting/onlineInvoice.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"onlineInvoice.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/onlineInvoice.ts"],"names":[],"mappings":";;AAaA,MAAa,aAAa;IAetB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AAjBL,sCAkBC;AAZU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/onlineInvoices.d.ts b/dist/gen/model/accounting/onlineInvoices.d.ts
new file mode 100644
index 000000000..d990e8097
--- /dev/null
+++ b/dist/gen/model/accounting/onlineInvoices.d.ts
@@ -0,0 +1,15 @@
+import { OnlineInvoice } from './onlineInvoice';
+export declare class OnlineInvoices {
+ 'onlineInvoices'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/onlineInvoices.js b/dist/gen/model/accounting/onlineInvoices.js
new file mode 100644
index 000000000..afccdabe5
--- /dev/null
+++ b/dist/gen/model/accounting/onlineInvoices.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class OnlineInvoices {
+ static getAttributeTypeMap() {
+ return OnlineInvoices.attributeTypeMap;
+ }
+}
+exports.OnlineInvoices = OnlineInvoices;
+OnlineInvoices.discriminator = undefined;
+OnlineInvoices.attributeTypeMap = [
+ {
+ "name": "onlineInvoices",
+ "baseName": "OnlineInvoices",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=onlineInvoices.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/onlineInvoices.js.map b/dist/gen/model/accounting/onlineInvoices.js.map
new file mode 100644
index 000000000..bde299719
--- /dev/null
+++ b/dist/gen/model/accounting/onlineInvoices.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"onlineInvoices.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/onlineInvoices.ts"],"names":[],"mappings":";;AAcA,MAAa,cAAc;IAYvB,MAAM,CAAC,mBAAmB;QACtB,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC3C,CAAC;;AAdL,wCAeC;AAZU,4BAAa,GAAuB,SAAS,CAAC;AAE9C,+BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,sBAAsB;KACjC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/organisation.d.ts b/dist/gen/model/accounting/organisation.d.ts
new file mode 100644
index 000000000..63676ca4e
--- /dev/null
+++ b/dist/gen/model/accounting/organisation.d.ts
@@ -0,0 +1,137 @@
+import { Address } from './address';
+import { CountryCode } from './countryCode';
+import { CurrencyCode } from './currencyCode';
+import { ExternalLink } from './externalLink';
+import { PaymentTerm } from './paymentTerm';
+import { Phone } from './phone';
+import { TimeZone } from './timeZone';
+export declare class Organisation {
+ 'organisationID'?: string;
+ 'aPIKey'?: string;
+ 'name'?: string;
+ 'legalName'?: string;
+ 'paysTax'?: boolean;
+ 'version'?: Organisation.VersionEnum;
+ 'organisationType'?: Organisation.OrganisationTypeEnum;
+ 'baseCurrency'?: CurrencyCode;
+ 'countryCode'?: CountryCode;
+ 'isDemoCompany'?: boolean;
+ 'organisationStatus'?: string;
+ 'registrationNumber'?: string;
+ 'taxNumber'?: string;
+ 'financialYearEndDay'?: number;
+ 'financialYearEndMonth'?: number;
+ 'salesTaxBasis'?: Organisation.SalesTaxBasisEnum;
+ 'salesTaxPeriod'?: Organisation.SalesTaxPeriodEnum;
+ 'defaultSalesTax'?: string;
+ 'defaultPurchasesTax'?: string;
+ 'periodLockDate'?: string;
+ 'endOfYearLockDate'?: string;
+ 'createdDateUTC'?: Date;
+ 'timezone'?: TimeZone;
+ 'organisationEntityType'?: Organisation.OrganisationEntityTypeEnum;
+ 'shortCode'?: string;
+ '_class'?: Organisation.ClassEnum;
+ 'edition'?: Organisation.EditionEnum;
+ 'lineOfBusiness'?: string;
+ 'addresses'?: Array;
+ 'phones'?: Array;
+ 'externalLinks'?: Array;
+ 'paymentTerms'?: PaymentTerm;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Organisation {
+ enum VersionEnum {
+ AU,
+ NZ,
+ GLOBAL,
+ UK,
+ US,
+ AUONRAMP,
+ NZONRAMP,
+ GLOBALONRAMP,
+ UKONRAMP,
+ USONRAMP
+ }
+ enum OrganisationTypeEnum {
+ ACCOUNTINGPRACTICE,
+ COMPANY,
+ CHARITY,
+ CLUBORSOCIETY,
+ LOOKTHROUGHCOMPANY,
+ NOTFORPROFIT,
+ PARTNERSHIP,
+ SCORPORATION,
+ SELFMANAGEDSUPERANNUATIONFUND,
+ SOLETRADER,
+ SUPERANNUATIONFUND,
+ TRUST
+ }
+ enum SalesTaxBasisEnum {
+ PAYMENTS,
+ INVOICE,
+ NONE,
+ CASH,
+ ACCRUAL,
+ FLATRATECASH,
+ FLATRATEACCRUAL,
+ ACCRUALS
+ }
+ enum SalesTaxPeriodEnum {
+ MONTHLY,
+ QUARTERLY1,
+ QUARTERLY2,
+ QUARTERLY3,
+ ANNUALLY,
+ ONEMONTHS,
+ TWOMONTHS,
+ SIXMONTHS,
+ _1MONTHLY,
+ _2MONTHLY,
+ _3MONTHLY,
+ _6MONTHLY,
+ QUARTERLY,
+ YEARLY
+ }
+ enum OrganisationEntityTypeEnum {
+ ACCOUNTINGPRACTICE,
+ COMPANY,
+ CHARITY,
+ CLUBORSOCIETY,
+ LOOKTHROUGHCOMPANY,
+ NOTFORPROFIT,
+ PARTNERSHIP,
+ SCORPORATION,
+ SELFMANAGEDSUPERANNUATIONFUND,
+ SOLETRADER,
+ SUPERANNUATIONFUND,
+ TRUST
+ }
+ enum ClassEnum {
+ DEMO,
+ TRIAL,
+ STARTER,
+ STANDARD,
+ PREMIUM,
+ PREMIUM20,
+ PREMIUM50,
+ PREMIUM100,
+ LEDGER,
+ GSTCASHBOOK,
+ NONGSTCASHBOOK
+ }
+ enum EditionEnum {
+ BUSINESS,
+ PARTNER
+ }
+}
diff --git a/dist/gen/model/accounting/organisation.js b/dist/gen/model/accounting/organisation.js
new file mode 100644
index 000000000..6c586caa1
--- /dev/null
+++ b/dist/gen/model/accounting/organisation.js
@@ -0,0 +1,264 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Organisation {
+ static getAttributeTypeMap() {
+ return Organisation.attributeTypeMap;
+ }
+}
+exports.Organisation = Organisation;
+Organisation.discriminator = undefined;
+Organisation.attributeTypeMap = [
+ {
+ "name": "organisationID",
+ "baseName": "OrganisationID",
+ "type": "string"
+ },
+ {
+ "name": "aPIKey",
+ "baseName": "APIKey",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "legalName",
+ "baseName": "LegalName",
+ "type": "string"
+ },
+ {
+ "name": "paysTax",
+ "baseName": "PaysTax",
+ "type": "boolean"
+ },
+ {
+ "name": "version",
+ "baseName": "Version",
+ "type": "Organisation.VersionEnum"
+ },
+ {
+ "name": "organisationType",
+ "baseName": "OrganisationType",
+ "type": "Organisation.OrganisationTypeEnum"
+ },
+ {
+ "name": "baseCurrency",
+ "baseName": "BaseCurrency",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "countryCode",
+ "baseName": "CountryCode",
+ "type": "CountryCode"
+ },
+ {
+ "name": "isDemoCompany",
+ "baseName": "IsDemoCompany",
+ "type": "boolean"
+ },
+ {
+ "name": "organisationStatus",
+ "baseName": "OrganisationStatus",
+ "type": "string"
+ },
+ {
+ "name": "registrationNumber",
+ "baseName": "RegistrationNumber",
+ "type": "string"
+ },
+ {
+ "name": "taxNumber",
+ "baseName": "TaxNumber",
+ "type": "string"
+ },
+ {
+ "name": "financialYearEndDay",
+ "baseName": "FinancialYearEndDay",
+ "type": "number"
+ },
+ {
+ "name": "financialYearEndMonth",
+ "baseName": "FinancialYearEndMonth",
+ "type": "number"
+ },
+ {
+ "name": "salesTaxBasis",
+ "baseName": "SalesTaxBasis",
+ "type": "Organisation.SalesTaxBasisEnum"
+ },
+ {
+ "name": "salesTaxPeriod",
+ "baseName": "SalesTaxPeriod",
+ "type": "Organisation.SalesTaxPeriodEnum"
+ },
+ {
+ "name": "defaultSalesTax",
+ "baseName": "DefaultSalesTax",
+ "type": "string"
+ },
+ {
+ "name": "defaultPurchasesTax",
+ "baseName": "DefaultPurchasesTax",
+ "type": "string"
+ },
+ {
+ "name": "periodLockDate",
+ "baseName": "PeriodLockDate",
+ "type": "string"
+ },
+ {
+ "name": "endOfYearLockDate",
+ "baseName": "EndOfYearLockDate",
+ "type": "string"
+ },
+ {
+ "name": "createdDateUTC",
+ "baseName": "CreatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "timezone",
+ "baseName": "Timezone",
+ "type": "TimeZone"
+ },
+ {
+ "name": "organisationEntityType",
+ "baseName": "OrganisationEntityType",
+ "type": "Organisation.OrganisationEntityTypeEnum"
+ },
+ {
+ "name": "shortCode",
+ "baseName": "ShortCode",
+ "type": "string"
+ },
+ {
+ "name": "_class",
+ "baseName": "Class",
+ "type": "Organisation.ClassEnum"
+ },
+ {
+ "name": "edition",
+ "baseName": "Edition",
+ "type": "Organisation.EditionEnum"
+ },
+ {
+ "name": "lineOfBusiness",
+ "baseName": "LineOfBusiness",
+ "type": "string"
+ },
+ {
+ "name": "addresses",
+ "baseName": "Addresses",
+ "type": "Array"
+ },
+ {
+ "name": "phones",
+ "baseName": "Phones",
+ "type": "Array"
+ },
+ {
+ "name": "externalLinks",
+ "baseName": "ExternalLinks",
+ "type": "Array"
+ },
+ {
+ "name": "paymentTerms",
+ "baseName": "PaymentTerms",
+ "type": "PaymentTerm"
+ }
+];
+(function (Organisation) {
+ let VersionEnum;
+ (function (VersionEnum) {
+ VersionEnum[VersionEnum["AU"] = 'AU'] = "AU";
+ VersionEnum[VersionEnum["NZ"] = 'NZ'] = "NZ";
+ VersionEnum[VersionEnum["GLOBAL"] = 'GLOBAL'] = "GLOBAL";
+ VersionEnum[VersionEnum["UK"] = 'UK'] = "UK";
+ VersionEnum[VersionEnum["US"] = 'US'] = "US";
+ VersionEnum[VersionEnum["AUONRAMP"] = 'AUONRAMP'] = "AUONRAMP";
+ VersionEnum[VersionEnum["NZONRAMP"] = 'NZONRAMP'] = "NZONRAMP";
+ VersionEnum[VersionEnum["GLOBALONRAMP"] = 'GLOBALONRAMP'] = "GLOBALONRAMP";
+ VersionEnum[VersionEnum["UKONRAMP"] = 'UKONRAMP'] = "UKONRAMP";
+ VersionEnum[VersionEnum["USONRAMP"] = 'USONRAMP'] = "USONRAMP";
+ })(VersionEnum = Organisation.VersionEnum || (Organisation.VersionEnum = {}));
+ let OrganisationTypeEnum;
+ (function (OrganisationTypeEnum) {
+ OrganisationTypeEnum[OrganisationTypeEnum["ACCOUNTINGPRACTICE"] = 'ACCOUNTING_PRACTICE'] = "ACCOUNTINGPRACTICE";
+ OrganisationTypeEnum[OrganisationTypeEnum["COMPANY"] = 'COMPANY'] = "COMPANY";
+ OrganisationTypeEnum[OrganisationTypeEnum["CHARITY"] = 'CHARITY'] = "CHARITY";
+ OrganisationTypeEnum[OrganisationTypeEnum["CLUBORSOCIETY"] = 'CLUB_OR_SOCIETY'] = "CLUBORSOCIETY";
+ OrganisationTypeEnum[OrganisationTypeEnum["LOOKTHROUGHCOMPANY"] = 'LOOK_THROUGH_COMPANY'] = "LOOKTHROUGHCOMPANY";
+ OrganisationTypeEnum[OrganisationTypeEnum["NOTFORPROFIT"] = 'NOT_FOR_PROFIT'] = "NOTFORPROFIT";
+ OrganisationTypeEnum[OrganisationTypeEnum["PARTNERSHIP"] = 'PARTNERSHIP'] = "PARTNERSHIP";
+ OrganisationTypeEnum[OrganisationTypeEnum["SCORPORATION"] = 'S_CORPORATION'] = "SCORPORATION";
+ OrganisationTypeEnum[OrganisationTypeEnum["SELFMANAGEDSUPERANNUATIONFUND"] = 'SELF_MANAGED_SUPERANNUATION_FUND'] = "SELFMANAGEDSUPERANNUATIONFUND";
+ OrganisationTypeEnum[OrganisationTypeEnum["SOLETRADER"] = 'SOLE_TRADER'] = "SOLETRADER";
+ OrganisationTypeEnum[OrganisationTypeEnum["SUPERANNUATIONFUND"] = 'SUPERANNUATION_FUND'] = "SUPERANNUATIONFUND";
+ OrganisationTypeEnum[OrganisationTypeEnum["TRUST"] = 'TRUST'] = "TRUST";
+ })(OrganisationTypeEnum = Organisation.OrganisationTypeEnum || (Organisation.OrganisationTypeEnum = {}));
+ let SalesTaxBasisEnum;
+ (function (SalesTaxBasisEnum) {
+ SalesTaxBasisEnum[SalesTaxBasisEnum["PAYMENTS"] = 'PAYMENTS'] = "PAYMENTS";
+ SalesTaxBasisEnum[SalesTaxBasisEnum["INVOICE"] = 'INVOICE'] = "INVOICE";
+ SalesTaxBasisEnum[SalesTaxBasisEnum["NONE"] = 'NONE'] = "NONE";
+ SalesTaxBasisEnum[SalesTaxBasisEnum["CASH"] = 'CASH'] = "CASH";
+ SalesTaxBasisEnum[SalesTaxBasisEnum["ACCRUAL"] = 'ACCRUAL'] = "ACCRUAL";
+ SalesTaxBasisEnum[SalesTaxBasisEnum["FLATRATECASH"] = 'FLATRATECASH'] = "FLATRATECASH";
+ SalesTaxBasisEnum[SalesTaxBasisEnum["FLATRATEACCRUAL"] = 'FLATRATEACCRUAL'] = "FLATRATEACCRUAL";
+ SalesTaxBasisEnum[SalesTaxBasisEnum["ACCRUALS"] = 'ACCRUALS'] = "ACCRUALS";
+ })(SalesTaxBasisEnum = Organisation.SalesTaxBasisEnum || (Organisation.SalesTaxBasisEnum = {}));
+ let SalesTaxPeriodEnum;
+ (function (SalesTaxPeriodEnum) {
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["MONTHLY"] = 'MONTHLY'] = "MONTHLY";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["QUARTERLY1"] = 'QUARTERLY1'] = "QUARTERLY1";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["QUARTERLY2"] = 'QUARTERLY2'] = "QUARTERLY2";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["QUARTERLY3"] = 'QUARTERLY3'] = "QUARTERLY3";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["ANNUALLY"] = 'ANNUALLY'] = "ANNUALLY";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["ONEMONTHS"] = 'ONEMONTHS'] = "ONEMONTHS";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["TWOMONTHS"] = 'TWOMONTHS'] = "TWOMONTHS";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["SIXMONTHS"] = 'SIXMONTHS'] = "SIXMONTHS";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["_1MONTHLY"] = '1MONTHLY'] = "_1MONTHLY";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["_2MONTHLY"] = '2MONTHLY'] = "_2MONTHLY";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["_3MONTHLY"] = '3MONTHLY'] = "_3MONTHLY";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["_6MONTHLY"] = '6MONTHLY'] = "_6MONTHLY";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["QUARTERLY"] = 'QUARTERLY'] = "QUARTERLY";
+ SalesTaxPeriodEnum[SalesTaxPeriodEnum["YEARLY"] = 'YEARLY'] = "YEARLY";
+ })(SalesTaxPeriodEnum = Organisation.SalesTaxPeriodEnum || (Organisation.SalesTaxPeriodEnum = {}));
+ let OrganisationEntityTypeEnum;
+ (function (OrganisationEntityTypeEnum) {
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["ACCOUNTINGPRACTICE"] = 'ACCOUNTING_PRACTICE'] = "ACCOUNTINGPRACTICE";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["COMPANY"] = 'COMPANY'] = "COMPANY";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["CHARITY"] = 'CHARITY'] = "CHARITY";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["CLUBORSOCIETY"] = 'CLUB_OR_SOCIETY'] = "CLUBORSOCIETY";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["LOOKTHROUGHCOMPANY"] = 'LOOK_THROUGH_COMPANY'] = "LOOKTHROUGHCOMPANY";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["NOTFORPROFIT"] = 'NOT_FOR_PROFIT'] = "NOTFORPROFIT";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["PARTNERSHIP"] = 'PARTNERSHIP'] = "PARTNERSHIP";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["SCORPORATION"] = 'S_CORPORATION'] = "SCORPORATION";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["SELFMANAGEDSUPERANNUATIONFUND"] = 'SELF_MANAGED_SUPERANNUATION_FUND'] = "SELFMANAGEDSUPERANNUATIONFUND";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["SOLETRADER"] = 'SOLE_TRADER'] = "SOLETRADER";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["SUPERANNUATIONFUND"] = 'SUPERANNUATION_FUND'] = "SUPERANNUATIONFUND";
+ OrganisationEntityTypeEnum[OrganisationEntityTypeEnum["TRUST"] = 'TRUST'] = "TRUST";
+ })(OrganisationEntityTypeEnum = Organisation.OrganisationEntityTypeEnum || (Organisation.OrganisationEntityTypeEnum = {}));
+ let ClassEnum;
+ (function (ClassEnum) {
+ ClassEnum[ClassEnum["DEMO"] = 'DEMO'] = "DEMO";
+ ClassEnum[ClassEnum["TRIAL"] = 'TRIAL'] = "TRIAL";
+ ClassEnum[ClassEnum["STARTER"] = 'STARTER'] = "STARTER";
+ ClassEnum[ClassEnum["STANDARD"] = 'STANDARD'] = "STANDARD";
+ ClassEnum[ClassEnum["PREMIUM"] = 'PREMIUM'] = "PREMIUM";
+ ClassEnum[ClassEnum["PREMIUM20"] = 'PREMIUM_20'] = "PREMIUM20";
+ ClassEnum[ClassEnum["PREMIUM50"] = 'PREMIUM_50'] = "PREMIUM50";
+ ClassEnum[ClassEnum["PREMIUM100"] = 'PREMIUM_100'] = "PREMIUM100";
+ ClassEnum[ClassEnum["LEDGER"] = 'LEDGER'] = "LEDGER";
+ ClassEnum[ClassEnum["GSTCASHBOOK"] = 'GST_CASHBOOK'] = "GSTCASHBOOK";
+ ClassEnum[ClassEnum["NONGSTCASHBOOK"] = 'NON_GST_CASHBOOK'] = "NONGSTCASHBOOK";
+ })(ClassEnum = Organisation.ClassEnum || (Organisation.ClassEnum = {}));
+ let EditionEnum;
+ (function (EditionEnum) {
+ EditionEnum[EditionEnum["BUSINESS"] = 'BUSINESS'] = "BUSINESS";
+ EditionEnum[EditionEnum["PARTNER"] = 'PARTNER'] = "PARTNER";
+ })(EditionEnum = Organisation.EditionEnum || (Organisation.EditionEnum = {}));
+})(Organisation = exports.Organisation || (exports.Organisation = {}));
+//# sourceMappingURL=organisation.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/organisation.js.map b/dist/gen/model/accounting/organisation.js.map
new file mode 100644
index 000000000..c88ea8bc0
--- /dev/null
+++ b/dist/gen/model/accounting/organisation.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"organisation.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/organisation.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/organisations.d.ts b/dist/gen/model/accounting/organisations.d.ts
new file mode 100644
index 000000000..be6c5271c
--- /dev/null
+++ b/dist/gen/model/accounting/organisations.d.ts
@@ -0,0 +1,15 @@
+import { Organisation } from './organisation';
+export declare class Organisations {
+ 'organisations'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/organisations.js b/dist/gen/model/accounting/organisations.js
new file mode 100644
index 000000000..82dd146f8
--- /dev/null
+++ b/dist/gen/model/accounting/organisations.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Organisations {
+ static getAttributeTypeMap() {
+ return Organisations.attributeTypeMap;
+ }
+}
+exports.Organisations = Organisations;
+Organisations.discriminator = undefined;
+Organisations.attributeTypeMap = [
+ {
+ "name": "organisations",
+ "baseName": "Organisations",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=organisations.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/organisations.js.map b/dist/gen/model/accounting/organisations.js.map
new file mode 100644
index 000000000..7239c8aa2
--- /dev/null
+++ b/dist/gen/model/accounting/organisations.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"organisations.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/organisations.ts"],"names":[],"mappings":";;AAcA,MAAa,aAAa;IAYtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AAdL,sCAeC;AAZU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,qBAAqB;KAChC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/overpayment.d.ts b/dist/gen/model/accounting/overpayment.d.ts
new file mode 100644
index 000000000..de657f468
--- /dev/null
+++ b/dist/gen/model/accounting/overpayment.d.ts
@@ -0,0 +1,50 @@
+import { Allocation } from './allocation';
+import { Attachment } from './attachment';
+import { Contact } from './contact';
+import { CurrencyCode } from './currencyCode';
+import { LineAmountTypes } from './lineAmountTypes';
+import { LineItem } from './lineItem';
+import { Payment } from './payment';
+export declare class Overpayment {
+ 'type'?: Overpayment.TypeEnum;
+ 'contact'?: Contact;
+ 'date'?: string;
+ 'status'?: Overpayment.StatusEnum;
+ 'lineAmountTypes'?: LineAmountTypes;
+ 'lineItems'?: Array;
+ 'subTotal'?: number;
+ 'totalTax'?: number;
+ 'total'?: number;
+ 'updatedDateUTC'?: Date;
+ 'currencyCode'?: CurrencyCode;
+ 'overpaymentID'?: string;
+ 'currencyRate'?: number;
+ 'remainingCredit'?: number;
+ 'allocations'?: Array;
+ 'payments'?: Array;
+ 'hasAttachments'?: boolean;
+ 'attachments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Overpayment {
+ enum TypeEnum {
+ RECEIVEOVERPAYMENT,
+ SPENDOVERPAYMENT,
+ AROVERPAYMENT
+ }
+ enum StatusEnum {
+ AUTHORISED,
+ PAID,
+ VOIDED
+ }
+}
diff --git a/dist/gen/model/accounting/overpayment.js b/dist/gen/model/accounting/overpayment.js
new file mode 100644
index 000000000..60f0aec49
--- /dev/null
+++ b/dist/gen/model/accounting/overpayment.js
@@ -0,0 +1,116 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Overpayment {
+ static getAttributeTypeMap() {
+ return Overpayment.attributeTypeMap;
+ }
+}
+exports.Overpayment = Overpayment;
+Overpayment.discriminator = undefined;
+Overpayment.attributeTypeMap = [
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "Overpayment.TypeEnum"
+ },
+ {
+ "name": "contact",
+ "baseName": "Contact",
+ "type": "Contact"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "Overpayment.StatusEnum"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ },
+ {
+ "name": "lineItems",
+ "baseName": "LineItems",
+ "type": "Array"
+ },
+ {
+ "name": "subTotal",
+ "baseName": "SubTotal",
+ "type": "number"
+ },
+ {
+ "name": "totalTax",
+ "baseName": "TotalTax",
+ "type": "number"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "currencyCode",
+ "baseName": "CurrencyCode",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "overpaymentID",
+ "baseName": "OverpaymentID",
+ "type": "string"
+ },
+ {
+ "name": "currencyRate",
+ "baseName": "CurrencyRate",
+ "type": "number"
+ },
+ {
+ "name": "remainingCredit",
+ "baseName": "RemainingCredit",
+ "type": "number"
+ },
+ {
+ "name": "allocations",
+ "baseName": "Allocations",
+ "type": "Array"
+ },
+ {
+ "name": "payments",
+ "baseName": "Payments",
+ "type": "Array"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "attachments",
+ "baseName": "Attachments",
+ "type": "Array"
+ }
+];
+(function (Overpayment) {
+ let TypeEnum;
+ (function (TypeEnum) {
+ TypeEnum[TypeEnum["RECEIVEOVERPAYMENT"] = 'RECEIVE-OVERPAYMENT'] = "RECEIVEOVERPAYMENT";
+ TypeEnum[TypeEnum["SPENDOVERPAYMENT"] = 'SPEND-OVERPAYMENT'] = "SPENDOVERPAYMENT";
+ TypeEnum[TypeEnum["AROVERPAYMENT"] = 'AROVERPAYMENT'] = "AROVERPAYMENT";
+ })(TypeEnum = Overpayment.TypeEnum || (Overpayment.TypeEnum = {}));
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ StatusEnum[StatusEnum["PAID"] = 'PAID'] = "PAID";
+ StatusEnum[StatusEnum["VOIDED"] = 'VOIDED'] = "VOIDED";
+ })(StatusEnum = Overpayment.StatusEnum || (Overpayment.StatusEnum = {}));
+})(Overpayment = exports.Overpayment || (exports.Overpayment = {}));
+//# sourceMappingURL=overpayment.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/overpayment.js.map b/dist/gen/model/accounting/overpayment.js.map
new file mode 100644
index 000000000..c98787824
--- /dev/null
+++ b/dist/gen/model/accounting/overpayment.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"overpayment.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/overpayment.ts"],"names":[],"mappings":";;AAoBA,MAAa,WAAW;IA+JpB,MAAM,CAAC,mBAAmB;QACtB,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACxC,CAAC;;AAjKL,kCAkKC;AAjGU,yBAAa,GAAuB,SAAS,CAAC;AAE9C,4BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,sBAAsB;KACjC;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,wBAAwB;KACnC;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,cAAc;KACzB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC;AAOf,WAAiB,WAAW;IACxB,IAAY,QAIX;IAJD,WAAY,QAAQ;QAChB,0CAA2B,qBAAqB,wBAAA,CAAA;QAChD,wCAAyB,mBAAmB,sBAAA,CAAA;QAC5C,qCAAsB,eAAe,mBAAA,CAAA;IACzC,CAAC,EAJW,QAAQ,GAAR,oBAAQ,KAAR,oBAAQ,QAInB;IACD,IAAY,UAIX;IAJD,WAAY,UAAU;QAClB,sCAAmB,YAAY,gBAAA,CAAA;QAC/B,gCAAa,MAAM,UAAA,CAAA;QACnB,kCAAe,QAAQ,YAAA,CAAA;IAC3B,CAAC,EAJW,UAAU,GAAV,sBAAU,KAAV,sBAAU,QAIrB;AACL,CAAC,EAXgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAW3B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/overpayments.d.ts b/dist/gen/model/accounting/overpayments.d.ts
new file mode 100644
index 000000000..a67cbae9f
--- /dev/null
+++ b/dist/gen/model/accounting/overpayments.d.ts
@@ -0,0 +1,15 @@
+import { Overpayment } from './overpayment';
+export declare class Overpayments {
+ 'overpayments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/overpayments.js b/dist/gen/model/accounting/overpayments.js
new file mode 100644
index 000000000..29164950a
--- /dev/null
+++ b/dist/gen/model/accounting/overpayments.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Overpayments {
+ static getAttributeTypeMap() {
+ return Overpayments.attributeTypeMap;
+ }
+}
+exports.Overpayments = Overpayments;
+Overpayments.discriminator = undefined;
+Overpayments.attributeTypeMap = [
+ {
+ "name": "overpayments",
+ "baseName": "Overpayments",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=overpayments.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/overpayments.js.map b/dist/gen/model/accounting/overpayments.js.map
new file mode 100644
index 000000000..c097d1040
--- /dev/null
+++ b/dist/gen/model/accounting/overpayments.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"overpayments.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/overpayments.ts"],"names":[],"mappings":";;AAcA,MAAa,YAAY;IAYrB,MAAM,CAAC,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACzC,CAAC;;AAdL,oCAeC;AAZU,0BAAa,GAAuB,SAAS,CAAC;AAE9C,6BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,oBAAoB;KAC/B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/payment.d.ts b/dist/gen/model/accounting/payment.d.ts
new file mode 100644
index 000000000..bebddc945
--- /dev/null
+++ b/dist/gen/model/accounting/payment.d.ts
@@ -0,0 +1,58 @@
+import { Account } from './account';
+import { CreditNote } from './creditNote';
+import { Invoice } from './invoice';
+import { Overpayment } from './overpayment';
+import { Prepayment } from './prepayment';
+import { ValidationError } from './validationError';
+export declare class Payment {
+ 'invoice'?: Invoice;
+ 'creditNote'?: CreditNote;
+ 'prepayment'?: Prepayment;
+ 'overpayment'?: Overpayment;
+ 'invoiceNumber'?: string;
+ 'creditNoteNumber'?: string;
+ 'account'?: Account;
+ 'code'?: string;
+ 'date'?: string;
+ 'currencyRate'?: number;
+ 'amount'?: number;
+ 'reference'?: string;
+ 'isReconciled'?: boolean;
+ 'status'?: Payment.StatusEnum;
+ 'paymentType'?: Payment.PaymentTypeEnum;
+ 'updatedDateUTC'?: Date;
+ 'paymentID'?: string;
+ 'bankAccountNumber'?: string;
+ 'particulars'?: string;
+ 'details'?: string;
+ 'hasAccount'?: boolean;
+ 'hasValidationErrors'?: boolean;
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Payment {
+ enum StatusEnum {
+ AUTHORISED,
+ DELETED
+ }
+ enum PaymentTypeEnum {
+ ACCRECPAYMENT,
+ ACCPAYPAYMENT,
+ ARCREDITPAYMENT,
+ APCREDITPAYMENT,
+ AROVERPAYMENTPAYMENT,
+ ARPREPAYMENTPAYMENT,
+ APPREPAYMENTPAYMENT,
+ APOVERPAYMENTPAYMENT
+ }
+}
diff --git a/dist/gen/model/accounting/payment.js b/dist/gen/model/accounting/payment.js
new file mode 100644
index 000000000..3e598a87c
--- /dev/null
+++ b/dist/gen/model/accounting/payment.js
@@ -0,0 +1,145 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Payment {
+ static getAttributeTypeMap() {
+ return Payment.attributeTypeMap;
+ }
+}
+exports.Payment = Payment;
+Payment.discriminator = undefined;
+Payment.attributeTypeMap = [
+ {
+ "name": "invoice",
+ "baseName": "Invoice",
+ "type": "Invoice"
+ },
+ {
+ "name": "creditNote",
+ "baseName": "CreditNote",
+ "type": "CreditNote"
+ },
+ {
+ "name": "prepayment",
+ "baseName": "Prepayment",
+ "type": "Prepayment"
+ },
+ {
+ "name": "overpayment",
+ "baseName": "Overpayment",
+ "type": "Overpayment"
+ },
+ {
+ "name": "invoiceNumber",
+ "baseName": "InvoiceNumber",
+ "type": "string"
+ },
+ {
+ "name": "creditNoteNumber",
+ "baseName": "CreditNoteNumber",
+ "type": "string"
+ },
+ {
+ "name": "account",
+ "baseName": "Account",
+ "type": "Account"
+ },
+ {
+ "name": "code",
+ "baseName": "Code",
+ "type": "string"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "currencyRate",
+ "baseName": "CurrencyRate",
+ "type": "number"
+ },
+ {
+ "name": "amount",
+ "baseName": "Amount",
+ "type": "number"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "isReconciled",
+ "baseName": "IsReconciled",
+ "type": "boolean"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "Payment.StatusEnum"
+ },
+ {
+ "name": "paymentType",
+ "baseName": "PaymentType",
+ "type": "Payment.PaymentTypeEnum"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "paymentID",
+ "baseName": "PaymentID",
+ "type": "string"
+ },
+ {
+ "name": "bankAccountNumber",
+ "baseName": "BankAccountNumber",
+ "type": "string"
+ },
+ {
+ "name": "particulars",
+ "baseName": "Particulars",
+ "type": "string"
+ },
+ {
+ "name": "details",
+ "baseName": "Details",
+ "type": "string"
+ },
+ {
+ "name": "hasAccount",
+ "baseName": "HasAccount",
+ "type": "boolean"
+ },
+ {
+ "name": "hasValidationErrors",
+ "baseName": "HasValidationErrors",
+ "type": "boolean"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+(function (Payment) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ })(StatusEnum = Payment.StatusEnum || (Payment.StatusEnum = {}));
+ let PaymentTypeEnum;
+ (function (PaymentTypeEnum) {
+ PaymentTypeEnum[PaymentTypeEnum["ACCRECPAYMENT"] = 'ACCRECPAYMENT'] = "ACCRECPAYMENT";
+ PaymentTypeEnum[PaymentTypeEnum["ACCPAYPAYMENT"] = 'ACCPAYPAYMENT'] = "ACCPAYPAYMENT";
+ PaymentTypeEnum[PaymentTypeEnum["ARCREDITPAYMENT"] = 'ARCREDITPAYMENT'] = "ARCREDITPAYMENT";
+ PaymentTypeEnum[PaymentTypeEnum["APCREDITPAYMENT"] = 'APCREDITPAYMENT'] = "APCREDITPAYMENT";
+ PaymentTypeEnum[PaymentTypeEnum["AROVERPAYMENTPAYMENT"] = 'AROVERPAYMENTPAYMENT'] = "AROVERPAYMENTPAYMENT";
+ PaymentTypeEnum[PaymentTypeEnum["ARPREPAYMENTPAYMENT"] = 'ARPREPAYMENTPAYMENT'] = "ARPREPAYMENTPAYMENT";
+ PaymentTypeEnum[PaymentTypeEnum["APPREPAYMENTPAYMENT"] = 'APPREPAYMENTPAYMENT'] = "APPREPAYMENTPAYMENT";
+ PaymentTypeEnum[PaymentTypeEnum["APOVERPAYMENTPAYMENT"] = 'APOVERPAYMENTPAYMENT'] = "APOVERPAYMENTPAYMENT";
+ })(PaymentTypeEnum = Payment.PaymentTypeEnum || (Payment.PaymentTypeEnum = {}));
+})(Payment = exports.Payment || (exports.Payment = {}));
+//# sourceMappingURL=payment.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/payment.js.map b/dist/gen/model/accounting/payment.js.map
new file mode 100644
index 000000000..4f2c3356c
--- /dev/null
+++ b/dist/gen/model/accounting/payment.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/payment.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/paymentService.d.ts b/dist/gen/model/accounting/paymentService.d.ts
new file mode 100644
index 000000000..85f72940e
--- /dev/null
+++ b/dist/gen/model/accounting/paymentService.d.ts
@@ -0,0 +1,20 @@
+import { ValidationError } from './validationError';
+export declare class PaymentService {
+ 'paymentServiceID'?: string;
+ 'paymentServiceName'?: string;
+ 'paymentServiceUrl'?: string;
+ 'payNowText'?: string;
+ 'paymentServiceType'?: string;
+ 'validationErrors'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/paymentService.js b/dist/gen/model/accounting/paymentService.js
new file mode 100644
index 000000000..eeb39e578
--- /dev/null
+++ b/dist/gen/model/accounting/paymentService.js
@@ -0,0 +1,42 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class PaymentService {
+ static getAttributeTypeMap() {
+ return PaymentService.attributeTypeMap;
+ }
+}
+exports.PaymentService = PaymentService;
+PaymentService.discriminator = undefined;
+PaymentService.attributeTypeMap = [
+ {
+ "name": "paymentServiceID",
+ "baseName": "PaymentServiceID",
+ "type": "string"
+ },
+ {
+ "name": "paymentServiceName",
+ "baseName": "PaymentServiceName",
+ "type": "string"
+ },
+ {
+ "name": "paymentServiceUrl",
+ "baseName": "PaymentServiceUrl",
+ "type": "string"
+ },
+ {
+ "name": "payNowText",
+ "baseName": "PayNowText",
+ "type": "string"
+ },
+ {
+ "name": "paymentServiceType",
+ "baseName": "PaymentServiceType",
+ "type": "string"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=paymentService.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/paymentService.js.map b/dist/gen/model/accounting/paymentService.js.map
new file mode 100644
index 000000000..7be249f83
--- /dev/null
+++ b/dist/gen/model/accounting/paymentService.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"paymentService.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/paymentService.ts"],"names":[],"mappings":";;AAcA,MAAa,cAAc;IA4DvB,MAAM,CAAC,mBAAmB;QACtB,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC3C,CAAC;;AA9DL,wCA+DC;AArCU,4BAAa,GAAuB,SAAS,CAAC;AAE9C,+BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,mBAAmB;QAC3B,UAAU,EAAE,mBAAmB;QAC/B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,wBAAwB;KACnC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/paymentServices.d.ts b/dist/gen/model/accounting/paymentServices.d.ts
new file mode 100644
index 000000000..098092ed2
--- /dev/null
+++ b/dist/gen/model/accounting/paymentServices.d.ts
@@ -0,0 +1,15 @@
+import { PaymentService } from './paymentService';
+export declare class PaymentServices {
+ 'paymentServices'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/paymentServices.js b/dist/gen/model/accounting/paymentServices.js
new file mode 100644
index 000000000..04c047e0a
--- /dev/null
+++ b/dist/gen/model/accounting/paymentServices.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class PaymentServices {
+ static getAttributeTypeMap() {
+ return PaymentServices.attributeTypeMap;
+ }
+}
+exports.PaymentServices = PaymentServices;
+PaymentServices.discriminator = undefined;
+PaymentServices.attributeTypeMap = [
+ {
+ "name": "paymentServices",
+ "baseName": "PaymentServices",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=paymentServices.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/paymentServices.js.map b/dist/gen/model/accounting/paymentServices.js.map
new file mode 100644
index 000000000..ff94253da
--- /dev/null
+++ b/dist/gen/model/accounting/paymentServices.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"paymentServices.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/paymentServices.ts"],"names":[],"mappings":";;AAcA,MAAa,eAAe;IAYxB,MAAM,CAAC,mBAAmB;QACtB,OAAO,eAAe,CAAC,gBAAgB,CAAC;IAC5C,CAAC;;AAdL,0CAeC;AAZU,6BAAa,GAAuB,SAAS,CAAC;AAE9C,gCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,uBAAuB;KAClC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/paymentTerm.d.ts b/dist/gen/model/accounting/paymentTerm.d.ts
new file mode 100644
index 000000000..57f77c296
--- /dev/null
+++ b/dist/gen/model/accounting/paymentTerm.d.ts
@@ -0,0 +1,16 @@
+import { Bill } from './bill';
+export declare class PaymentTerm {
+ 'bills'?: Bill;
+ 'sales'?: Bill;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/paymentTerm.js b/dist/gen/model/accounting/paymentTerm.js
new file mode 100644
index 000000000..58781f75d
--- /dev/null
+++ b/dist/gen/model/accounting/paymentTerm.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class PaymentTerm {
+ static getAttributeTypeMap() {
+ return PaymentTerm.attributeTypeMap;
+ }
+}
+exports.PaymentTerm = PaymentTerm;
+PaymentTerm.discriminator = undefined;
+PaymentTerm.attributeTypeMap = [
+ {
+ "name": "bills",
+ "baseName": "Bills",
+ "type": "Bill"
+ },
+ {
+ "name": "sales",
+ "baseName": "Sales",
+ "type": "Bill"
+ }
+];
+//# sourceMappingURL=paymentTerm.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/paymentTerm.js.map b/dist/gen/model/accounting/paymentTerm.js.map
new file mode 100644
index 000000000..418a7712f
--- /dev/null
+++ b/dist/gen/model/accounting/paymentTerm.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"paymentTerm.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/paymentTerm.ts"],"names":[],"mappings":";;AAcA,MAAa,WAAW;IAkBpB,MAAM,CAAC,mBAAmB;QACtB,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACxC,CAAC;;AApBL,kCAqBC;AAjBU,yBAAa,GAAuB,SAAS,CAAC;AAE9C,4BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,MAAM;KACjB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/paymentTermType.d.ts b/dist/gen/model/accounting/paymentTermType.d.ts
new file mode 100644
index 000000000..81ca74dab
--- /dev/null
+++ b/dist/gen/model/accounting/paymentTermType.d.ts
@@ -0,0 +1,6 @@
+export declare enum PaymentTermType {
+ DAYSAFTERBILLDATE,
+ DAYSAFTERBILLMONTH,
+ OFCURRENTMONTH,
+ OFFOLLOWINGMONTH
+}
diff --git a/dist/gen/model/accounting/paymentTermType.js b/dist/gen/model/accounting/paymentTermType.js
new file mode 100644
index 000000000..664ed7ee1
--- /dev/null
+++ b/dist/gen/model/accounting/paymentTermType.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var PaymentTermType;
+(function (PaymentTermType) {
+ PaymentTermType[PaymentTermType["DAYSAFTERBILLDATE"] = 'DAYSAFTERBILLDATE'] = "DAYSAFTERBILLDATE";
+ PaymentTermType[PaymentTermType["DAYSAFTERBILLMONTH"] = 'DAYSAFTERBILLMONTH'] = "DAYSAFTERBILLMONTH";
+ PaymentTermType[PaymentTermType["OFCURRENTMONTH"] = 'OFCURRENTMONTH'] = "OFCURRENTMONTH";
+ PaymentTermType[PaymentTermType["OFFOLLOWINGMONTH"] = 'OFFOLLOWINGMONTH'] = "OFFOLLOWINGMONTH";
+})(PaymentTermType = exports.PaymentTermType || (exports.PaymentTermType = {}));
+//# sourceMappingURL=paymentTermType.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/paymentTermType.js.map b/dist/gen/model/accounting/paymentTermType.js.map
new file mode 100644
index 000000000..17ecfc085
--- /dev/null
+++ b/dist/gen/model/accounting/paymentTermType.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"paymentTermType.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/paymentTermType.ts"],"names":[],"mappings":";;AAaA,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,uDAA0B,mBAAmB,uBAAA,CAAA;IAC7C,wDAA2B,oBAAoB,wBAAA,CAAA;IAC/C,oDAAuB,gBAAgB,oBAAA,CAAA;IACvC,sDAAyB,kBAAkB,sBAAA,CAAA;AAC/C,CAAC,EALW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAK1B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/payments.d.ts b/dist/gen/model/accounting/payments.d.ts
new file mode 100644
index 000000000..e0c5cab0c
--- /dev/null
+++ b/dist/gen/model/accounting/payments.d.ts
@@ -0,0 +1,15 @@
+import { Payment } from './payment';
+export declare class Payments {
+ 'payments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/payments.js b/dist/gen/model/accounting/payments.js
new file mode 100644
index 000000000..15c4364a9
--- /dev/null
+++ b/dist/gen/model/accounting/payments.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Payments {
+ static getAttributeTypeMap() {
+ return Payments.attributeTypeMap;
+ }
+}
+exports.Payments = Payments;
+Payments.discriminator = undefined;
+Payments.attributeTypeMap = [
+ {
+ "name": "payments",
+ "baseName": "Payments",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=payments.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/payments.js.map b/dist/gen/model/accounting/payments.js.map
new file mode 100644
index 000000000..6ba99c7be
--- /dev/null
+++ b/dist/gen/model/accounting/payments.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/payments.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IAYjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAdL,4BAeC;AAZU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/phone.d.ts b/dist/gen/model/accounting/phone.d.ts
new file mode 100644
index 000000000..4246cb103
--- /dev/null
+++ b/dist/gen/model/accounting/phone.d.ts
@@ -0,0 +1,26 @@
+export declare class Phone {
+ 'phoneType'?: Phone.PhoneTypeEnum;
+ 'phoneNumber'?: string;
+ 'phoneAreaCode'?: string;
+ 'phoneCountryCode'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Phone {
+ enum PhoneTypeEnum {
+ DEFAULT,
+ DDI,
+ MOBILE,
+ FAX,
+ OFFICE
+ }
+}
diff --git a/dist/gen/model/accounting/phone.js b/dist/gen/model/accounting/phone.js
new file mode 100644
index 000000000..b22f948ab
--- /dev/null
+++ b/dist/gen/model/accounting/phone.js
@@ -0,0 +1,42 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Phone {
+ static getAttributeTypeMap() {
+ return Phone.attributeTypeMap;
+ }
+}
+exports.Phone = Phone;
+Phone.discriminator = undefined;
+Phone.attributeTypeMap = [
+ {
+ "name": "phoneType",
+ "baseName": "PhoneType",
+ "type": "Phone.PhoneTypeEnum"
+ },
+ {
+ "name": "phoneNumber",
+ "baseName": "PhoneNumber",
+ "type": "string"
+ },
+ {
+ "name": "phoneAreaCode",
+ "baseName": "PhoneAreaCode",
+ "type": "string"
+ },
+ {
+ "name": "phoneCountryCode",
+ "baseName": "PhoneCountryCode",
+ "type": "string"
+ }
+];
+(function (Phone) {
+ let PhoneTypeEnum;
+ (function (PhoneTypeEnum) {
+ PhoneTypeEnum[PhoneTypeEnum["DEFAULT"] = 'DEFAULT'] = "DEFAULT";
+ PhoneTypeEnum[PhoneTypeEnum["DDI"] = 'DDI'] = "DDI";
+ PhoneTypeEnum[PhoneTypeEnum["MOBILE"] = 'MOBILE'] = "MOBILE";
+ PhoneTypeEnum[PhoneTypeEnum["FAX"] = 'FAX'] = "FAX";
+ PhoneTypeEnum[PhoneTypeEnum["OFFICE"] = 'OFFICE'] = "OFFICE";
+ })(PhoneTypeEnum = Phone.PhoneTypeEnum || (Phone.PhoneTypeEnum = {}));
+})(Phone = exports.Phone || (exports.Phone = {}));
+//# sourceMappingURL=phone.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/phone.js.map b/dist/gen/model/accounting/phone.js.map
new file mode 100644
index 000000000..4ff3cbbfd
--- /dev/null
+++ b/dist/gen/model/accounting/phone.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"phone.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/phone.ts"],"names":[],"mappings":";;AAaA,MAAa,KAAK;IAuCd,MAAM,CAAC,mBAAmB;QACtB,OAAO,KAAK,CAAC,gBAAgB,CAAC;IAClC,CAAC;;AAzCL,sBA0CC;AA3BU,mBAAa,GAAuB,SAAS,CAAC;AAE9C,sBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,qBAAqB;KAChC;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC;AAOf,WAAiB,KAAK;IAClB,IAAY,aAMX;IAND,WAAY,aAAa;QACrB,yCAAgB,SAAS,aAAA,CAAA;QACzB,qCAAY,KAAK,SAAA,CAAA;QACjB,wCAAe,QAAQ,YAAA,CAAA;QACvB,qCAAY,KAAK,SAAA,CAAA;QACjB,wCAAe,QAAQ,YAAA,CAAA;IAC3B,CAAC,EANW,aAAa,GAAb,mBAAa,KAAb,mBAAa,QAMxB;AACL,CAAC,EARgB,KAAK,GAAL,aAAK,KAAL,aAAK,QAQrB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/prepayment.d.ts b/dist/gen/model/accounting/prepayment.d.ts
new file mode 100644
index 000000000..3f3c7c363
--- /dev/null
+++ b/dist/gen/model/accounting/prepayment.d.ts
@@ -0,0 +1,49 @@
+import { Allocation } from './allocation';
+import { Attachment } from './attachment';
+import { Contact } from './contact';
+import { CurrencyCode } from './currencyCode';
+import { LineAmountTypes } from './lineAmountTypes';
+import { LineItem } from './lineItem';
+export declare class Prepayment {
+ 'type'?: Prepayment.TypeEnum;
+ 'contact'?: Contact;
+ 'date'?: string;
+ 'status'?: Prepayment.StatusEnum;
+ 'lineAmountTypes'?: LineAmountTypes;
+ 'lineItems'?: Array;
+ 'subTotal'?: number;
+ 'totalTax'?: number;
+ 'total'?: number;
+ 'updatedDateUTC'?: Date;
+ 'currencyCode'?: CurrencyCode;
+ 'prepaymentID'?: string;
+ 'currencyRate'?: number;
+ 'remainingCredit'?: number;
+ 'allocations'?: Array;
+ 'hasAttachments'?: boolean;
+ 'attachments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Prepayment {
+ enum TypeEnum {
+ RECEIVEPREPAYMENT,
+ SPENDPREPAYMENT,
+ ARPREPAYMENT,
+ APPREPAYMENT
+ }
+ enum StatusEnum {
+ AUTHORISED,
+ PAID,
+ VOIDED
+ }
+}
diff --git a/dist/gen/model/accounting/prepayment.js b/dist/gen/model/accounting/prepayment.js
new file mode 100644
index 000000000..4f4373b4a
--- /dev/null
+++ b/dist/gen/model/accounting/prepayment.js
@@ -0,0 +1,112 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Prepayment {
+ static getAttributeTypeMap() {
+ return Prepayment.attributeTypeMap;
+ }
+}
+exports.Prepayment = Prepayment;
+Prepayment.discriminator = undefined;
+Prepayment.attributeTypeMap = [
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "Prepayment.TypeEnum"
+ },
+ {
+ "name": "contact",
+ "baseName": "Contact",
+ "type": "Contact"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "Prepayment.StatusEnum"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ },
+ {
+ "name": "lineItems",
+ "baseName": "LineItems",
+ "type": "Array"
+ },
+ {
+ "name": "subTotal",
+ "baseName": "SubTotal",
+ "type": "number"
+ },
+ {
+ "name": "totalTax",
+ "baseName": "TotalTax",
+ "type": "number"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "currencyCode",
+ "baseName": "CurrencyCode",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "prepaymentID",
+ "baseName": "PrepaymentID",
+ "type": "string"
+ },
+ {
+ "name": "currencyRate",
+ "baseName": "CurrencyRate",
+ "type": "number"
+ },
+ {
+ "name": "remainingCredit",
+ "baseName": "RemainingCredit",
+ "type": "number"
+ },
+ {
+ "name": "allocations",
+ "baseName": "Allocations",
+ "type": "Array"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "attachments",
+ "baseName": "Attachments",
+ "type": "Array"
+ }
+];
+(function (Prepayment) {
+ let TypeEnum;
+ (function (TypeEnum) {
+ TypeEnum[TypeEnum["RECEIVEPREPAYMENT"] = 'RECEIVE-PREPAYMENT'] = "RECEIVEPREPAYMENT";
+ TypeEnum[TypeEnum["SPENDPREPAYMENT"] = 'SPEND-PREPAYMENT'] = "SPENDPREPAYMENT";
+ TypeEnum[TypeEnum["ARPREPAYMENT"] = 'ARPREPAYMENT'] = "ARPREPAYMENT";
+ TypeEnum[TypeEnum["APPREPAYMENT"] = 'APPREPAYMENT'] = "APPREPAYMENT";
+ })(TypeEnum = Prepayment.TypeEnum || (Prepayment.TypeEnum = {}));
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ StatusEnum[StatusEnum["PAID"] = 'PAID'] = "PAID";
+ StatusEnum[StatusEnum["VOIDED"] = 'VOIDED'] = "VOIDED";
+ })(StatusEnum = Prepayment.StatusEnum || (Prepayment.StatusEnum = {}));
+})(Prepayment = exports.Prepayment || (exports.Prepayment = {}));
+//# sourceMappingURL=prepayment.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/prepayment.js.map b/dist/gen/model/accounting/prepayment.js.map
new file mode 100644
index 000000000..e61e43d66
--- /dev/null
+++ b/dist/gen/model/accounting/prepayment.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"prepayment.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/prepayment.ts"],"names":[],"mappings":";;AAmBA,MAAa,UAAU;IAsJnB,MAAM,CAAC,mBAAmB;QACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;;AAxJL,gCAyJC;AA5FU,wBAAa,GAAuB,SAAS,CAAC;AAE9C,2BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,qBAAqB;KAChC;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,uBAAuB;KAClC;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,cAAc;KACzB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC;AAOf,WAAiB,UAAU;IACvB,IAAY,QAKX;IALD,WAAY,QAAQ;QAChB,yCAA0B,oBAAoB,uBAAA,CAAA;QAC9C,uCAAwB,kBAAkB,qBAAA,CAAA;QAC1C,oCAAqB,cAAc,kBAAA,CAAA;QACnC,oCAAqB,cAAc,kBAAA,CAAA;IACvC,CAAC,EALW,QAAQ,GAAR,mBAAQ,KAAR,mBAAQ,QAKnB;IACD,IAAY,UAIX;IAJD,WAAY,UAAU;QAClB,sCAAmB,YAAY,gBAAA,CAAA;QAC/B,gCAAa,MAAM,UAAA,CAAA;QACnB,kCAAe,QAAQ,YAAA,CAAA;IAC3B,CAAC,EAJW,UAAU,GAAV,qBAAU,KAAV,qBAAU,QAIrB;AACL,CAAC,EAZgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAY1B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/prepayments.d.ts b/dist/gen/model/accounting/prepayments.d.ts
new file mode 100644
index 000000000..9e0668eed
--- /dev/null
+++ b/dist/gen/model/accounting/prepayments.d.ts
@@ -0,0 +1,15 @@
+import { Prepayment } from './prepayment';
+export declare class Prepayments {
+ 'prepayments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/prepayments.js b/dist/gen/model/accounting/prepayments.js
new file mode 100644
index 000000000..945d2522d
--- /dev/null
+++ b/dist/gen/model/accounting/prepayments.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Prepayments {
+ static getAttributeTypeMap() {
+ return Prepayments.attributeTypeMap;
+ }
+}
+exports.Prepayments = Prepayments;
+Prepayments.discriminator = undefined;
+Prepayments.attributeTypeMap = [
+ {
+ "name": "prepayments",
+ "baseName": "Prepayments",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=prepayments.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/prepayments.js.map b/dist/gen/model/accounting/prepayments.js.map
new file mode 100644
index 000000000..f61957173
--- /dev/null
+++ b/dist/gen/model/accounting/prepayments.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"prepayments.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/prepayments.ts"],"names":[],"mappings":";;AAcA,MAAa,WAAW;IAYpB,MAAM,CAAC,mBAAmB;QACtB,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACxC,CAAC;;AAdL,kCAeC;AAZU,yBAAa,GAAuB,SAAS,CAAC;AAE9C,4BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/purchase.d.ts b/dist/gen/model/accounting/purchase.d.ts
new file mode 100644
index 000000000..793aae825
--- /dev/null
+++ b/dist/gen/model/accounting/purchase.d.ts
@@ -0,0 +1,17 @@
+export declare class Purchase {
+ 'unitPrice'?: number;
+ 'accountCode'?: string;
+ 'cOGSAccountCode'?: string;
+ 'taxType'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/purchase.js b/dist/gen/model/accounting/purchase.js
new file mode 100644
index 000000000..d906399df
--- /dev/null
+++ b/dist/gen/model/accounting/purchase.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Purchase {
+ static getAttributeTypeMap() {
+ return Purchase.attributeTypeMap;
+ }
+}
+exports.Purchase = Purchase;
+Purchase.discriminator = undefined;
+Purchase.attributeTypeMap = [
+ {
+ "name": "unitPrice",
+ "baseName": "UnitPrice",
+ "type": "number"
+ },
+ {
+ "name": "accountCode",
+ "baseName": "AccountCode",
+ "type": "string"
+ },
+ {
+ "name": "cOGSAccountCode",
+ "baseName": "COGSAccountCode",
+ "type": "string"
+ },
+ {
+ "name": "taxType",
+ "baseName": "TaxType",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=purchase.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/purchase.js.map b/dist/gen/model/accounting/purchase.js.map
new file mode 100644
index 000000000..2afb81fca
--- /dev/null
+++ b/dist/gen/model/accounting/purchase.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"purchase.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/purchase.ts"],"names":[],"mappings":";;AAaA,MAAa,QAAQ;IA0CjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AA5CL,4BA6CC;AA3BU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/purchaseOrder.d.ts b/dist/gen/model/accounting/purchaseOrder.d.ts
new file mode 100644
index 000000000..1e9a85bf5
--- /dev/null
+++ b/dist/gen/model/accounting/purchaseOrder.d.ts
@@ -0,0 +1,56 @@
+import { Attachment } from './attachment';
+import { Contact } from './contact';
+import { CurrencyCode } from './currencyCode';
+import { LineAmountTypes } from './lineAmountTypes';
+import { LineItem } from './lineItem';
+import { ValidationError } from './validationError';
+export declare class PurchaseOrder {
+ 'contact': Contact;
+ 'lineItems': Array;
+ 'date'?: string;
+ 'deliveryDate'?: string;
+ 'lineAmountTypes'?: LineAmountTypes;
+ 'purchaseOrderNumber'?: string;
+ 'reference'?: string;
+ 'brandingThemeID'?: string;
+ 'currencyCode'?: CurrencyCode;
+ 'status'?: PurchaseOrder.StatusEnum;
+ 'sentToContact'?: boolean;
+ 'deliveryAddress'?: string;
+ 'attentionTo'?: string;
+ 'telephone'?: string;
+ 'deliveryInstructions'?: string;
+ 'expectedArrivalDate'?: string;
+ 'purchaseOrderID'?: string;
+ 'currencyRate'?: number;
+ 'subTotal'?: number;
+ 'totalTax'?: number;
+ 'total'?: number;
+ 'totalDiscount'?: number;
+ 'hasAttachments'?: boolean;
+ 'updatedDateUTC'?: Date;
+ 'statusAttributeString'?: string;
+ 'validationErrors'?: Array;
+ 'warnings'?: Array;
+ 'attachments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace PurchaseOrder {
+ enum StatusEnum {
+ DRAFT,
+ SUBMITTED,
+ AUTHORISED,
+ BILLED,
+ DELETED
+ }
+}
diff --git a/dist/gen/model/accounting/purchaseOrder.js b/dist/gen/model/accounting/purchaseOrder.js
new file mode 100644
index 000000000..14b5f3a13
--- /dev/null
+++ b/dist/gen/model/accounting/purchaseOrder.js
@@ -0,0 +1,162 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class PurchaseOrder {
+ static getAttributeTypeMap() {
+ return PurchaseOrder.attributeTypeMap;
+ }
+}
+exports.PurchaseOrder = PurchaseOrder;
+PurchaseOrder.discriminator = undefined;
+PurchaseOrder.attributeTypeMap = [
+ {
+ "name": "contact",
+ "baseName": "Contact",
+ "type": "Contact"
+ },
+ {
+ "name": "lineItems",
+ "baseName": "LineItems",
+ "type": "Array"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "deliveryDate",
+ "baseName": "DeliveryDate",
+ "type": "string"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ },
+ {
+ "name": "purchaseOrderNumber",
+ "baseName": "PurchaseOrderNumber",
+ "type": "string"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "brandingThemeID",
+ "baseName": "BrandingThemeID",
+ "type": "string"
+ },
+ {
+ "name": "currencyCode",
+ "baseName": "CurrencyCode",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "PurchaseOrder.StatusEnum"
+ },
+ {
+ "name": "sentToContact",
+ "baseName": "SentToContact",
+ "type": "boolean"
+ },
+ {
+ "name": "deliveryAddress",
+ "baseName": "DeliveryAddress",
+ "type": "string"
+ },
+ {
+ "name": "attentionTo",
+ "baseName": "AttentionTo",
+ "type": "string"
+ },
+ {
+ "name": "telephone",
+ "baseName": "Telephone",
+ "type": "string"
+ },
+ {
+ "name": "deliveryInstructions",
+ "baseName": "DeliveryInstructions",
+ "type": "string"
+ },
+ {
+ "name": "expectedArrivalDate",
+ "baseName": "ExpectedArrivalDate",
+ "type": "string"
+ },
+ {
+ "name": "purchaseOrderID",
+ "baseName": "PurchaseOrderID",
+ "type": "string"
+ },
+ {
+ "name": "currencyRate",
+ "baseName": "CurrencyRate",
+ "type": "number"
+ },
+ {
+ "name": "subTotal",
+ "baseName": "SubTotal",
+ "type": "number"
+ },
+ {
+ "name": "totalTax",
+ "baseName": "TotalTax",
+ "type": "number"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "totalDiscount",
+ "baseName": "TotalDiscount",
+ "type": "number"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "statusAttributeString",
+ "baseName": "StatusAttributeString",
+ "type": "string"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ },
+ {
+ "name": "warnings",
+ "baseName": "Warnings",
+ "type": "Array"
+ },
+ {
+ "name": "attachments",
+ "baseName": "Attachments",
+ "type": "Array"
+ }
+];
+(function (PurchaseOrder) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["DRAFT"] = 'DRAFT'] = "DRAFT";
+ StatusEnum[StatusEnum["SUBMITTED"] = 'SUBMITTED'] = "SUBMITTED";
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ StatusEnum[StatusEnum["BILLED"] = 'BILLED'] = "BILLED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ })(StatusEnum = PurchaseOrder.StatusEnum || (PurchaseOrder.StatusEnum = {}));
+})(PurchaseOrder = exports.PurchaseOrder || (exports.PurchaseOrder = {}));
+//# sourceMappingURL=purchaseOrder.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/purchaseOrder.js.map b/dist/gen/model/accounting/purchaseOrder.js.map
new file mode 100644
index 000000000..862a8b549
--- /dev/null
+++ b/dist/gen/model/accounting/purchaseOrder.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"purchaseOrder.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/purchaseOrder.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/purchaseOrders.d.ts b/dist/gen/model/accounting/purchaseOrders.d.ts
new file mode 100644
index 000000000..228418e81
--- /dev/null
+++ b/dist/gen/model/accounting/purchaseOrders.d.ts
@@ -0,0 +1,15 @@
+import { PurchaseOrder } from './purchaseOrder';
+export declare class PurchaseOrders {
+ 'purchaseOrders'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/purchaseOrders.js b/dist/gen/model/accounting/purchaseOrders.js
new file mode 100644
index 000000000..d6b5eab56
--- /dev/null
+++ b/dist/gen/model/accounting/purchaseOrders.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class PurchaseOrders {
+ static getAttributeTypeMap() {
+ return PurchaseOrders.attributeTypeMap;
+ }
+}
+exports.PurchaseOrders = PurchaseOrders;
+PurchaseOrders.discriminator = undefined;
+PurchaseOrders.attributeTypeMap = [
+ {
+ "name": "purchaseOrders",
+ "baseName": "PurchaseOrders",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=purchaseOrders.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/purchaseOrders.js.map b/dist/gen/model/accounting/purchaseOrders.js.map
new file mode 100644
index 000000000..04d4b3c38
--- /dev/null
+++ b/dist/gen/model/accounting/purchaseOrders.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"purchaseOrders.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/purchaseOrders.ts"],"names":[],"mappings":";;AAcA,MAAa,cAAc;IAYvB,MAAM,CAAC,mBAAmB;QACtB,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC3C,CAAC;;AAdL,wCAeC;AAZU,4BAAa,GAAuB,SAAS,CAAC;AAE9C,+BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,sBAAsB;KACjC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/quote.d.ts b/dist/gen/model/accounting/quote.d.ts
new file mode 100644
index 000000000..32ad37527
--- /dev/null
+++ b/dist/gen/model/accounting/quote.d.ts
@@ -0,0 +1,40 @@
+import { Contact } from './contact';
+import { CurrencyCode } from './currencyCode';
+import { LineAmountTypes } from './lineAmountTypes';
+import { LineItem } from './lineItem';
+import { QuoteStatusCodes } from './quoteStatusCodes';
+export declare class Quote {
+ 'quoteID'?: string;
+ 'quoteNumber'?: string;
+ 'reference'?: string;
+ 'terms'?: string;
+ 'contact': Contact;
+ 'lineItems'?: Array;
+ 'date'?: string;
+ 'dateString'?: string;
+ 'expiryDate'?: string;
+ 'expiryDateString'?: string;
+ 'status'?: QuoteStatusCodes;
+ 'currencyCode'?: CurrencyCode;
+ 'currencyRate'?: number;
+ 'subTotal'?: number;
+ 'totalTax'?: number;
+ 'total'?: number;
+ 'totalDiscount'?: number;
+ 'title'?: string;
+ 'summary'?: string;
+ 'brandingThemeID'?: string;
+ 'updatedDateUTC'?: Date;
+ 'lineAmountTypes'?: LineAmountTypes;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/quote.js b/dist/gen/model/accounting/quote.js
new file mode 100644
index 000000000..ad71945f9
--- /dev/null
+++ b/dist/gen/model/accounting/quote.js
@@ -0,0 +1,122 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Quote {
+ static getAttributeTypeMap() {
+ return Quote.attributeTypeMap;
+ }
+}
+exports.Quote = Quote;
+Quote.discriminator = undefined;
+Quote.attributeTypeMap = [
+ {
+ "name": "quoteID",
+ "baseName": "QuoteID",
+ "type": "string"
+ },
+ {
+ "name": "quoteNumber",
+ "baseName": "QuoteNumber",
+ "type": "string"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "terms",
+ "baseName": "Terms",
+ "type": "string"
+ },
+ {
+ "name": "contact",
+ "baseName": "Contact",
+ "type": "Contact"
+ },
+ {
+ "name": "lineItems",
+ "baseName": "LineItems",
+ "type": "Array"
+ },
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "dateString",
+ "baseName": "DateString",
+ "type": "string"
+ },
+ {
+ "name": "expiryDate",
+ "baseName": "ExpiryDate",
+ "type": "string"
+ },
+ {
+ "name": "expiryDateString",
+ "baseName": "ExpiryDateString",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "QuoteStatusCodes"
+ },
+ {
+ "name": "currencyCode",
+ "baseName": "CurrencyCode",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "currencyRate",
+ "baseName": "CurrencyRate",
+ "type": "number"
+ },
+ {
+ "name": "subTotal",
+ "baseName": "SubTotal",
+ "type": "number"
+ },
+ {
+ "name": "totalTax",
+ "baseName": "TotalTax",
+ "type": "number"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "totalDiscount",
+ "baseName": "TotalDiscount",
+ "type": "number"
+ },
+ {
+ "name": "title",
+ "baseName": "Title",
+ "type": "string"
+ },
+ {
+ "name": "summary",
+ "baseName": "Summary",
+ "type": "string"
+ },
+ {
+ "name": "brandingThemeID",
+ "baseName": "BrandingThemeID",
+ "type": "string"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ }
+];
+//# sourceMappingURL=quote.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/quote.js.map b/dist/gen/model/accounting/quote.js.map
new file mode 100644
index 000000000..2065db79b
--- /dev/null
+++ b/dist/gen/model/accounting/quote.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"quote.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/quote.ts"],"names":[],"mappings":";;AAkBA,MAAa,KAAK;IAgMd,MAAM,CAAC,mBAAmB;QACtB,OAAO,KAAK,CAAC,gBAAgB,CAAC;IAClC,CAAC;;AAlML,sBAmMC;AArHU,mBAAa,GAAuB,SAAS,CAAC;AAE9C,sBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,kBAAkB;KAC7B;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,cAAc;KACzB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,iBAAiB;KAC5B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/quoteStatusCodes.d.ts b/dist/gen/model/accounting/quoteStatusCodes.d.ts
new file mode 100644
index 000000000..cb090c78d
--- /dev/null
+++ b/dist/gen/model/accounting/quoteStatusCodes.d.ts
@@ -0,0 +1,7 @@
+export declare enum QuoteStatusCodes {
+ DRAFT,
+ SENT,
+ DECLINED,
+ ACCEPTED,
+ INVOICED
+}
diff --git a/dist/gen/model/accounting/quoteStatusCodes.js b/dist/gen/model/accounting/quoteStatusCodes.js
new file mode 100644
index 000000000..e14755124
--- /dev/null
+++ b/dist/gen/model/accounting/quoteStatusCodes.js
@@ -0,0 +1,11 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var QuoteStatusCodes;
+(function (QuoteStatusCodes) {
+ QuoteStatusCodes[QuoteStatusCodes["DRAFT"] = 'DRAFT'] = "DRAFT";
+ QuoteStatusCodes[QuoteStatusCodes["SENT"] = 'SENT'] = "SENT";
+ QuoteStatusCodes[QuoteStatusCodes["DECLINED"] = 'DECLINED'] = "DECLINED";
+ QuoteStatusCodes[QuoteStatusCodes["ACCEPTED"] = 'ACCEPTED'] = "ACCEPTED";
+ QuoteStatusCodes[QuoteStatusCodes["INVOICED"] = 'INVOICED'] = "INVOICED";
+})(QuoteStatusCodes = exports.QuoteStatusCodes || (exports.QuoteStatusCodes = {}));
+//# sourceMappingURL=quoteStatusCodes.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/quoteStatusCodes.js.map b/dist/gen/model/accounting/quoteStatusCodes.js.map
new file mode 100644
index 000000000..aa8876dc4
--- /dev/null
+++ b/dist/gen/model/accounting/quoteStatusCodes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"quoteStatusCodes.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/quoteStatusCodes.ts"],"names":[],"mappings":";;AAgBA,IAAY,gBAMX;AAND,WAAY,gBAAgB;IACxB,6CAAc,OAAO,WAAA,CAAA;IACrB,4CAAa,MAAM,UAAA,CAAA;IACnB,gDAAiB,UAAU,cAAA,CAAA;IAC3B,gDAAiB,UAAU,cAAA,CAAA;IAC3B,gDAAiB,UAAU,cAAA,CAAA;AAC/B,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/quotes.d.ts b/dist/gen/model/accounting/quotes.d.ts
new file mode 100644
index 000000000..b1f3b130e
--- /dev/null
+++ b/dist/gen/model/accounting/quotes.d.ts
@@ -0,0 +1,15 @@
+import { Quote } from './quote';
+export declare class Quotes {
+ 'quotes'?: Array
;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/quotes.js b/dist/gen/model/accounting/quotes.js
new file mode 100644
index 000000000..a5d52b8a8
--- /dev/null
+++ b/dist/gen/model/accounting/quotes.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Quotes {
+ static getAttributeTypeMap() {
+ return Quotes.attributeTypeMap;
+ }
+}
+exports.Quotes = Quotes;
+Quotes.discriminator = undefined;
+Quotes.attributeTypeMap = [
+ {
+ "name": "quotes",
+ "baseName": "Quotes",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=quotes.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/quotes.js.map b/dist/gen/model/accounting/quotes.js.map
new file mode 100644
index 000000000..bb4e67b1c
--- /dev/null
+++ b/dist/gen/model/accounting/quotes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/quotes.ts"],"names":[],"mappings":";;AAcA,MAAa,MAAM;IAYf,MAAM,CAAC,mBAAmB;QACtB,OAAO,MAAM,CAAC,gBAAgB,CAAC;IACnC,CAAC;;AAdL,wBAeC;AAZU,oBAAa,GAAuB,SAAS,CAAC;AAE9C,uBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,cAAc;KACzB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/receipt.d.ts b/dist/gen/model/accounting/receipt.d.ts
new file mode 100644
index 000000000..bc8e5c968
--- /dev/null
+++ b/dist/gen/model/accounting/receipt.d.ts
@@ -0,0 +1,44 @@
+import { Attachment } from './attachment';
+import { Contact } from './contact';
+import { LineAmountTypes } from './lineAmountTypes';
+import { LineItem } from './lineItem';
+import { User } from './user';
+import { ValidationError } from './validationError';
+export declare class Receipt {
+ 'date': string;
+ 'contact': Contact;
+ 'lineItems': Array;
+ 'user': User;
+ 'reference'?: string;
+ 'lineAmountTypes'?: LineAmountTypes;
+ 'subTotal'?: number;
+ 'totalTax'?: number;
+ 'total'?: number;
+ 'receiptID'?: string;
+ 'status'?: Receipt.StatusEnum;
+ 'receiptNumber'?: string;
+ 'updatedDateUTC'?: Date;
+ 'hasAttachments'?: boolean;
+ 'url'?: string;
+ 'validationErrors'?: Array;
+ 'attachments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Receipt {
+ enum StatusEnum {
+ DRAFT,
+ SUBMITTED,
+ AUTHORISED,
+ DECLINED
+ }
+}
diff --git a/dist/gen/model/accounting/receipt.js b/dist/gen/model/accounting/receipt.js
new file mode 100644
index 000000000..b799f3070
--- /dev/null
+++ b/dist/gen/model/accounting/receipt.js
@@ -0,0 +1,106 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Receipt {
+ static getAttributeTypeMap() {
+ return Receipt.attributeTypeMap;
+ }
+}
+exports.Receipt = Receipt;
+Receipt.discriminator = undefined;
+Receipt.attributeTypeMap = [
+ {
+ "name": "date",
+ "baseName": "Date",
+ "type": "string"
+ },
+ {
+ "name": "contact",
+ "baseName": "Contact",
+ "type": "Contact"
+ },
+ {
+ "name": "lineItems",
+ "baseName": "LineItems",
+ "type": "Array"
+ },
+ {
+ "name": "user",
+ "baseName": "User",
+ "type": "User"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ },
+ {
+ "name": "subTotal",
+ "baseName": "SubTotal",
+ "type": "number"
+ },
+ {
+ "name": "totalTax",
+ "baseName": "TotalTax",
+ "type": "number"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "receiptID",
+ "baseName": "ReceiptID",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "Receipt.StatusEnum"
+ },
+ {
+ "name": "receiptNumber",
+ "baseName": "ReceiptNumber",
+ "type": "string"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "url",
+ "baseName": "Url",
+ "type": "string"
+ },
+ {
+ "name": "validationErrors",
+ "baseName": "ValidationErrors",
+ "type": "Array"
+ },
+ {
+ "name": "attachments",
+ "baseName": "Attachments",
+ "type": "Array"
+ }
+];
+(function (Receipt) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["DRAFT"] = 'DRAFT'] = "DRAFT";
+ StatusEnum[StatusEnum["SUBMITTED"] = 'SUBMITTED'] = "SUBMITTED";
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ StatusEnum[StatusEnum["DECLINED"] = 'DECLINED'] = "DECLINED";
+ })(StatusEnum = Receipt.StatusEnum || (Receipt.StatusEnum = {}));
+})(Receipt = exports.Receipt || (exports.Receipt = {}));
+//# sourceMappingURL=receipt.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/receipt.js.map b/dist/gen/model/accounting/receipt.js.map
new file mode 100644
index 000000000..013046b9d
--- /dev/null
+++ b/dist/gen/model/accounting/receipt.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/receipt.ts"],"names":[],"mappings":";;AAmBA,MAAa,OAAO;IAmJhB,MAAM,CAAC,mBAAmB;QACtB,OAAO,OAAO,CAAC,gBAAgB,CAAC;IACpC,CAAC;;AArJL,0BAsJC;AA5FU,qBAAa,GAAuB,SAAS,CAAC;AAE9C,wBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,oBAAoB;KAC/B;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,wBAAwB;KACnC;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC;AAOf,WAAiB,OAAO;IACpB,IAAY,UAKX;IALD,WAAY,UAAU;QAClB,iCAAc,OAAO,WAAA,CAAA;QACrB,qCAAkB,WAAW,eAAA,CAAA;QAC7B,sCAAmB,YAAY,gBAAA,CAAA;QAC/B,oCAAiB,UAAU,cAAA,CAAA;IAC/B,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB;AACL,CAAC,EAPgB,OAAO,GAAP,eAAO,KAAP,eAAO,QAOvB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/receipts.d.ts b/dist/gen/model/accounting/receipts.d.ts
new file mode 100644
index 000000000..90e163456
--- /dev/null
+++ b/dist/gen/model/accounting/receipts.d.ts
@@ -0,0 +1,15 @@
+import { Receipt } from './receipt';
+export declare class Receipts {
+ 'receipts'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/receipts.js b/dist/gen/model/accounting/receipts.js
new file mode 100644
index 000000000..08093e58b
--- /dev/null
+++ b/dist/gen/model/accounting/receipts.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Receipts {
+ static getAttributeTypeMap() {
+ return Receipts.attributeTypeMap;
+ }
+}
+exports.Receipts = Receipts;
+Receipts.discriminator = undefined;
+Receipts.attributeTypeMap = [
+ {
+ "name": "receipts",
+ "baseName": "Receipts",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=receipts.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/receipts.js.map b/dist/gen/model/accounting/receipts.js.map
new file mode 100644
index 000000000..51368fe07
--- /dev/null
+++ b/dist/gen/model/accounting/receipts.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/receipts.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IAYjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAdL,4BAeC;AAZU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/repeatingInvoice.d.ts b/dist/gen/model/accounting/repeatingInvoice.d.ts
new file mode 100644
index 000000000..328654a90
--- /dev/null
+++ b/dist/gen/model/accounting/repeatingInvoice.d.ts
@@ -0,0 +1,45 @@
+import { Attachment } from './attachment';
+import { Contact } from './contact';
+import { CurrencyCode } from './currencyCode';
+import { LineAmountTypes } from './lineAmountTypes';
+import { LineItem } from './lineItem';
+import { Schedule } from './schedule';
+export declare class RepeatingInvoice {
+ 'type'?: RepeatingInvoice.TypeEnum;
+ 'contact'?: Contact;
+ 'schedule'?: Schedule;
+ 'lineItems'?: Array;
+ 'lineAmountTypes'?: LineAmountTypes;
+ 'reference'?: string;
+ 'brandingThemeID'?: string;
+ 'currencyCode'?: CurrencyCode;
+ 'status'?: RepeatingInvoice.StatusEnum;
+ 'subTotal'?: number;
+ 'totalTax'?: number;
+ 'total'?: number;
+ 'repeatingInvoiceID'?: string;
+ 'ID'?: string;
+ 'hasAttachments'?: boolean;
+ 'attachments'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace RepeatingInvoice {
+ enum TypeEnum {
+ ACCPAY,
+ ACCREC
+ }
+ enum StatusEnum {
+ DRAFT,
+ AUTHORISED
+ }
+}
diff --git a/dist/gen/model/accounting/repeatingInvoice.js b/dist/gen/model/accounting/repeatingInvoice.js
new file mode 100644
index 000000000..fd02bc4b5
--- /dev/null
+++ b/dist/gen/model/accounting/repeatingInvoice.js
@@ -0,0 +1,104 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class RepeatingInvoice {
+ static getAttributeTypeMap() {
+ return RepeatingInvoice.attributeTypeMap;
+ }
+}
+exports.RepeatingInvoice = RepeatingInvoice;
+RepeatingInvoice.discriminator = undefined;
+RepeatingInvoice.attributeTypeMap = [
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "RepeatingInvoice.TypeEnum"
+ },
+ {
+ "name": "contact",
+ "baseName": "Contact",
+ "type": "Contact"
+ },
+ {
+ "name": "schedule",
+ "baseName": "Schedule",
+ "type": "Schedule"
+ },
+ {
+ "name": "lineItems",
+ "baseName": "LineItems",
+ "type": "Array"
+ },
+ {
+ "name": "lineAmountTypes",
+ "baseName": "LineAmountTypes",
+ "type": "LineAmountTypes"
+ },
+ {
+ "name": "reference",
+ "baseName": "Reference",
+ "type": "string"
+ },
+ {
+ "name": "brandingThemeID",
+ "baseName": "BrandingThemeID",
+ "type": "string"
+ },
+ {
+ "name": "currencyCode",
+ "baseName": "CurrencyCode",
+ "type": "CurrencyCode"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "RepeatingInvoice.StatusEnum"
+ },
+ {
+ "name": "subTotal",
+ "baseName": "SubTotal",
+ "type": "number"
+ },
+ {
+ "name": "totalTax",
+ "baseName": "TotalTax",
+ "type": "number"
+ },
+ {
+ "name": "total",
+ "baseName": "Total",
+ "type": "number"
+ },
+ {
+ "name": "repeatingInvoiceID",
+ "baseName": "RepeatingInvoiceID",
+ "type": "string"
+ },
+ {
+ "name": "ID",
+ "baseName": "ID",
+ "type": "string"
+ },
+ {
+ "name": "hasAttachments",
+ "baseName": "HasAttachments",
+ "type": "boolean"
+ },
+ {
+ "name": "attachments",
+ "baseName": "Attachments",
+ "type": "Array"
+ }
+];
+(function (RepeatingInvoice) {
+ let TypeEnum;
+ (function (TypeEnum) {
+ TypeEnum[TypeEnum["ACCPAY"] = 'ACCPAY'] = "ACCPAY";
+ TypeEnum[TypeEnum["ACCREC"] = 'ACCREC'] = "ACCREC";
+ })(TypeEnum = RepeatingInvoice.TypeEnum || (RepeatingInvoice.TypeEnum = {}));
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["DRAFT"] = 'DRAFT'] = "DRAFT";
+ StatusEnum[StatusEnum["AUTHORISED"] = 'AUTHORISED'] = "AUTHORISED";
+ })(StatusEnum = RepeatingInvoice.StatusEnum || (RepeatingInvoice.StatusEnum = {}));
+})(RepeatingInvoice = exports.RepeatingInvoice || (exports.RepeatingInvoice = {}));
+//# sourceMappingURL=repeatingInvoice.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/repeatingInvoice.js.map b/dist/gen/model/accounting/repeatingInvoice.js.map
new file mode 100644
index 000000000..51d4a843c
--- /dev/null
+++ b/dist/gen/model/accounting/repeatingInvoice.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"repeatingInvoice.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/repeatingInvoice.ts"],"names":[],"mappings":";;AAmBA,MAAa,gBAAgB;IA0IzB,MAAM,CAAC,mBAAmB;QACtB,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;IAC7C,CAAC;;AA5IL,4CA6IC;AAvFU,8BAAa,GAAuB,SAAS,CAAC;AAE9C,iCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,2BAA2B;KACtC;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,UAAU;KACrB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,iBAAiB;KAC5B;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,cAAc;KACzB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,6BAA6B;KACxC;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC;AAOf,WAAiB,gBAAgB;IAC7B,IAAY,QAGX;IAHD,WAAY,QAAQ;QAChB,8BAAe,QAAQ,YAAA,CAAA;QACvB,8BAAe,QAAQ,YAAA,CAAA;IAC3B,CAAC,EAHW,QAAQ,GAAR,yBAAQ,KAAR,yBAAQ,QAGnB;IACD,IAAY,UAGX;IAHD,WAAY,UAAU;QAClB,iCAAc,OAAO,WAAA,CAAA;QACrB,sCAAmB,YAAY,gBAAA,CAAA;IACnC,CAAC,EAHW,UAAU,GAAV,2BAAU,KAAV,2BAAU,QAGrB;AACL,CAAC,EATgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAShC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/repeatingInvoices.d.ts b/dist/gen/model/accounting/repeatingInvoices.d.ts
new file mode 100644
index 000000000..3d87110d1
--- /dev/null
+++ b/dist/gen/model/accounting/repeatingInvoices.d.ts
@@ -0,0 +1,15 @@
+import { RepeatingInvoice } from './repeatingInvoice';
+export declare class RepeatingInvoices {
+ 'repeatingInvoices'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/repeatingInvoices.js b/dist/gen/model/accounting/repeatingInvoices.js
new file mode 100644
index 000000000..8b3a03461
--- /dev/null
+++ b/dist/gen/model/accounting/repeatingInvoices.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class RepeatingInvoices {
+ static getAttributeTypeMap() {
+ return RepeatingInvoices.attributeTypeMap;
+ }
+}
+exports.RepeatingInvoices = RepeatingInvoices;
+RepeatingInvoices.discriminator = undefined;
+RepeatingInvoices.attributeTypeMap = [
+ {
+ "name": "repeatingInvoices",
+ "baseName": "RepeatingInvoices",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=repeatingInvoices.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/repeatingInvoices.js.map b/dist/gen/model/accounting/repeatingInvoices.js.map
new file mode 100644
index 000000000..1f5ea86ce
--- /dev/null
+++ b/dist/gen/model/accounting/repeatingInvoices.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"repeatingInvoices.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/repeatingInvoices.ts"],"names":[],"mappings":";;AAcA,MAAa,iBAAiB;IAY1B,MAAM,CAAC,mBAAmB;QACtB,OAAO,iBAAiB,CAAC,gBAAgB,CAAC;IAC9C,CAAC;;AAdL,8CAeC;AAZU,+BAAa,GAAuB,SAAS,CAAC;AAE9C,kCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,mBAAmB;QAC3B,UAAU,EAAE,mBAAmB;QAC/B,MAAM,EAAE,yBAAyB;KACpC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/report.d.ts b/dist/gen/model/accounting/report.d.ts
new file mode 100644
index 000000000..f3123cc4e
--- /dev/null
+++ b/dist/gen/model/accounting/report.d.ts
@@ -0,0 +1,26 @@
+import { TenNinteyNineContact } from './tenNinteyNineContact';
+export declare class Report {
+ 'reportID'?: string;
+ 'reportName'?: string;
+ 'reportType'?: Report.ReportTypeEnum;
+ 'reportTitle'?: string;
+ 'reportDate'?: string;
+ 'updatedDateUTC'?: Date;
+ 'contacts'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Report {
+ enum ReportTypeEnum {
+ AgedPayablesByContact
+ }
+}
diff --git a/dist/gen/model/accounting/report.js b/dist/gen/model/accounting/report.js
new file mode 100644
index 000000000..7dc03dd90
--- /dev/null
+++ b/dist/gen/model/accounting/report.js
@@ -0,0 +1,53 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Report {
+ static getAttributeTypeMap() {
+ return Report.attributeTypeMap;
+ }
+}
+exports.Report = Report;
+Report.discriminator = undefined;
+Report.attributeTypeMap = [
+ {
+ "name": "reportID",
+ "baseName": "ReportID",
+ "type": "string"
+ },
+ {
+ "name": "reportName",
+ "baseName": "ReportName",
+ "type": "string"
+ },
+ {
+ "name": "reportType",
+ "baseName": "ReportType",
+ "type": "Report.ReportTypeEnum"
+ },
+ {
+ "name": "reportTitle",
+ "baseName": "ReportTitle",
+ "type": "string"
+ },
+ {
+ "name": "reportDate",
+ "baseName": "ReportDate",
+ "type": "string"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "contacts",
+ "baseName": "Contacts",
+ "type": "Array"
+ }
+];
+(function (Report) {
+ let ReportTypeEnum;
+ (function (ReportTypeEnum) {
+ ReportTypeEnum[ReportTypeEnum["AgedPayablesByContact"] = 'AgedPayablesByContact'] = "AgedPayablesByContact";
+ })(ReportTypeEnum = Report.ReportTypeEnum || (Report.ReportTypeEnum = {}));
+})(Report = exports.Report || (exports.Report = {}));
+//# sourceMappingURL=report.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/report.js.map b/dist/gen/model/accounting/report.js.map
new file mode 100644
index 000000000..9bbcf86dd
--- /dev/null
+++ b/dist/gen/model/accounting/report.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/report.ts"],"names":[],"mappings":";;AAcA,MAAa,MAAM;IAkEf,MAAM,CAAC,mBAAmB;QACtB,OAAO,MAAM,CAAC,gBAAgB,CAAC;IACnC,CAAC;;AApEL,wBAqEC;AA1CU,oBAAa,GAAuB,SAAS,CAAC;AAE9C,uBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,uBAAuB;KAClC;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,6BAA6B;KACxC;CAAK,CAAC;AAOf,WAAiB,MAAM;IACnB,IAAY,cAEX;IAFD,WAAY,cAAc;QACtB,yDAA8B,uBAAuB,2BAAA,CAAA;IACzD,CAAC,EAFW,cAAc,GAAd,qBAAc,KAAd,qBAAc,QAEzB;AACL,CAAC,EAJgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAItB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportAttribute.d.ts b/dist/gen/model/accounting/reportAttribute.d.ts
new file mode 100644
index 000000000..1f5b70ab2
--- /dev/null
+++ b/dist/gen/model/accounting/reportAttribute.d.ts
@@ -0,0 +1,15 @@
+export declare class ReportAttribute {
+ 'id'?: string;
+ 'value'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/reportAttribute.js b/dist/gen/model/accounting/reportAttribute.js
new file mode 100644
index 000000000..c6c20df79
--- /dev/null
+++ b/dist/gen/model/accounting/reportAttribute.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ReportAttribute {
+ static getAttributeTypeMap() {
+ return ReportAttribute.attributeTypeMap;
+ }
+}
+exports.ReportAttribute = ReportAttribute;
+ReportAttribute.discriminator = undefined;
+ReportAttribute.attributeTypeMap = [
+ {
+ "name": "id",
+ "baseName": "Id",
+ "type": "string"
+ },
+ {
+ "name": "value",
+ "baseName": "Value",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=reportAttribute.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportAttribute.js.map b/dist/gen/model/accounting/reportAttribute.js.map
new file mode 100644
index 000000000..20dbb56cc
--- /dev/null
+++ b/dist/gen/model/accounting/reportAttribute.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reportAttribute.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/reportAttribute.ts"],"names":[],"mappings":";;AAaA,MAAa,eAAe;IAkBxB,MAAM,CAAC,mBAAmB;QACtB,OAAO,eAAe,CAAC,gBAAgB,CAAC;IAC5C,CAAC;;AApBL,0CAqBC;AAjBU,6BAAa,GAAuB,SAAS,CAAC;AAE9C,gCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportCell.d.ts b/dist/gen/model/accounting/reportCell.d.ts
new file mode 100644
index 000000000..995eda643
--- /dev/null
+++ b/dist/gen/model/accounting/reportCell.d.ts
@@ -0,0 +1,16 @@
+import { ReportAttribute } from './reportAttribute';
+export declare class ReportCell {
+ 'value'?: string;
+ 'attributes'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/reportCell.js b/dist/gen/model/accounting/reportCell.js
new file mode 100644
index 000000000..0634ff524
--- /dev/null
+++ b/dist/gen/model/accounting/reportCell.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ReportCell {
+ static getAttributeTypeMap() {
+ return ReportCell.attributeTypeMap;
+ }
+}
+exports.ReportCell = ReportCell;
+ReportCell.discriminator = undefined;
+ReportCell.attributeTypeMap = [
+ {
+ "name": "value",
+ "baseName": "Value",
+ "type": "string"
+ },
+ {
+ "name": "attributes",
+ "baseName": "Attributes",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=reportCell.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportCell.js.map b/dist/gen/model/accounting/reportCell.js.map
new file mode 100644
index 000000000..1060eac6e
--- /dev/null
+++ b/dist/gen/model/accounting/reportCell.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reportCell.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/reportCell.ts"],"names":[],"mappings":";;AAcA,MAAa,UAAU;IAkBnB,MAAM,CAAC,mBAAmB;QACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;;AApBL,gCAqBC;AAjBU,wBAAa,GAAuB,SAAS,CAAC;AAE9C,2BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,wBAAwB;KACnC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportFields.d.ts b/dist/gen/model/accounting/reportFields.d.ts
new file mode 100644
index 000000000..70cb9a5b8
--- /dev/null
+++ b/dist/gen/model/accounting/reportFields.d.ts
@@ -0,0 +1,16 @@
+export declare class ReportFields {
+ 'fieldID'?: string;
+ 'description'?: string;
+ 'value'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/reportFields.js b/dist/gen/model/accounting/reportFields.js
new file mode 100644
index 000000000..67514a031
--- /dev/null
+++ b/dist/gen/model/accounting/reportFields.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ReportFields {
+ static getAttributeTypeMap() {
+ return ReportFields.attributeTypeMap;
+ }
+}
+exports.ReportFields = ReportFields;
+ReportFields.discriminator = undefined;
+ReportFields.attributeTypeMap = [
+ {
+ "name": "fieldID",
+ "baseName": "FieldID",
+ "type": "string"
+ },
+ {
+ "name": "description",
+ "baseName": "Description",
+ "type": "string"
+ },
+ {
+ "name": "value",
+ "baseName": "Value",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=reportFields.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportFields.js.map b/dist/gen/model/accounting/reportFields.js.map
new file mode 100644
index 000000000..22508a97b
--- /dev/null
+++ b/dist/gen/model/accounting/reportFields.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reportFields.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/reportFields.ts"],"names":[],"mappings":";;AAaA,MAAa,YAAY;IAwBrB,MAAM,CAAC,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACzC,CAAC;;AA1BL,oCA2BC;AAtBU,0BAAa,GAAuB,SAAS,CAAC;AAE9C,6BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportRow.d.ts b/dist/gen/model/accounting/reportRow.d.ts
new file mode 100644
index 000000000..8b6b44be8
--- /dev/null
+++ b/dist/gen/model/accounting/reportRow.d.ts
@@ -0,0 +1,18 @@
+import { ReportCell } from './reportCell';
+import { RowType } from './rowType';
+export declare class ReportRow {
+ 'rowType'?: RowType;
+ 'title'?: string;
+ 'cells'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/reportRow.js b/dist/gen/model/accounting/reportRow.js
new file mode 100644
index 000000000..0e0949d40
--- /dev/null
+++ b/dist/gen/model/accounting/reportRow.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ReportRow {
+ static getAttributeTypeMap() {
+ return ReportRow.attributeTypeMap;
+ }
+}
+exports.ReportRow = ReportRow;
+ReportRow.discriminator = undefined;
+ReportRow.attributeTypeMap = [
+ {
+ "name": "rowType",
+ "baseName": "RowType",
+ "type": "RowType"
+ },
+ {
+ "name": "title",
+ "baseName": "Title",
+ "type": "string"
+ },
+ {
+ "name": "cells",
+ "baseName": "Cells",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=reportRow.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportRow.js.map b/dist/gen/model/accounting/reportRow.js.map
new file mode 100644
index 000000000..28e0a4bdc
--- /dev/null
+++ b/dist/gen/model/accounting/reportRow.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reportRow.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/reportRow.ts"],"names":[],"mappings":";;AAeA,MAAa,SAAS;IAwBlB,MAAM,CAAC,mBAAmB;QACtB,OAAO,SAAS,CAAC,gBAAgB,CAAC;IACtC,CAAC;;AA1BL,8BA2BC;AAtBU,uBAAa,GAAuB,SAAS,CAAC;AAE9C,0BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,mBAAmB;KAC9B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportRows.d.ts b/dist/gen/model/accounting/reportRows.d.ts
new file mode 100644
index 000000000..7b55b3e76
--- /dev/null
+++ b/dist/gen/model/accounting/reportRows.d.ts
@@ -0,0 +1,20 @@
+import { ReportCell } from './reportCell';
+import { ReportRow } from './reportRow';
+import { RowType } from './rowType';
+export declare class ReportRows {
+ 'rowType'?: RowType;
+ 'title'?: string;
+ 'cells'?: Array;
+ 'rows'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/reportRows.js b/dist/gen/model/accounting/reportRows.js
new file mode 100644
index 000000000..15df4b798
--- /dev/null
+++ b/dist/gen/model/accounting/reportRows.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ReportRows {
+ static getAttributeTypeMap() {
+ return ReportRows.attributeTypeMap;
+ }
+}
+exports.ReportRows = ReportRows;
+ReportRows.discriminator = undefined;
+ReportRows.attributeTypeMap = [
+ {
+ "name": "rowType",
+ "baseName": "RowType",
+ "type": "RowType"
+ },
+ {
+ "name": "title",
+ "baseName": "Title",
+ "type": "string"
+ },
+ {
+ "name": "cells",
+ "baseName": "Cells",
+ "type": "Array"
+ },
+ {
+ "name": "rows",
+ "baseName": "Rows",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=reportRows.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportRows.js.map b/dist/gen/model/accounting/reportRows.js.map
new file mode 100644
index 000000000..7990f35b1
--- /dev/null
+++ b/dist/gen/model/accounting/reportRows.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reportRows.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/reportRows.ts"],"names":[],"mappings":";;AAgBA,MAAa,UAAU;IA8BnB,MAAM,CAAC,mBAAmB;QACtB,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;;AAhCL,gCAiCC;AA3BU,wBAAa,GAAuB,SAAS,CAAC;AAE9C,2BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,mBAAmB;KAC9B;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,kBAAkB;KAC7B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportWithRow.d.ts b/dist/gen/model/accounting/reportWithRow.d.ts
new file mode 100644
index 000000000..76a7d20f1
--- /dev/null
+++ b/dist/gen/model/accounting/reportWithRow.d.ts
@@ -0,0 +1,24 @@
+import { ReportFields } from './reportFields';
+import { ReportRows } from './reportRows';
+export declare class ReportWithRow {
+ 'reportID'?: string;
+ 'reportName'?: string;
+ 'reportTitle'?: string;
+ 'reportType'?: string;
+ 'reportTitles'?: Array;
+ 'reportDate'?: string;
+ 'rows'?: Array;
+ 'updatedDateUTC'?: Date;
+ 'fields'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/reportWithRow.js b/dist/gen/model/accounting/reportWithRow.js
new file mode 100644
index 000000000..82466220e
--- /dev/null
+++ b/dist/gen/model/accounting/reportWithRow.js
@@ -0,0 +1,57 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ReportWithRow {
+ static getAttributeTypeMap() {
+ return ReportWithRow.attributeTypeMap;
+ }
+}
+exports.ReportWithRow = ReportWithRow;
+ReportWithRow.discriminator = undefined;
+ReportWithRow.attributeTypeMap = [
+ {
+ "name": "reportID",
+ "baseName": "ReportID",
+ "type": "string"
+ },
+ {
+ "name": "reportName",
+ "baseName": "ReportName",
+ "type": "string"
+ },
+ {
+ "name": "reportTitle",
+ "baseName": "ReportTitle",
+ "type": "string"
+ },
+ {
+ "name": "reportType",
+ "baseName": "ReportType",
+ "type": "string"
+ },
+ {
+ "name": "reportTitles",
+ "baseName": "ReportTitles",
+ "type": "Array"
+ },
+ {
+ "name": "reportDate",
+ "baseName": "ReportDate",
+ "type": "string"
+ },
+ {
+ "name": "rows",
+ "baseName": "Rows",
+ "type": "Array"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "fields",
+ "baseName": "Fields",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=reportWithRow.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportWithRow.js.map b/dist/gen/model/accounting/reportWithRow.js.map
new file mode 100644
index 000000000..71c7b746b
--- /dev/null
+++ b/dist/gen/model/accounting/reportWithRow.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reportWithRow.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/reportWithRow.ts"],"names":[],"mappings":";;AAeA,MAAa,aAAa;IAiFtB,MAAM,CAAC,mBAAmB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IAC1C,CAAC;;AAnFL,sCAoFC;AApDU,2BAAa,GAAuB,SAAS,CAAC;AAE9C,8BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,eAAe;KAC1B;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,mBAAmB;KAC9B;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,qBAAqB;KAChC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportWithRows.d.ts b/dist/gen/model/accounting/reportWithRows.d.ts
new file mode 100644
index 000000000..db945ece2
--- /dev/null
+++ b/dist/gen/model/accounting/reportWithRows.d.ts
@@ -0,0 +1,15 @@
+import { ReportWithRow } from './reportWithRow';
+export declare class ReportWithRows {
+ 'reports'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/reportWithRows.js b/dist/gen/model/accounting/reportWithRows.js
new file mode 100644
index 000000000..64415667d
--- /dev/null
+++ b/dist/gen/model/accounting/reportWithRows.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ReportWithRows {
+ static getAttributeTypeMap() {
+ return ReportWithRows.attributeTypeMap;
+ }
+}
+exports.ReportWithRows = ReportWithRows;
+ReportWithRows.discriminator = undefined;
+ReportWithRows.attributeTypeMap = [
+ {
+ "name": "reports",
+ "baseName": "Reports",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=reportWithRows.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reportWithRows.js.map b/dist/gen/model/accounting/reportWithRows.js.map
new file mode 100644
index 000000000..de33ef7b4
--- /dev/null
+++ b/dist/gen/model/accounting/reportWithRows.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reportWithRows.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/reportWithRows.ts"],"names":[],"mappings":";;AAcA,MAAa,cAAc;IAYvB,MAAM,CAAC,mBAAmB;QACtB,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC3C,CAAC;;AAdL,wCAeC;AAZU,4BAAa,GAAuB,SAAS,CAAC;AAE9C,+BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,sBAAsB;KACjC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reports.d.ts b/dist/gen/model/accounting/reports.d.ts
new file mode 100644
index 000000000..e91b419d4
--- /dev/null
+++ b/dist/gen/model/accounting/reports.d.ts
@@ -0,0 +1,15 @@
+import { Report } from './report';
+export declare class Reports {
+ 'reports'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/reports.js b/dist/gen/model/accounting/reports.js
new file mode 100644
index 000000000..968dc7dd1
--- /dev/null
+++ b/dist/gen/model/accounting/reports.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Reports {
+ static getAttributeTypeMap() {
+ return Reports.attributeTypeMap;
+ }
+}
+exports.Reports = Reports;
+Reports.discriminator = undefined;
+Reports.attributeTypeMap = [
+ {
+ "name": "reports",
+ "baseName": "Reports",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=reports.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/reports.js.map b/dist/gen/model/accounting/reports.js.map
new file mode 100644
index 000000000..9fd7a010f
--- /dev/null
+++ b/dist/gen/model/accounting/reports.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/reports.ts"],"names":[],"mappings":";;AAcA,MAAa,OAAO;IAYhB,MAAM,CAAC,mBAAmB;QACtB,OAAO,OAAO,CAAC,gBAAgB,CAAC;IACpC,CAAC;;AAdL,0BAeC;AAZU,qBAAa,GAAuB,SAAS,CAAC;AAE9C,wBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,eAAe;KAC1B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/requestEmpty.d.ts b/dist/gen/model/accounting/requestEmpty.d.ts
new file mode 100644
index 000000000..730868e09
--- /dev/null
+++ b/dist/gen/model/accounting/requestEmpty.d.ts
@@ -0,0 +1,14 @@
+export declare class RequestEmpty {
+ 'status'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/requestEmpty.js b/dist/gen/model/accounting/requestEmpty.js
new file mode 100644
index 000000000..bbb67d963
--- /dev/null
+++ b/dist/gen/model/accounting/requestEmpty.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class RequestEmpty {
+ static getAttributeTypeMap() {
+ return RequestEmpty.attributeTypeMap;
+ }
+}
+exports.RequestEmpty = RequestEmpty;
+RequestEmpty.discriminator = undefined;
+RequestEmpty.attributeTypeMap = [
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=requestEmpty.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/requestEmpty.js.map b/dist/gen/model/accounting/requestEmpty.js.map
new file mode 100644
index 000000000..4491d7581
--- /dev/null
+++ b/dist/gen/model/accounting/requestEmpty.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"requestEmpty.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/requestEmpty.ts"],"names":[],"mappings":";;AAaA,MAAa,YAAY;IAerB,MAAM,CAAC,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACzC,CAAC;;AAjBL,oCAkBC;AAZU,0BAAa,GAAuB,SAAS,CAAC;AAE9C,6BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/rowType.d.ts b/dist/gen/model/accounting/rowType.d.ts
new file mode 100644
index 000000000..a7ec342fa
--- /dev/null
+++ b/dist/gen/model/accounting/rowType.d.ts
@@ -0,0 +1,6 @@
+export declare enum RowType {
+ Header,
+ Section,
+ Row,
+ SummaryRow
+}
diff --git a/dist/gen/model/accounting/rowType.js b/dist/gen/model/accounting/rowType.js
new file mode 100644
index 000000000..13ced44de
--- /dev/null
+++ b/dist/gen/model/accounting/rowType.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var RowType;
+(function (RowType) {
+ RowType[RowType["Header"] = 'Header'] = "Header";
+ RowType[RowType["Section"] = 'Section'] = "Section";
+ RowType[RowType["Row"] = 'Row'] = "Row";
+ RowType[RowType["SummaryRow"] = 'SummaryRow'] = "SummaryRow";
+})(RowType = exports.RowType || (exports.RowType = {}));
+//# sourceMappingURL=rowType.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/rowType.js.map b/dist/gen/model/accounting/rowType.js.map
new file mode 100644
index 000000000..2e12b1dbd
--- /dev/null
+++ b/dist/gen/model/accounting/rowType.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"rowType.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/rowType.ts"],"names":[],"mappings":";;AAaA,IAAY,OAKX;AALD,WAAY,OAAO;IACf,4BAAe,QAAQ,YAAA,CAAA;IACvB,6BAAgB,SAAS,aAAA,CAAA;IACzB,yBAAY,KAAK,SAAA,CAAA;IACjB,gCAAmB,YAAY,gBAAA,CAAA;AACnC,CAAC,EALW,OAAO,GAAP,eAAO,KAAP,eAAO,QAKlB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/salesTrackingCategory.d.ts b/dist/gen/model/accounting/salesTrackingCategory.d.ts
new file mode 100644
index 000000000..273849376
--- /dev/null
+++ b/dist/gen/model/accounting/salesTrackingCategory.d.ts
@@ -0,0 +1,15 @@
+export declare class SalesTrackingCategory {
+ 'trackingCategoryName'?: string;
+ 'trackingOptionName'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/salesTrackingCategory.js b/dist/gen/model/accounting/salesTrackingCategory.js
new file mode 100644
index 000000000..901cc7cd1
--- /dev/null
+++ b/dist/gen/model/accounting/salesTrackingCategory.js
@@ -0,0 +1,22 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class SalesTrackingCategory {
+ static getAttributeTypeMap() {
+ return SalesTrackingCategory.attributeTypeMap;
+ }
+}
+exports.SalesTrackingCategory = SalesTrackingCategory;
+SalesTrackingCategory.discriminator = undefined;
+SalesTrackingCategory.attributeTypeMap = [
+ {
+ "name": "trackingCategoryName",
+ "baseName": "TrackingCategoryName",
+ "type": "string"
+ },
+ {
+ "name": "trackingOptionName",
+ "baseName": "TrackingOptionName",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=salesTrackingCategory.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/salesTrackingCategory.js.map b/dist/gen/model/accounting/salesTrackingCategory.js.map
new file mode 100644
index 000000000..c8ab6fc90
--- /dev/null
+++ b/dist/gen/model/accounting/salesTrackingCategory.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"salesTrackingCategory.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/salesTrackingCategory.ts"],"names":[],"mappings":";;AAaA,MAAa,qBAAqB;IAwB9B,MAAM,CAAC,mBAAmB;QACtB,OAAO,qBAAqB,CAAC,gBAAgB,CAAC;IAClD,CAAC;;AA1BL,sDA2BC;AAjBU,mCAAa,GAAuB,SAAS,CAAC;AAE9C,sCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,sBAAsB;QAC9B,UAAU,EAAE,sBAAsB;QAClC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/schedule.d.ts b/dist/gen/model/accounting/schedule.d.ts
new file mode 100644
index 000000000..e53305e2b
--- /dev/null
+++ b/dist/gen/model/accounting/schedule.d.ts
@@ -0,0 +1,32 @@
+export declare class Schedule {
+ 'period'?: number;
+ 'unit'?: Schedule.UnitEnum;
+ 'dueDate'?: number;
+ 'dueDateType'?: Schedule.DueDateTypeEnum;
+ 'startDate'?: string;
+ 'nextScheduledDate'?: string;
+ 'endDate'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace Schedule {
+ enum UnitEnum {
+ WEEKLY,
+ MONTHLY
+ }
+ enum DueDateTypeEnum {
+ DAYSAFTERBILLDATE,
+ DAYSAFTERBILLMONTH,
+ OFCURRENTMONTH,
+ OFFOLLOWINGMONTH
+ }
+}
diff --git a/dist/gen/model/accounting/schedule.js b/dist/gen/model/accounting/schedule.js
new file mode 100644
index 000000000..7c68e4e33
--- /dev/null
+++ b/dist/gen/model/accounting/schedule.js
@@ -0,0 +1,61 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Schedule {
+ static getAttributeTypeMap() {
+ return Schedule.attributeTypeMap;
+ }
+}
+exports.Schedule = Schedule;
+Schedule.discriminator = undefined;
+Schedule.attributeTypeMap = [
+ {
+ "name": "period",
+ "baseName": "Period",
+ "type": "number"
+ },
+ {
+ "name": "unit",
+ "baseName": "Unit",
+ "type": "Schedule.UnitEnum"
+ },
+ {
+ "name": "dueDate",
+ "baseName": "DueDate",
+ "type": "number"
+ },
+ {
+ "name": "dueDateType",
+ "baseName": "DueDateType",
+ "type": "Schedule.DueDateTypeEnum"
+ },
+ {
+ "name": "startDate",
+ "baseName": "StartDate",
+ "type": "string"
+ },
+ {
+ "name": "nextScheduledDate",
+ "baseName": "NextScheduledDate",
+ "type": "string"
+ },
+ {
+ "name": "endDate",
+ "baseName": "EndDate",
+ "type": "string"
+ }
+];
+(function (Schedule) {
+ let UnitEnum;
+ (function (UnitEnum) {
+ UnitEnum[UnitEnum["WEEKLY"] = 'WEEKLY'] = "WEEKLY";
+ UnitEnum[UnitEnum["MONTHLY"] = 'MONTHLY'] = "MONTHLY";
+ })(UnitEnum = Schedule.UnitEnum || (Schedule.UnitEnum = {}));
+ let DueDateTypeEnum;
+ (function (DueDateTypeEnum) {
+ DueDateTypeEnum[DueDateTypeEnum["DAYSAFTERBILLDATE"] = 'DAYSAFTERBILLDATE'] = "DAYSAFTERBILLDATE";
+ DueDateTypeEnum[DueDateTypeEnum["DAYSAFTERBILLMONTH"] = 'DAYSAFTERBILLMONTH'] = "DAYSAFTERBILLMONTH";
+ DueDateTypeEnum[DueDateTypeEnum["OFCURRENTMONTH"] = 'OFCURRENTMONTH'] = "OFCURRENTMONTH";
+ DueDateTypeEnum[DueDateTypeEnum["OFFOLLOWINGMONTH"] = 'OFFOLLOWINGMONTH'] = "OFFOLLOWINGMONTH";
+ })(DueDateTypeEnum = Schedule.DueDateTypeEnum || (Schedule.DueDateTypeEnum = {}));
+})(Schedule = exports.Schedule || (exports.Schedule = {}));
+//# sourceMappingURL=schedule.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/schedule.js.map b/dist/gen/model/accounting/schedule.js.map
new file mode 100644
index 000000000..a4aa24fb7
--- /dev/null
+++ b/dist/gen/model/accounting/schedule.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/schedule.ts"],"names":[],"mappings":";;AAaA,MAAa,QAAQ;IAqEjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAvEL,4BAwEC;AA1CU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,mBAAmB;KAC9B;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,0BAA0B;KACrC;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,mBAAmB;QAC3B,UAAU,EAAE,mBAAmB;QAC/B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC;AAOf,WAAiB,QAAQ;IACrB,IAAY,QAGX;IAHD,WAAY,QAAQ;QAChB,8BAAe,QAAQ,YAAA,CAAA;QACvB,+BAAgB,SAAS,aAAA,CAAA;IAC7B,CAAC,EAHW,QAAQ,GAAR,iBAAQ,KAAR,iBAAQ,QAGnB;IACD,IAAY,eAKX;IALD,WAAY,eAAe;QACvB,uDAA0B,mBAAmB,uBAAA,CAAA;QAC7C,wDAA2B,oBAAoB,wBAAA,CAAA;QAC/C,oDAAuB,gBAAgB,oBAAA,CAAA;QACvC,sDAAyB,kBAAkB,sBAAA,CAAA;IAC/C,CAAC,EALW,eAAe,GAAf,wBAAe,KAAf,wBAAe,QAK1B;AACL,CAAC,EAXgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAWxB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/taxComponent.d.ts b/dist/gen/model/accounting/taxComponent.d.ts
new file mode 100644
index 000000000..f3fb308b5
--- /dev/null
+++ b/dist/gen/model/accounting/taxComponent.d.ts
@@ -0,0 +1,17 @@
+export declare class TaxComponent {
+ 'name'?: string;
+ 'rate'?: number;
+ 'isCompound'?: boolean;
+ 'isNonRecoverable'?: boolean;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/taxComponent.js b/dist/gen/model/accounting/taxComponent.js
new file mode 100644
index 000000000..3d8a50299
--- /dev/null
+++ b/dist/gen/model/accounting/taxComponent.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class TaxComponent {
+ static getAttributeTypeMap() {
+ return TaxComponent.attributeTypeMap;
+ }
+}
+exports.TaxComponent = TaxComponent;
+TaxComponent.discriminator = undefined;
+TaxComponent.attributeTypeMap = [
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "rate",
+ "baseName": "Rate",
+ "type": "number"
+ },
+ {
+ "name": "isCompound",
+ "baseName": "IsCompound",
+ "type": "boolean"
+ },
+ {
+ "name": "isNonRecoverable",
+ "baseName": "IsNonRecoverable",
+ "type": "boolean"
+ }
+];
+//# sourceMappingURL=taxComponent.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/taxComponent.js.map b/dist/gen/model/accounting/taxComponent.js.map
new file mode 100644
index 000000000..2ed9ce782
--- /dev/null
+++ b/dist/gen/model/accounting/taxComponent.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"taxComponent.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/taxComponent.ts"],"names":[],"mappings":";;AAaA,MAAa,YAAY;IA0CrB,MAAM,CAAC,mBAAmB;QACtB,OAAO,YAAY,CAAC,gBAAgB,CAAC;IACzC,CAAC;;AA5CL,oCA6CC;AA3BU,0BAAa,GAAuB,SAAS,CAAC;AAE9C,6BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,SAAS;KACpB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/taxRate.d.ts b/dist/gen/model/accounting/taxRate.d.ts
new file mode 100644
index 000000000..9f715b11d
--- /dev/null
+++ b/dist/gen/model/accounting/taxRate.d.ts
@@ -0,0 +1,68 @@
+import { TaxComponent } from './taxComponent';
+export declare class TaxRate {
+ 'name'?: string;
+ 'taxType'?: string;
+ 'taxComponents'?: Array;
+ 'status'?: TaxRate.StatusEnum;
+ 'reportTaxType': TaxRate.ReportTaxTypeEnum;
+ 'canApplyToAssets'?: boolean;
+ 'canApplyToEquity'?: boolean;
+ 'canApplyToExpenses'?: boolean;
+ 'canApplyToLiabilities'?: boolean;
+ 'canApplyToRevenue'?: boolean;
+ 'displayTaxRate'?: number;
+ 'effectiveRate'?: number;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace TaxRate {
+ enum StatusEnum {
+ ACTIVE,
+ DELETED,
+ ARCHIVED,
+ PENDING
+ }
+ enum ReportTaxTypeEnum {
+ AVALARA,
+ BASEXCLUDED,
+ CAPITALSALESOUTPUT,
+ CAPITALEXPENSESINPUT,
+ ECOUTPUT,
+ ECOUTPUTSERVICES,
+ ECINPUT,
+ ECACQUISITIONS,
+ EXEMPTEXPENSES,
+ EXEMPTINPUT,
+ EXEMPTOUTPUT,
+ GSTONIMPORTS,
+ INPUT,
+ INPUTTAXED,
+ MOSSSALES,
+ NONE,
+ NONEOUTPUT,
+ OUTPUT,
+ PURCHASESINPUT,
+ SALESOUTPUT,
+ EXEMPTCAPITAL,
+ EXEMPTEXPORT,
+ CAPITALEXINPUT,
+ GSTONCAPIMPORTS,
+ REVERSECHARGES,
+ PAYMENTS,
+ INVOICE,
+ CASH,
+ ACCRUAL,
+ FLATRATECASH,
+ FLATRATEACCRUAL,
+ ACCRUALS
+ }
+}
diff --git a/dist/gen/model/accounting/taxRate.js b/dist/gen/model/accounting/taxRate.js
new file mode 100644
index 000000000..b7dde3c7e
--- /dev/null
+++ b/dist/gen/model/accounting/taxRate.js
@@ -0,0 +1,116 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class TaxRate {
+ static getAttributeTypeMap() {
+ return TaxRate.attributeTypeMap;
+ }
+}
+exports.TaxRate = TaxRate;
+TaxRate.discriminator = undefined;
+TaxRate.attributeTypeMap = [
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "taxType",
+ "baseName": "TaxType",
+ "type": "string"
+ },
+ {
+ "name": "taxComponents",
+ "baseName": "TaxComponents",
+ "type": "Array"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "TaxRate.StatusEnum"
+ },
+ {
+ "name": "reportTaxType",
+ "baseName": "ReportTaxType",
+ "type": "TaxRate.ReportTaxTypeEnum"
+ },
+ {
+ "name": "canApplyToAssets",
+ "baseName": "CanApplyToAssets",
+ "type": "boolean"
+ },
+ {
+ "name": "canApplyToEquity",
+ "baseName": "CanApplyToEquity",
+ "type": "boolean"
+ },
+ {
+ "name": "canApplyToExpenses",
+ "baseName": "CanApplyToExpenses",
+ "type": "boolean"
+ },
+ {
+ "name": "canApplyToLiabilities",
+ "baseName": "CanApplyToLiabilities",
+ "type": "boolean"
+ },
+ {
+ "name": "canApplyToRevenue",
+ "baseName": "CanApplyToRevenue",
+ "type": "boolean"
+ },
+ {
+ "name": "displayTaxRate",
+ "baseName": "DisplayTaxRate",
+ "type": "number"
+ },
+ {
+ "name": "effectiveRate",
+ "baseName": "EffectiveRate",
+ "type": "number"
+ }
+];
+(function (TaxRate) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["ACTIVE"] = 'ACTIVE'] = "ACTIVE";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ StatusEnum[StatusEnum["ARCHIVED"] = 'ARCHIVED'] = "ARCHIVED";
+ StatusEnum[StatusEnum["PENDING"] = 'PENDING'] = "PENDING";
+ })(StatusEnum = TaxRate.StatusEnum || (TaxRate.StatusEnum = {}));
+ let ReportTaxTypeEnum;
+ (function (ReportTaxTypeEnum) {
+ ReportTaxTypeEnum[ReportTaxTypeEnum["AVALARA"] = 'AVALARA'] = "AVALARA";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["BASEXCLUDED"] = 'BASEXCLUDED'] = "BASEXCLUDED";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["CAPITALSALESOUTPUT"] = 'CAPITALSALESOUTPUT'] = "CAPITALSALESOUTPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["CAPITALEXPENSESINPUT"] = 'CAPITALEXPENSESINPUT'] = "CAPITALEXPENSESINPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["ECOUTPUT"] = 'ECOUTPUT'] = "ECOUTPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["ECOUTPUTSERVICES"] = 'ECOUTPUTSERVICES'] = "ECOUTPUTSERVICES";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["ECINPUT"] = 'ECINPUT'] = "ECINPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["ECACQUISITIONS"] = 'ECACQUISITIONS'] = "ECACQUISITIONS";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["EXEMPTEXPENSES"] = 'EXEMPTEXPENSES'] = "EXEMPTEXPENSES";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["EXEMPTINPUT"] = 'EXEMPTINPUT'] = "EXEMPTINPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["EXEMPTOUTPUT"] = 'EXEMPTOUTPUT'] = "EXEMPTOUTPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["GSTONIMPORTS"] = 'GSTONIMPORTS'] = "GSTONIMPORTS";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["INPUT"] = 'INPUT'] = "INPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["INPUTTAXED"] = 'INPUTTAXED'] = "INPUTTAXED";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["MOSSSALES"] = 'MOSSSALES'] = "MOSSSALES";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["NONE"] = 'NONE'] = "NONE";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["NONEOUTPUT"] = 'NONEOUTPUT'] = "NONEOUTPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["OUTPUT"] = 'OUTPUT'] = "OUTPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["PURCHASESINPUT"] = 'PURCHASESINPUT'] = "PURCHASESINPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["SALESOUTPUT"] = 'SALESOUTPUT'] = "SALESOUTPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["EXEMPTCAPITAL"] = 'EXEMPTCAPITAL'] = "EXEMPTCAPITAL";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["EXEMPTEXPORT"] = 'EXEMPTEXPORT'] = "EXEMPTEXPORT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["CAPITALEXINPUT"] = 'CAPITALEXINPUT'] = "CAPITALEXINPUT";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["GSTONCAPIMPORTS"] = 'GSTONCAPIMPORTS'] = "GSTONCAPIMPORTS";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["REVERSECHARGES"] = 'REVERSECHARGES'] = "REVERSECHARGES";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["PAYMENTS"] = 'PAYMENTS'] = "PAYMENTS";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["INVOICE"] = 'INVOICE'] = "INVOICE";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["CASH"] = 'CASH'] = "CASH";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["ACCRUAL"] = 'ACCRUAL'] = "ACCRUAL";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["FLATRATECASH"] = 'FLATRATECASH'] = "FLATRATECASH";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["FLATRATEACCRUAL"] = 'FLATRATEACCRUAL'] = "FLATRATEACCRUAL";
+ ReportTaxTypeEnum[ReportTaxTypeEnum["ACCRUALS"] = 'ACCRUALS'] = "ACCRUALS";
+ })(ReportTaxTypeEnum = TaxRate.ReportTaxTypeEnum || (TaxRate.ReportTaxTypeEnum = {}));
+})(TaxRate = exports.TaxRate || (exports.TaxRate = {}));
+//# sourceMappingURL=taxRate.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/taxRate.js.map b/dist/gen/model/accounting/taxRate.js.map
new file mode 100644
index 000000000..4f0831477
--- /dev/null
+++ b/dist/gen/model/accounting/taxRate.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"taxRate.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/taxRate.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/taxRates.d.ts b/dist/gen/model/accounting/taxRates.d.ts
new file mode 100644
index 000000000..1062ffc7b
--- /dev/null
+++ b/dist/gen/model/accounting/taxRates.d.ts
@@ -0,0 +1,15 @@
+import { TaxRate } from './taxRate';
+export declare class TaxRates {
+ 'taxRates'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/taxRates.js b/dist/gen/model/accounting/taxRates.js
new file mode 100644
index 000000000..9a15f8437
--- /dev/null
+++ b/dist/gen/model/accounting/taxRates.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class TaxRates {
+ static getAttributeTypeMap() {
+ return TaxRates.attributeTypeMap;
+ }
+}
+exports.TaxRates = TaxRates;
+TaxRates.discriminator = undefined;
+TaxRates.attributeTypeMap = [
+ {
+ "name": "taxRates",
+ "baseName": "TaxRates",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=taxRates.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/taxRates.js.map b/dist/gen/model/accounting/taxRates.js.map
new file mode 100644
index 000000000..32f57cf35
--- /dev/null
+++ b/dist/gen/model/accounting/taxRates.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"taxRates.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/taxRates.ts"],"names":[],"mappings":";;AAcA,MAAa,QAAQ;IAYjB,MAAM,CAAC,mBAAmB;QACtB,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACrC,CAAC;;AAdL,4BAeC;AAZU,sBAAa,GAAuB,SAAS,CAAC;AAE9C,yBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,gBAAgB;KAC3B;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/taxType.d.ts b/dist/gen/model/accounting/taxType.d.ts
new file mode 100644
index 000000000..a3bef0f9c
--- /dev/null
+++ b/dist/gen/model/accounting/taxType.d.ts
@@ -0,0 +1,54 @@
+export declare enum TaxType {
+ OUTPUT,
+ INPUT,
+ CAPEXINPUT,
+ EXEMPTEXPORT,
+ EXEMPTEXPENSES,
+ EXEMPTCAPITAL,
+ EXEMPTOUTPUT,
+ INPUTTAXED,
+ BASEXCLUDED,
+ GSTONCAPIMPORTS,
+ GSTONIMPORTS,
+ NONE,
+ INPUT2,
+ ZERORATED,
+ OUTPUT2,
+ CAPEXINPUT2,
+ CAPEXOUTPUT,
+ CAPEXOUTPUT2,
+ CAPEXSRINPUT,
+ CAPEXSROUTPUT,
+ ECACQUISITIONS,
+ ECZRINPUT,
+ ECZROUTPUT,
+ ECZROUTPUTSERVICES,
+ EXEMPTINPUT,
+ REVERSECHARGES,
+ RRINPUT,
+ RROUTPUT,
+ SRINPUT,
+ SROUTPUT,
+ ZERORATEDINPUT,
+ ZERORATEDOUTPUT,
+ BLINPUT,
+ DSOUTPUT,
+ EPINPUT,
+ ES33OUTPUT,
+ ESN33OUTPUT,
+ IGDSINPUT2,
+ IMINPUT2,
+ MEINPUT,
+ NRINPUT,
+ OPINPUT,
+ OSOUTPUT,
+ TXESSINPUT,
+ TXN33INPUT,
+ TXPETINPUT,
+ TXREINPUT,
+ INPUT3,
+ INPUT4,
+ OUTPUT3,
+ OUTPUT4,
+ SROUTPUT2
+}
diff --git a/dist/gen/model/accounting/taxType.js b/dist/gen/model/accounting/taxType.js
new file mode 100644
index 000000000..0f157fafe
--- /dev/null
+++ b/dist/gen/model/accounting/taxType.js
@@ -0,0 +1,58 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var TaxType;
+(function (TaxType) {
+ TaxType[TaxType["OUTPUT"] = 'OUTPUT'] = "OUTPUT";
+ TaxType[TaxType["INPUT"] = 'INPUT'] = "INPUT";
+ TaxType[TaxType["CAPEXINPUT"] = 'CAPEXINPUT'] = "CAPEXINPUT";
+ TaxType[TaxType["EXEMPTEXPORT"] = 'EXEMPTEXPORT'] = "EXEMPTEXPORT";
+ TaxType[TaxType["EXEMPTEXPENSES"] = 'EXEMPTEXPENSES'] = "EXEMPTEXPENSES";
+ TaxType[TaxType["EXEMPTCAPITAL"] = 'EXEMPTCAPITAL'] = "EXEMPTCAPITAL";
+ TaxType[TaxType["EXEMPTOUTPUT"] = 'EXEMPTOUTPUT'] = "EXEMPTOUTPUT";
+ TaxType[TaxType["INPUTTAXED"] = 'INPUTTAXED'] = "INPUTTAXED";
+ TaxType[TaxType["BASEXCLUDED"] = 'BASEXCLUDED'] = "BASEXCLUDED";
+ TaxType[TaxType["GSTONCAPIMPORTS"] = 'GSTONCAPIMPORTS'] = "GSTONCAPIMPORTS";
+ TaxType[TaxType["GSTONIMPORTS"] = 'GSTONIMPORTS'] = "GSTONIMPORTS";
+ TaxType[TaxType["NONE"] = 'NONE'] = "NONE";
+ TaxType[TaxType["INPUT2"] = 'INPUT2'] = "INPUT2";
+ TaxType[TaxType["ZERORATED"] = 'ZERORATED'] = "ZERORATED";
+ TaxType[TaxType["OUTPUT2"] = 'OUTPUT2'] = "OUTPUT2";
+ TaxType[TaxType["CAPEXINPUT2"] = 'CAPEXINPUT2'] = "CAPEXINPUT2";
+ TaxType[TaxType["CAPEXOUTPUT"] = 'CAPEXOUTPUT'] = "CAPEXOUTPUT";
+ TaxType[TaxType["CAPEXOUTPUT2"] = 'CAPEXOUTPUT2'] = "CAPEXOUTPUT2";
+ TaxType[TaxType["CAPEXSRINPUT"] = 'CAPEXSRINPUT'] = "CAPEXSRINPUT";
+ TaxType[TaxType["CAPEXSROUTPUT"] = 'CAPEXSROUTPUT'] = "CAPEXSROUTPUT";
+ TaxType[TaxType["ECACQUISITIONS"] = 'ECACQUISITIONS'] = "ECACQUISITIONS";
+ TaxType[TaxType["ECZRINPUT"] = 'ECZRINPUT'] = "ECZRINPUT";
+ TaxType[TaxType["ECZROUTPUT"] = 'ECZROUTPUT'] = "ECZROUTPUT";
+ TaxType[TaxType["ECZROUTPUTSERVICES"] = 'ECZROUTPUTSERVICES'] = "ECZROUTPUTSERVICES";
+ TaxType[TaxType["EXEMPTINPUT"] = 'EXEMPTINPUT'] = "EXEMPTINPUT";
+ TaxType[TaxType["REVERSECHARGES"] = 'REVERSECHARGES'] = "REVERSECHARGES";
+ TaxType[TaxType["RRINPUT"] = 'RRINPUT'] = "RRINPUT";
+ TaxType[TaxType["RROUTPUT"] = 'RROUTPUT'] = "RROUTPUT";
+ TaxType[TaxType["SRINPUT"] = 'SRINPUT'] = "SRINPUT";
+ TaxType[TaxType["SROUTPUT"] = 'SROUTPUT'] = "SROUTPUT";
+ TaxType[TaxType["ZERORATEDINPUT"] = 'ZERORATEDINPUT'] = "ZERORATEDINPUT";
+ TaxType[TaxType["ZERORATEDOUTPUT"] = 'ZERORATEDOUTPUT'] = "ZERORATEDOUTPUT";
+ TaxType[TaxType["BLINPUT"] = 'BLINPUT'] = "BLINPUT";
+ TaxType[TaxType["DSOUTPUT"] = 'DSOUTPUT'] = "DSOUTPUT";
+ TaxType[TaxType["EPINPUT"] = 'EPINPUT'] = "EPINPUT";
+ TaxType[TaxType["ES33OUTPUT"] = 'ES33OUTPUT'] = "ES33OUTPUT";
+ TaxType[TaxType["ESN33OUTPUT"] = 'ESN33OUTPUT'] = "ESN33OUTPUT";
+ TaxType[TaxType["IGDSINPUT2"] = 'IGDSINPUT2'] = "IGDSINPUT2";
+ TaxType[TaxType["IMINPUT2"] = 'IMINPUT2'] = "IMINPUT2";
+ TaxType[TaxType["MEINPUT"] = 'MEINPUT'] = "MEINPUT";
+ TaxType[TaxType["NRINPUT"] = 'NRINPUT'] = "NRINPUT";
+ TaxType[TaxType["OPINPUT"] = 'OPINPUT'] = "OPINPUT";
+ TaxType[TaxType["OSOUTPUT"] = 'OSOUTPUT'] = "OSOUTPUT";
+ TaxType[TaxType["TXESSINPUT"] = 'TXESSINPUT'] = "TXESSINPUT";
+ TaxType[TaxType["TXN33INPUT"] = 'TXN33INPUT'] = "TXN33INPUT";
+ TaxType[TaxType["TXPETINPUT"] = 'TXPETINPUT'] = "TXPETINPUT";
+ TaxType[TaxType["TXREINPUT"] = 'TXREINPUT'] = "TXREINPUT";
+ TaxType[TaxType["INPUT3"] = 'INPUT3'] = "INPUT3";
+ TaxType[TaxType["INPUT4"] = 'INPUT4'] = "INPUT4";
+ TaxType[TaxType["OUTPUT3"] = 'OUTPUT3'] = "OUTPUT3";
+ TaxType[TaxType["OUTPUT4"] = 'OUTPUT4'] = "OUTPUT4";
+ TaxType[TaxType["SROUTPUT2"] = 'SROUTPUT2'] = "SROUTPUT2";
+})(TaxType = exports.TaxType || (exports.TaxType = {}));
+//# sourceMappingURL=taxType.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/taxType.js.map b/dist/gen/model/accounting/taxType.js.map
new file mode 100644
index 000000000..e60b6404c
--- /dev/null
+++ b/dist/gen/model/accounting/taxType.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"taxType.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/taxType.ts"],"names":[],"mappings":";;AAgBA,IAAY,OAqDX;AArDD,WAAY,OAAO;IACf,4BAAe,QAAQ,YAAA,CAAA;IACvB,2BAAc,OAAO,WAAA,CAAA;IACrB,gCAAmB,YAAY,gBAAA,CAAA;IAC/B,kCAAqB,cAAc,kBAAA,CAAA;IACnC,oCAAuB,gBAAgB,oBAAA,CAAA;IACvC,mCAAsB,eAAe,mBAAA,CAAA;IACrC,kCAAqB,cAAc,kBAAA,CAAA;IACnC,gCAAmB,YAAY,gBAAA,CAAA;IAC/B,iCAAoB,aAAa,iBAAA,CAAA;IACjC,qCAAwB,iBAAiB,qBAAA,CAAA;IACzC,kCAAqB,cAAc,kBAAA,CAAA;IACnC,0BAAa,MAAM,UAAA,CAAA;IACnB,4BAAe,QAAQ,YAAA,CAAA;IACvB,+BAAkB,WAAW,eAAA,CAAA;IAC7B,6BAAgB,SAAS,aAAA,CAAA;IACzB,iCAAoB,aAAa,iBAAA,CAAA;IACjC,iCAAoB,aAAa,iBAAA,CAAA;IACjC,kCAAqB,cAAc,kBAAA,CAAA;IACnC,kCAAqB,cAAc,kBAAA,CAAA;IACnC,mCAAsB,eAAe,mBAAA,CAAA;IACrC,oCAAuB,gBAAgB,oBAAA,CAAA;IACvC,+BAAkB,WAAW,eAAA,CAAA;IAC7B,gCAAmB,YAAY,gBAAA,CAAA;IAC/B,wCAA2B,oBAAoB,wBAAA,CAAA;IAC/C,iCAAoB,aAAa,iBAAA,CAAA;IACjC,oCAAuB,gBAAgB,oBAAA,CAAA;IACvC,6BAAgB,SAAS,aAAA,CAAA;IACzB,8BAAiB,UAAU,cAAA,CAAA;IAC3B,6BAAgB,SAAS,aAAA,CAAA;IACzB,8BAAiB,UAAU,cAAA,CAAA;IAC3B,oCAAuB,gBAAgB,oBAAA,CAAA;IACvC,qCAAwB,iBAAiB,qBAAA,CAAA;IACzC,6BAAgB,SAAS,aAAA,CAAA;IACzB,8BAAiB,UAAU,cAAA,CAAA;IAC3B,6BAAgB,SAAS,aAAA,CAAA;IACzB,gCAAmB,YAAY,gBAAA,CAAA;IAC/B,iCAAoB,aAAa,iBAAA,CAAA;IACjC,gCAAmB,YAAY,gBAAA,CAAA;IAC/B,8BAAiB,UAAU,cAAA,CAAA;IAC3B,6BAAgB,SAAS,aAAA,CAAA;IACzB,6BAAgB,SAAS,aAAA,CAAA;IACzB,6BAAgB,SAAS,aAAA,CAAA;IACzB,8BAAiB,UAAU,cAAA,CAAA;IAC3B,gCAAmB,YAAY,gBAAA,CAAA;IAC/B,gCAAmB,YAAY,gBAAA,CAAA;IAC/B,gCAAmB,YAAY,gBAAA,CAAA;IAC/B,+BAAkB,WAAW,eAAA,CAAA;IAC7B,4BAAe,QAAQ,YAAA,CAAA;IACvB,4BAAe,QAAQ,YAAA,CAAA;IACvB,6BAAgB,SAAS,aAAA,CAAA;IACzB,6BAAgB,SAAS,aAAA,CAAA;IACzB,+BAAkB,WAAW,eAAA,CAAA;AACjC,CAAC,EArDW,OAAO,GAAP,eAAO,KAAP,eAAO,QAqDlB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/tenNinteyNineContact.d.ts b/dist/gen/model/accounting/tenNinteyNineContact.d.ts
new file mode 100644
index 000000000..2e25ebf6a
--- /dev/null
+++ b/dist/gen/model/accounting/tenNinteyNineContact.d.ts
@@ -0,0 +1,35 @@
+export declare class TenNinteyNineContact {
+ 'box1'?: number;
+ 'box2'?: number;
+ 'box3'?: number;
+ 'box4'?: number;
+ 'box5'?: number;
+ 'box6'?: number;
+ 'box7'?: number;
+ 'box8'?: number;
+ 'box9'?: number;
+ 'box10'?: number;
+ 'box11'?: number;
+ 'box13'?: number;
+ 'box14'?: number;
+ 'name'?: string;
+ 'federalTaxIDType'?: string;
+ 'city'?: string;
+ 'zip'?: string;
+ 'state'?: string;
+ 'email'?: string;
+ 'streetAddress'?: string;
+ 'taxID'?: string;
+ 'contactId'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/tenNinteyNineContact.js b/dist/gen/model/accounting/tenNinteyNineContact.js
new file mode 100644
index 000000000..49ed0b83a
--- /dev/null
+++ b/dist/gen/model/accounting/tenNinteyNineContact.js
@@ -0,0 +1,122 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class TenNinteyNineContact {
+ static getAttributeTypeMap() {
+ return TenNinteyNineContact.attributeTypeMap;
+ }
+}
+exports.TenNinteyNineContact = TenNinteyNineContact;
+TenNinteyNineContact.discriminator = undefined;
+TenNinteyNineContact.attributeTypeMap = [
+ {
+ "name": "box1",
+ "baseName": "Box1",
+ "type": "number"
+ },
+ {
+ "name": "box2",
+ "baseName": "Box2",
+ "type": "number"
+ },
+ {
+ "name": "box3",
+ "baseName": "Box3",
+ "type": "number"
+ },
+ {
+ "name": "box4",
+ "baseName": "Box4",
+ "type": "number"
+ },
+ {
+ "name": "box5",
+ "baseName": "Box5",
+ "type": "number"
+ },
+ {
+ "name": "box6",
+ "baseName": "Box6",
+ "type": "number"
+ },
+ {
+ "name": "box7",
+ "baseName": "Box7",
+ "type": "number"
+ },
+ {
+ "name": "box8",
+ "baseName": "Box8",
+ "type": "number"
+ },
+ {
+ "name": "box9",
+ "baseName": "Box9",
+ "type": "number"
+ },
+ {
+ "name": "box10",
+ "baseName": "Box10",
+ "type": "number"
+ },
+ {
+ "name": "box11",
+ "baseName": "Box11",
+ "type": "number"
+ },
+ {
+ "name": "box13",
+ "baseName": "Box13",
+ "type": "number"
+ },
+ {
+ "name": "box14",
+ "baseName": "Box14",
+ "type": "number"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "federalTaxIDType",
+ "baseName": "FederalTaxIDType",
+ "type": "string"
+ },
+ {
+ "name": "city",
+ "baseName": "City",
+ "type": "string"
+ },
+ {
+ "name": "zip",
+ "baseName": "Zip",
+ "type": "string"
+ },
+ {
+ "name": "state",
+ "baseName": "State",
+ "type": "string"
+ },
+ {
+ "name": "email",
+ "baseName": "Email",
+ "type": "string"
+ },
+ {
+ "name": "streetAddress",
+ "baseName": "StreetAddress",
+ "type": "string"
+ },
+ {
+ "name": "taxID",
+ "baseName": "TaxID",
+ "type": "string"
+ },
+ {
+ "name": "contactId",
+ "baseName": "ContactId",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=tenNinteyNineContact.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/tenNinteyNineContact.js.map b/dist/gen/model/accounting/tenNinteyNineContact.js.map
new file mode 100644
index 000000000..e32edf838
--- /dev/null
+++ b/dist/gen/model/accounting/tenNinteyNineContact.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"tenNinteyNineContact.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/tenNinteyNineContact.ts"],"names":[],"mappings":";;AAaA,MAAa,oBAAoB;IA4M7B,MAAM,CAAC,mBAAmB;QACtB,OAAO,oBAAoB,CAAC,gBAAgB,CAAC;IACjD,CAAC;;AA9ML,oDA+MC;AArHU,kCAAa,GAAuB,SAAS,CAAC;AAE9C,qCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/timeZone.d.ts b/dist/gen/model/accounting/timeZone.d.ts
new file mode 100644
index 000000000..849a18a6b
--- /dev/null
+++ b/dist/gen/model/accounting/timeZone.d.ts
@@ -0,0 +1,109 @@
+export declare enum TimeZone {
+ MOROCCOSTANDARDTIME,
+ UTC,
+ GMTSTANDARDTIME,
+ GREENWICHSTANDARDTIME,
+ WEUROPESTANDARDTIME,
+ CENTRALEUROPESTANDARDTIME,
+ ROMANCESTANDARDTIME,
+ CENTRALEUROPEANSTANDARDTIME,
+ WCENTRALAFRICASTANDARDTIME,
+ NAMIBIASTANDARDTIME,
+ JORDANSTANDARDTIME,
+ GTBSTANDARDTIME,
+ MIDDLEEASTSTANDARDTIME,
+ EGYPTSTANDARDTIME,
+ SYRIASTANDARDTIME,
+ EEUROPESTANDARDTIME,
+ SOUTHAFRICASTANDARDTIME,
+ FLESTANDARDTIME,
+ TURKEYSTANDARDTIME,
+ ISRAELSTANDARDTIME,
+ KALININGRADSTANDARDTIME,
+ LIBYASTANDARDTIME,
+ ARABICSTANDARDTIME,
+ ARABSTANDARDTIME,
+ BELARUSSTANDARDTIME,
+ RUSSIANSTANDARDTIME,
+ EAFRICASTANDARDTIME,
+ IRANSTANDARDTIME,
+ ARABIANSTANDARDTIME,
+ AZERBAIJANSTANDARDTIME,
+ RUSSIATIMEZONE3,
+ MAURITIUSSTANDARDTIME,
+ GEORGIANSTANDARDTIME,
+ CAUCASUSSTANDARDTIME,
+ AFGHANISTANSTANDARDTIME,
+ WESTASIASTANDARDTIME,
+ EKATERINBURGSTANDARDTIME,
+ PAKISTANSTANDARDTIME,
+ INDIASTANDARDTIME,
+ SRILANKASTANDARDTIME,
+ NEPALSTANDARDTIME,
+ CENTRALASIASTANDARDTIME,
+ BANGLADESHSTANDARDTIME,
+ NCENTRALASIASTANDARDTIME,
+ MYANMARSTANDARDTIME,
+ SEASIASTANDARDTIME,
+ NORTHASIASTANDARDTIME,
+ CHINASTANDARDTIME,
+ NORTHASIAEASTSTANDARDTIME,
+ SINGAPORESTANDARDTIME,
+ WAUSTRALIASTANDARDTIME,
+ TAIPEISTANDARDTIME,
+ ULAANBAATARSTANDARDTIME,
+ TOKYOSTANDARDTIME,
+ KOREASTANDARDTIME,
+ YAKUTSKSTANDARDTIME,
+ CENAUSTRALIASTANDARDTIME,
+ AUSCENTRALSTANDARDTIME,
+ EAUSTRALIASTANDARDTIME,
+ AUSEASTERNSTANDARDTIME,
+ WESTPACIFICSTANDARDTIME,
+ TASMANIASTANDARDTIME,
+ MAGADANSTANDARDTIME,
+ VLADIVOSTOKSTANDARDTIME,
+ RUSSIATIMEZONE10,
+ CENTRALPACIFICSTANDARDTIME,
+ RUSSIATIMEZONE11,
+ NEWZEALANDSTANDARDTIME,
+ UTC12,
+ FIJISTANDARDTIME,
+ KAMCHATKASTANDARDTIME,
+ TONGASTANDARDTIME,
+ SAMOASTANDARDTIME,
+ LINEISLANDSSTANDARDTIME,
+ AZORESSTANDARDTIME,
+ CAPEVERDESTANDARDTIME,
+ UTC02,
+ MIDATLANTICSTANDARDTIME,
+ ESOUTHAMERICASTANDARDTIME,
+ ARGENTINASTANDARDTIME,
+ SAEASTERNSTANDARDTIME,
+ GREENLANDSTANDARDTIME,
+ MONTEVIDEOSTANDARDTIME,
+ BAHIASTANDARDTIME,
+ NEWFOUNDLANDSTANDARDTIME,
+ PARAGUAYSTANDARDTIME,
+ ATLANTICSTANDARDTIME,
+ CENTRALBRAZILIANSTANDARDTIME,
+ SAWESTERNSTANDARDTIME,
+ PACIFICSASTANDARDTIME,
+ VENEZUELASTANDARDTIME,
+ SAPACIFICSTANDARDTIME,
+ EASTERNSTANDARDTIME,
+ USEASTERNSTANDARDTIME,
+ CENTRALAMERICASTANDARDTIME,
+ CENTRALSTANDARDTIME,
+ CENTRALSTANDARDTIMEMEXICO,
+ CANADACENTRALSTANDARDTIME,
+ USMOUNTAINSTANDARDTIME,
+ MOUNTAINSTANDARDTIMEMEXICO,
+ MOUNTAINSTANDARDTIME,
+ PACIFICSTANDARDTIMEMEXICO,
+ PACIFICSTANDARDTIME,
+ ALASKANSTANDARDTIME,
+ HAWAIIANSTANDARDTIME,
+ UTC11,
+ DATELINESTANDARDTIME
+}
diff --git a/dist/gen/model/accounting/timeZone.js b/dist/gen/model/accounting/timeZone.js
new file mode 100644
index 000000000..2144f66a2
--- /dev/null
+++ b/dist/gen/model/accounting/timeZone.js
@@ -0,0 +1,113 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var TimeZone;
+(function (TimeZone) {
+ TimeZone[TimeZone["MOROCCOSTANDARDTIME"] = 'MOROCCOSTANDARDTIME'] = "MOROCCOSTANDARDTIME";
+ TimeZone[TimeZone["UTC"] = 'UTC'] = "UTC";
+ TimeZone[TimeZone["GMTSTANDARDTIME"] = 'GMTSTANDARDTIME'] = "GMTSTANDARDTIME";
+ TimeZone[TimeZone["GREENWICHSTANDARDTIME"] = 'GREENWICHSTANDARDTIME'] = "GREENWICHSTANDARDTIME";
+ TimeZone[TimeZone["WEUROPESTANDARDTIME"] = 'WEUROPESTANDARDTIME'] = "WEUROPESTANDARDTIME";
+ TimeZone[TimeZone["CENTRALEUROPESTANDARDTIME"] = 'CENTRALEUROPESTANDARDTIME'] = "CENTRALEUROPESTANDARDTIME";
+ TimeZone[TimeZone["ROMANCESTANDARDTIME"] = 'ROMANCESTANDARDTIME'] = "ROMANCESTANDARDTIME";
+ TimeZone[TimeZone["CENTRALEUROPEANSTANDARDTIME"] = 'CENTRALEUROPEANSTANDARDTIME'] = "CENTRALEUROPEANSTANDARDTIME";
+ TimeZone[TimeZone["WCENTRALAFRICASTANDARDTIME"] = 'WCENTRALAFRICASTANDARDTIME'] = "WCENTRALAFRICASTANDARDTIME";
+ TimeZone[TimeZone["NAMIBIASTANDARDTIME"] = 'NAMIBIASTANDARDTIME'] = "NAMIBIASTANDARDTIME";
+ TimeZone[TimeZone["JORDANSTANDARDTIME"] = 'JORDANSTANDARDTIME'] = "JORDANSTANDARDTIME";
+ TimeZone[TimeZone["GTBSTANDARDTIME"] = 'GTBSTANDARDTIME'] = "GTBSTANDARDTIME";
+ TimeZone[TimeZone["MIDDLEEASTSTANDARDTIME"] = 'MIDDLEEASTSTANDARDTIME'] = "MIDDLEEASTSTANDARDTIME";
+ TimeZone[TimeZone["EGYPTSTANDARDTIME"] = 'EGYPTSTANDARDTIME'] = "EGYPTSTANDARDTIME";
+ TimeZone[TimeZone["SYRIASTANDARDTIME"] = 'SYRIASTANDARDTIME'] = "SYRIASTANDARDTIME";
+ TimeZone[TimeZone["EEUROPESTANDARDTIME"] = 'EEUROPESTANDARDTIME'] = "EEUROPESTANDARDTIME";
+ TimeZone[TimeZone["SOUTHAFRICASTANDARDTIME"] = 'SOUTHAFRICASTANDARDTIME'] = "SOUTHAFRICASTANDARDTIME";
+ TimeZone[TimeZone["FLESTANDARDTIME"] = 'FLESTANDARDTIME'] = "FLESTANDARDTIME";
+ TimeZone[TimeZone["TURKEYSTANDARDTIME"] = 'TURKEYSTANDARDTIME'] = "TURKEYSTANDARDTIME";
+ TimeZone[TimeZone["ISRAELSTANDARDTIME"] = 'ISRAELSTANDARDTIME'] = "ISRAELSTANDARDTIME";
+ TimeZone[TimeZone["KALININGRADSTANDARDTIME"] = 'KALININGRADSTANDARDTIME'] = "KALININGRADSTANDARDTIME";
+ TimeZone[TimeZone["LIBYASTANDARDTIME"] = 'LIBYASTANDARDTIME'] = "LIBYASTANDARDTIME";
+ TimeZone[TimeZone["ARABICSTANDARDTIME"] = 'ARABICSTANDARDTIME'] = "ARABICSTANDARDTIME";
+ TimeZone[TimeZone["ARABSTANDARDTIME"] = 'ARABSTANDARDTIME'] = "ARABSTANDARDTIME";
+ TimeZone[TimeZone["BELARUSSTANDARDTIME"] = 'BELARUSSTANDARDTIME'] = "BELARUSSTANDARDTIME";
+ TimeZone[TimeZone["RUSSIANSTANDARDTIME"] = 'RUSSIANSTANDARDTIME'] = "RUSSIANSTANDARDTIME";
+ TimeZone[TimeZone["EAFRICASTANDARDTIME"] = 'EAFRICASTANDARDTIME'] = "EAFRICASTANDARDTIME";
+ TimeZone[TimeZone["IRANSTANDARDTIME"] = 'IRANSTANDARDTIME'] = "IRANSTANDARDTIME";
+ TimeZone[TimeZone["ARABIANSTANDARDTIME"] = 'ARABIANSTANDARDTIME'] = "ARABIANSTANDARDTIME";
+ TimeZone[TimeZone["AZERBAIJANSTANDARDTIME"] = 'AZERBAIJANSTANDARDTIME'] = "AZERBAIJANSTANDARDTIME";
+ TimeZone[TimeZone["RUSSIATIMEZONE3"] = 'RUSSIATIMEZONE3'] = "RUSSIATIMEZONE3";
+ TimeZone[TimeZone["MAURITIUSSTANDARDTIME"] = 'MAURITIUSSTANDARDTIME'] = "MAURITIUSSTANDARDTIME";
+ TimeZone[TimeZone["GEORGIANSTANDARDTIME"] = 'GEORGIANSTANDARDTIME'] = "GEORGIANSTANDARDTIME";
+ TimeZone[TimeZone["CAUCASUSSTANDARDTIME"] = 'CAUCASUSSTANDARDTIME'] = "CAUCASUSSTANDARDTIME";
+ TimeZone[TimeZone["AFGHANISTANSTANDARDTIME"] = 'AFGHANISTANSTANDARDTIME'] = "AFGHANISTANSTANDARDTIME";
+ TimeZone[TimeZone["WESTASIASTANDARDTIME"] = 'WESTASIASTANDARDTIME'] = "WESTASIASTANDARDTIME";
+ TimeZone[TimeZone["EKATERINBURGSTANDARDTIME"] = 'EKATERINBURGSTANDARDTIME'] = "EKATERINBURGSTANDARDTIME";
+ TimeZone[TimeZone["PAKISTANSTANDARDTIME"] = 'PAKISTANSTANDARDTIME'] = "PAKISTANSTANDARDTIME";
+ TimeZone[TimeZone["INDIASTANDARDTIME"] = 'INDIASTANDARDTIME'] = "INDIASTANDARDTIME";
+ TimeZone[TimeZone["SRILANKASTANDARDTIME"] = 'SRILANKASTANDARDTIME'] = "SRILANKASTANDARDTIME";
+ TimeZone[TimeZone["NEPALSTANDARDTIME"] = 'NEPALSTANDARDTIME'] = "NEPALSTANDARDTIME";
+ TimeZone[TimeZone["CENTRALASIASTANDARDTIME"] = 'CENTRALASIASTANDARDTIME'] = "CENTRALASIASTANDARDTIME";
+ TimeZone[TimeZone["BANGLADESHSTANDARDTIME"] = 'BANGLADESHSTANDARDTIME'] = "BANGLADESHSTANDARDTIME";
+ TimeZone[TimeZone["NCENTRALASIASTANDARDTIME"] = 'NCENTRALASIASTANDARDTIME'] = "NCENTRALASIASTANDARDTIME";
+ TimeZone[TimeZone["MYANMARSTANDARDTIME"] = 'MYANMARSTANDARDTIME'] = "MYANMARSTANDARDTIME";
+ TimeZone[TimeZone["SEASIASTANDARDTIME"] = 'SEASIASTANDARDTIME'] = "SEASIASTANDARDTIME";
+ TimeZone[TimeZone["NORTHASIASTANDARDTIME"] = 'NORTHASIASTANDARDTIME'] = "NORTHASIASTANDARDTIME";
+ TimeZone[TimeZone["CHINASTANDARDTIME"] = 'CHINASTANDARDTIME'] = "CHINASTANDARDTIME";
+ TimeZone[TimeZone["NORTHASIAEASTSTANDARDTIME"] = 'NORTHASIAEASTSTANDARDTIME'] = "NORTHASIAEASTSTANDARDTIME";
+ TimeZone[TimeZone["SINGAPORESTANDARDTIME"] = 'SINGAPORESTANDARDTIME'] = "SINGAPORESTANDARDTIME";
+ TimeZone[TimeZone["WAUSTRALIASTANDARDTIME"] = 'WAUSTRALIASTANDARDTIME'] = "WAUSTRALIASTANDARDTIME";
+ TimeZone[TimeZone["TAIPEISTANDARDTIME"] = 'TAIPEISTANDARDTIME'] = "TAIPEISTANDARDTIME";
+ TimeZone[TimeZone["ULAANBAATARSTANDARDTIME"] = 'ULAANBAATARSTANDARDTIME'] = "ULAANBAATARSTANDARDTIME";
+ TimeZone[TimeZone["TOKYOSTANDARDTIME"] = 'TOKYOSTANDARDTIME'] = "TOKYOSTANDARDTIME";
+ TimeZone[TimeZone["KOREASTANDARDTIME"] = 'KOREASTANDARDTIME'] = "KOREASTANDARDTIME";
+ TimeZone[TimeZone["YAKUTSKSTANDARDTIME"] = 'YAKUTSKSTANDARDTIME'] = "YAKUTSKSTANDARDTIME";
+ TimeZone[TimeZone["CENAUSTRALIASTANDARDTIME"] = 'CENAUSTRALIASTANDARDTIME'] = "CENAUSTRALIASTANDARDTIME";
+ TimeZone[TimeZone["AUSCENTRALSTANDARDTIME"] = 'AUSCENTRALSTANDARDTIME'] = "AUSCENTRALSTANDARDTIME";
+ TimeZone[TimeZone["EAUSTRALIASTANDARDTIME"] = 'EAUSTRALIASTANDARDTIME'] = "EAUSTRALIASTANDARDTIME";
+ TimeZone[TimeZone["AUSEASTERNSTANDARDTIME"] = 'AUSEASTERNSTANDARDTIME'] = "AUSEASTERNSTANDARDTIME";
+ TimeZone[TimeZone["WESTPACIFICSTANDARDTIME"] = 'WESTPACIFICSTANDARDTIME'] = "WESTPACIFICSTANDARDTIME";
+ TimeZone[TimeZone["TASMANIASTANDARDTIME"] = 'TASMANIASTANDARDTIME'] = "TASMANIASTANDARDTIME";
+ TimeZone[TimeZone["MAGADANSTANDARDTIME"] = 'MAGADANSTANDARDTIME'] = "MAGADANSTANDARDTIME";
+ TimeZone[TimeZone["VLADIVOSTOKSTANDARDTIME"] = 'VLADIVOSTOKSTANDARDTIME'] = "VLADIVOSTOKSTANDARDTIME";
+ TimeZone[TimeZone["RUSSIATIMEZONE10"] = 'RUSSIATIMEZONE10'] = "RUSSIATIMEZONE10";
+ TimeZone[TimeZone["CENTRALPACIFICSTANDARDTIME"] = 'CENTRALPACIFICSTANDARDTIME'] = "CENTRALPACIFICSTANDARDTIME";
+ TimeZone[TimeZone["RUSSIATIMEZONE11"] = 'RUSSIATIMEZONE11'] = "RUSSIATIMEZONE11";
+ TimeZone[TimeZone["NEWZEALANDSTANDARDTIME"] = 'NEWZEALANDSTANDARDTIME'] = "NEWZEALANDSTANDARDTIME";
+ TimeZone[TimeZone["UTC12"] = 'UTC+12'] = "UTC12";
+ TimeZone[TimeZone["FIJISTANDARDTIME"] = 'FIJISTANDARDTIME'] = "FIJISTANDARDTIME";
+ TimeZone[TimeZone["KAMCHATKASTANDARDTIME"] = 'KAMCHATKASTANDARDTIME'] = "KAMCHATKASTANDARDTIME";
+ TimeZone[TimeZone["TONGASTANDARDTIME"] = 'TONGASTANDARDTIME'] = "TONGASTANDARDTIME";
+ TimeZone[TimeZone["SAMOASTANDARDTIME"] = 'SAMOASTANDARDTIME'] = "SAMOASTANDARDTIME";
+ TimeZone[TimeZone["LINEISLANDSSTANDARDTIME"] = 'LINEISLANDSSTANDARDTIME'] = "LINEISLANDSSTANDARDTIME";
+ TimeZone[TimeZone["AZORESSTANDARDTIME"] = 'AZORESSTANDARDTIME'] = "AZORESSTANDARDTIME";
+ TimeZone[TimeZone["CAPEVERDESTANDARDTIME"] = 'CAPEVERDESTANDARDTIME'] = "CAPEVERDESTANDARDTIME";
+ TimeZone[TimeZone["UTC02"] = 'UTC02'] = "UTC02";
+ TimeZone[TimeZone["MIDATLANTICSTANDARDTIME"] = 'MIDATLANTICSTANDARDTIME'] = "MIDATLANTICSTANDARDTIME";
+ TimeZone[TimeZone["ESOUTHAMERICASTANDARDTIME"] = 'ESOUTHAMERICASTANDARDTIME'] = "ESOUTHAMERICASTANDARDTIME";
+ TimeZone[TimeZone["ARGENTINASTANDARDTIME"] = 'ARGENTINASTANDARDTIME'] = "ARGENTINASTANDARDTIME";
+ TimeZone[TimeZone["SAEASTERNSTANDARDTIME"] = 'SAEASTERNSTANDARDTIME'] = "SAEASTERNSTANDARDTIME";
+ TimeZone[TimeZone["GREENLANDSTANDARDTIME"] = 'GREENLANDSTANDARDTIME'] = "GREENLANDSTANDARDTIME";
+ TimeZone[TimeZone["MONTEVIDEOSTANDARDTIME"] = 'MONTEVIDEOSTANDARDTIME'] = "MONTEVIDEOSTANDARDTIME";
+ TimeZone[TimeZone["BAHIASTANDARDTIME"] = 'BAHIASTANDARDTIME'] = "BAHIASTANDARDTIME";
+ TimeZone[TimeZone["NEWFOUNDLANDSTANDARDTIME"] = 'NEWFOUNDLANDSTANDARDTIME'] = "NEWFOUNDLANDSTANDARDTIME";
+ TimeZone[TimeZone["PARAGUAYSTANDARDTIME"] = 'PARAGUAYSTANDARDTIME'] = "PARAGUAYSTANDARDTIME";
+ TimeZone[TimeZone["ATLANTICSTANDARDTIME"] = 'ATLANTICSTANDARDTIME'] = "ATLANTICSTANDARDTIME";
+ TimeZone[TimeZone["CENTRALBRAZILIANSTANDARDTIME"] = 'CENTRALBRAZILIANSTANDARDTIME'] = "CENTRALBRAZILIANSTANDARDTIME";
+ TimeZone[TimeZone["SAWESTERNSTANDARDTIME"] = 'SAWESTERNSTANDARDTIME'] = "SAWESTERNSTANDARDTIME";
+ TimeZone[TimeZone["PACIFICSASTANDARDTIME"] = 'PACIFICSASTANDARDTIME'] = "PACIFICSASTANDARDTIME";
+ TimeZone[TimeZone["VENEZUELASTANDARDTIME"] = 'VENEZUELASTANDARDTIME'] = "VENEZUELASTANDARDTIME";
+ TimeZone[TimeZone["SAPACIFICSTANDARDTIME"] = 'SAPACIFICSTANDARDTIME'] = "SAPACIFICSTANDARDTIME";
+ TimeZone[TimeZone["EASTERNSTANDARDTIME"] = 'EASTERNSTANDARDTIME'] = "EASTERNSTANDARDTIME";
+ TimeZone[TimeZone["USEASTERNSTANDARDTIME"] = 'USEASTERNSTANDARDTIME'] = "USEASTERNSTANDARDTIME";
+ TimeZone[TimeZone["CENTRALAMERICASTANDARDTIME"] = 'CENTRALAMERICASTANDARDTIME'] = "CENTRALAMERICASTANDARDTIME";
+ TimeZone[TimeZone["CENTRALSTANDARDTIME"] = 'CENTRALSTANDARDTIME'] = "CENTRALSTANDARDTIME";
+ TimeZone[TimeZone["CENTRALSTANDARDTIMEMEXICO"] = 'CENTRALSTANDARDTIME(MEXICO)'] = "CENTRALSTANDARDTIMEMEXICO";
+ TimeZone[TimeZone["CANADACENTRALSTANDARDTIME"] = 'CANADACENTRALSTANDARDTIME'] = "CANADACENTRALSTANDARDTIME";
+ TimeZone[TimeZone["USMOUNTAINSTANDARDTIME"] = 'USMOUNTAINSTANDARDTIME'] = "USMOUNTAINSTANDARDTIME";
+ TimeZone[TimeZone["MOUNTAINSTANDARDTIMEMEXICO"] = 'MOUNTAINSTANDARDTIME(MEXICO)'] = "MOUNTAINSTANDARDTIMEMEXICO";
+ TimeZone[TimeZone["MOUNTAINSTANDARDTIME"] = 'MOUNTAINSTANDARDTIME'] = "MOUNTAINSTANDARDTIME";
+ TimeZone[TimeZone["PACIFICSTANDARDTIMEMEXICO"] = 'PACIFICSTANDARDTIME(MEXICO)'] = "PACIFICSTANDARDTIMEMEXICO";
+ TimeZone[TimeZone["PACIFICSTANDARDTIME"] = 'PACIFICSTANDARDTIME'] = "PACIFICSTANDARDTIME";
+ TimeZone[TimeZone["ALASKANSTANDARDTIME"] = 'ALASKANSTANDARDTIME'] = "ALASKANSTANDARDTIME";
+ TimeZone[TimeZone["HAWAIIANSTANDARDTIME"] = 'HAWAIIANSTANDARDTIME'] = "HAWAIIANSTANDARDTIME";
+ TimeZone[TimeZone["UTC11"] = 'UTC11'] = "UTC11";
+ TimeZone[TimeZone["DATELINESTANDARDTIME"] = 'DATELINESTANDARDTIME'] = "DATELINESTANDARDTIME";
+})(TimeZone = exports.TimeZone || (exports.TimeZone = {}));
+//# sourceMappingURL=timeZone.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/timeZone.js.map b/dist/gen/model/accounting/timeZone.js.map
new file mode 100644
index 000000000..cf1f850be
--- /dev/null
+++ b/dist/gen/model/accounting/timeZone.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"timeZone.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/timeZone.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/trackingCategories.d.ts b/dist/gen/model/accounting/trackingCategories.d.ts
new file mode 100644
index 000000000..93f95f0f7
--- /dev/null
+++ b/dist/gen/model/accounting/trackingCategories.d.ts
@@ -0,0 +1,15 @@
+import { TrackingCategory } from './trackingCategory';
+export declare class TrackingCategories {
+ 'trackingCategories'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/trackingCategories.js b/dist/gen/model/accounting/trackingCategories.js
new file mode 100644
index 000000000..f65725fa8
--- /dev/null
+++ b/dist/gen/model/accounting/trackingCategories.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class TrackingCategories {
+ static getAttributeTypeMap() {
+ return TrackingCategories.attributeTypeMap;
+ }
+}
+exports.TrackingCategories = TrackingCategories;
+TrackingCategories.discriminator = undefined;
+TrackingCategories.attributeTypeMap = [
+ {
+ "name": "trackingCategories",
+ "baseName": "TrackingCategories",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=trackingCategories.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/trackingCategories.js.map b/dist/gen/model/accounting/trackingCategories.js.map
new file mode 100644
index 000000000..2087bf366
--- /dev/null
+++ b/dist/gen/model/accounting/trackingCategories.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"trackingCategories.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/trackingCategories.ts"],"names":[],"mappings":";;AAcA,MAAa,kBAAkB;IAY3B,MAAM,CAAC,mBAAmB;QACtB,OAAO,kBAAkB,CAAC,gBAAgB,CAAC;IAC/C,CAAC;;AAdL,gDAeC;AAZU,gCAAa,GAAuB,SAAS,CAAC;AAE9C,mCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,yBAAyB;KACpC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/trackingCategory.d.ts b/dist/gen/model/accounting/trackingCategory.d.ts
new file mode 100644
index 000000000..5635fae79
--- /dev/null
+++ b/dist/gen/model/accounting/trackingCategory.d.ts
@@ -0,0 +1,27 @@
+import { TrackingOption } from './trackingOption';
+export declare class TrackingCategory {
+ 'trackingCategoryID'?: string;
+ 'trackingOptionID'?: string;
+ 'name'?: string;
+ 'option'?: string;
+ 'status'?: TrackingCategory.StatusEnum;
+ 'options'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace TrackingCategory {
+ enum StatusEnum {
+ ACTIVE,
+ ARCHIVED,
+ DELETED
+ }
+}
diff --git a/dist/gen/model/accounting/trackingCategory.js b/dist/gen/model/accounting/trackingCategory.js
new file mode 100644
index 000000000..b337e8fe6
--- /dev/null
+++ b/dist/gen/model/accounting/trackingCategory.js
@@ -0,0 +1,50 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class TrackingCategory {
+ static getAttributeTypeMap() {
+ return TrackingCategory.attributeTypeMap;
+ }
+}
+exports.TrackingCategory = TrackingCategory;
+TrackingCategory.discriminator = undefined;
+TrackingCategory.attributeTypeMap = [
+ {
+ "name": "trackingCategoryID",
+ "baseName": "TrackingCategoryID",
+ "type": "string"
+ },
+ {
+ "name": "trackingOptionID",
+ "baseName": "TrackingOptionID",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "option",
+ "baseName": "Option",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "TrackingCategory.StatusEnum"
+ },
+ {
+ "name": "options",
+ "baseName": "Options",
+ "type": "Array"
+ }
+];
+(function (TrackingCategory) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["ACTIVE"] = 'ACTIVE'] = "ACTIVE";
+ StatusEnum[StatusEnum["ARCHIVED"] = 'ARCHIVED'] = "ARCHIVED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ })(StatusEnum = TrackingCategory.StatusEnum || (TrackingCategory.StatusEnum = {}));
+})(TrackingCategory = exports.TrackingCategory || (exports.TrackingCategory = {}));
+//# sourceMappingURL=trackingCategory.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/trackingCategory.js.map b/dist/gen/model/accounting/trackingCategory.js.map
new file mode 100644
index 000000000..9344d5e2b
--- /dev/null
+++ b/dist/gen/model/accounting/trackingCategory.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"trackingCategory.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/trackingCategory.ts"],"names":[],"mappings":";;AAcA,MAAa,gBAAgB;IA4DzB,MAAM,CAAC,mBAAmB;QACtB,OAAO,gBAAgB,CAAC,gBAAgB,CAAC;IAC7C,CAAC;;AA9DL,4CA+DC;AArCU,8BAAa,GAAuB,SAAS,CAAC;AAE9C,iCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,6BAA6B;KACxC;IACD;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,uBAAuB;KAClC;CAAK,CAAC;AAOf,WAAiB,gBAAgB;IAC7B,IAAY,UAIX;IAJD,WAAY,UAAU;QAClB,kCAAe,QAAQ,YAAA,CAAA;QACvB,oCAAiB,UAAU,cAAA,CAAA;QAC3B,mCAAgB,SAAS,aAAA,CAAA;IAC7B,CAAC,EAJW,UAAU,GAAV,2BAAU,KAAV,2BAAU,QAIrB;AACL,CAAC,EANgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAMhC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/trackingOption.d.ts b/dist/gen/model/accounting/trackingOption.d.ts
new file mode 100644
index 000000000..ae2112772
--- /dev/null
+++ b/dist/gen/model/accounting/trackingOption.d.ts
@@ -0,0 +1,24 @@
+export declare class TrackingOption {
+ 'trackingOptionID'?: string;
+ 'name'?: string;
+ 'status'?: TrackingOption.StatusEnum;
+ 'trackingCategoryID'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace TrackingOption {
+ enum StatusEnum {
+ ACTIVE,
+ ARCHIVED,
+ DELETED
+ }
+}
diff --git a/dist/gen/model/accounting/trackingOption.js b/dist/gen/model/accounting/trackingOption.js
new file mode 100644
index 000000000..ad3996bfd
--- /dev/null
+++ b/dist/gen/model/accounting/trackingOption.js
@@ -0,0 +1,40 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class TrackingOption {
+ static getAttributeTypeMap() {
+ return TrackingOption.attributeTypeMap;
+ }
+}
+exports.TrackingOption = TrackingOption;
+TrackingOption.discriminator = undefined;
+TrackingOption.attributeTypeMap = [
+ {
+ "name": "trackingOptionID",
+ "baseName": "TrackingOptionID",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "baseName": "Status",
+ "type": "TrackingOption.StatusEnum"
+ },
+ {
+ "name": "trackingCategoryID",
+ "baseName": "TrackingCategoryID",
+ "type": "string"
+ }
+];
+(function (TrackingOption) {
+ let StatusEnum;
+ (function (StatusEnum) {
+ StatusEnum[StatusEnum["ACTIVE"] = 'ACTIVE'] = "ACTIVE";
+ StatusEnum[StatusEnum["ARCHIVED"] = 'ARCHIVED'] = "ARCHIVED";
+ StatusEnum[StatusEnum["DELETED"] = 'DELETED'] = "DELETED";
+ })(StatusEnum = TrackingOption.StatusEnum || (TrackingOption.StatusEnum = {}));
+})(TrackingOption = exports.TrackingOption || (exports.TrackingOption = {}));
+//# sourceMappingURL=trackingOption.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/trackingOption.js.map b/dist/gen/model/accounting/trackingOption.js.map
new file mode 100644
index 000000000..6b8316477
--- /dev/null
+++ b/dist/gen/model/accounting/trackingOption.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"trackingOption.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/trackingOption.ts"],"names":[],"mappings":";;AAaA,MAAa,cAAc;IA0CvB,MAAM,CAAC,mBAAmB;QACtB,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC3C,CAAC;;AA5CL,wCA6CC;AA3BU,4BAAa,GAAuB,SAAS,CAAC;AAE9C,+BAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,2BAA2B;KACtC;IACD;QACI,MAAM,EAAE,oBAAoB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC;AAOf,WAAiB,cAAc;IAC3B,IAAY,UAIX;IAJD,WAAY,UAAU;QAClB,kCAAe,QAAQ,YAAA,CAAA;QACvB,oCAAiB,UAAU,cAAA,CAAA;QAC3B,mCAAgB,SAAS,aAAA,CAAA;IAC7B,CAAC,EAJW,UAAU,GAAV,yBAAU,KAAV,yBAAU,QAIrB;AACL,CAAC,EANgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAM9B"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/trackingOptions.d.ts b/dist/gen/model/accounting/trackingOptions.d.ts
new file mode 100644
index 000000000..a7918b4e4
--- /dev/null
+++ b/dist/gen/model/accounting/trackingOptions.d.ts
@@ -0,0 +1,15 @@
+import { TrackingOption } from './trackingOption';
+export declare class TrackingOptions {
+ 'options'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/trackingOptions.js b/dist/gen/model/accounting/trackingOptions.js
new file mode 100644
index 000000000..816b4f52d
--- /dev/null
+++ b/dist/gen/model/accounting/trackingOptions.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class TrackingOptions {
+ static getAttributeTypeMap() {
+ return TrackingOptions.attributeTypeMap;
+ }
+}
+exports.TrackingOptions = TrackingOptions;
+TrackingOptions.discriminator = undefined;
+TrackingOptions.attributeTypeMap = [
+ {
+ "name": "options",
+ "baseName": "Options",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=trackingOptions.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/trackingOptions.js.map b/dist/gen/model/accounting/trackingOptions.js.map
new file mode 100644
index 000000000..ee80bdb51
--- /dev/null
+++ b/dist/gen/model/accounting/trackingOptions.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"trackingOptions.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/trackingOptions.ts"],"names":[],"mappings":";;AAcA,MAAa,eAAe;IAYxB,MAAM,CAAC,mBAAmB;QACtB,OAAO,eAAe,CAAC,gBAAgB,CAAC;IAC5C,CAAC;;AAdL,0CAeC;AAZU,6BAAa,GAAuB,SAAS,CAAC;AAE9C,gCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,uBAAuB;KAClC;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/user.d.ts b/dist/gen/model/accounting/user.d.ts
new file mode 100644
index 000000000..727b31405
--- /dev/null
+++ b/dist/gen/model/accounting/user.d.ts
@@ -0,0 +1,31 @@
+export declare class User {
+ 'userID'?: string;
+ 'emailAddress'?: string;
+ 'firstName'?: string;
+ 'lastName'?: string;
+ 'updatedDateUTC'?: Date;
+ 'isSubscriber'?: boolean;
+ 'organisationRole'?: User.OrganisationRoleEnum;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
+export declare namespace User {
+ enum OrganisationRoleEnum {
+ READONLY,
+ INVOICEONLY,
+ STANDARD,
+ FINANCIALADVISER,
+ MANAGEDCLIENT,
+ CASHBOOKCLIENT,
+ UNKNOWN
+ }
+}
diff --git a/dist/gen/model/accounting/user.js b/dist/gen/model/accounting/user.js
new file mode 100644
index 000000000..d1f28d017
--- /dev/null
+++ b/dist/gen/model/accounting/user.js
@@ -0,0 +1,59 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class User {
+ static getAttributeTypeMap() {
+ return User.attributeTypeMap;
+ }
+}
+exports.User = User;
+User.discriminator = undefined;
+User.attributeTypeMap = [
+ {
+ "name": "userID",
+ "baseName": "UserID",
+ "type": "string"
+ },
+ {
+ "name": "emailAddress",
+ "baseName": "EmailAddress",
+ "type": "string"
+ },
+ {
+ "name": "firstName",
+ "baseName": "FirstName",
+ "type": "string"
+ },
+ {
+ "name": "lastName",
+ "baseName": "LastName",
+ "type": "string"
+ },
+ {
+ "name": "updatedDateUTC",
+ "baseName": "UpdatedDateUTC",
+ "type": "Date"
+ },
+ {
+ "name": "isSubscriber",
+ "baseName": "IsSubscriber",
+ "type": "boolean"
+ },
+ {
+ "name": "organisationRole",
+ "baseName": "OrganisationRole",
+ "type": "User.OrganisationRoleEnum"
+ }
+];
+(function (User) {
+ let OrganisationRoleEnum;
+ (function (OrganisationRoleEnum) {
+ OrganisationRoleEnum[OrganisationRoleEnum["READONLY"] = 'READONLY'] = "READONLY";
+ OrganisationRoleEnum[OrganisationRoleEnum["INVOICEONLY"] = 'INVOICEONLY'] = "INVOICEONLY";
+ OrganisationRoleEnum[OrganisationRoleEnum["STANDARD"] = 'STANDARD'] = "STANDARD";
+ OrganisationRoleEnum[OrganisationRoleEnum["FINANCIALADVISER"] = 'FINANCIALADVISER'] = "FINANCIALADVISER";
+ OrganisationRoleEnum[OrganisationRoleEnum["MANAGEDCLIENT"] = 'MANAGEDCLIENT'] = "MANAGEDCLIENT";
+ OrganisationRoleEnum[OrganisationRoleEnum["CASHBOOKCLIENT"] = 'CASHBOOKCLIENT'] = "CASHBOOKCLIENT";
+ OrganisationRoleEnum[OrganisationRoleEnum["UNKNOWN"] = 'UNKNOWN'] = "UNKNOWN";
+ })(OrganisationRoleEnum = User.OrganisationRoleEnum || (User.OrganisationRoleEnum = {}));
+})(User = exports.User || (exports.User = {}));
+//# sourceMappingURL=user.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/user.js.map b/dist/gen/model/accounting/user.js.map
new file mode 100644
index 000000000..e025c5868
--- /dev/null
+++ b/dist/gen/model/accounting/user.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/user.ts"],"names":[],"mappings":";;AAaA,MAAa,IAAI;IAqEb,MAAM,CAAC,mBAAmB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;;AAvEL,oBAwEC;AA1CU,kBAAa,GAAuB,SAAS,CAAC;AAE9C,qBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,QAAQ;KACnB;IACD;QACI,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM;KACjB;IACD;QACI,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,SAAS;KACpB;IACD;QACI,MAAM,EAAE,kBAAkB;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,2BAA2B;KACtC;CAAK,CAAC;AAOf,WAAiB,IAAI;IACjB,IAAY,oBAQX;IARD,WAAY,oBAAoB;QAC5B,wDAAiB,UAAU,cAAA,CAAA;QAC3B,2DAAoB,aAAa,iBAAA,CAAA;QACjC,wDAAiB,UAAU,cAAA,CAAA;QAC3B,gEAAyB,kBAAkB,sBAAA,CAAA;QAC3C,6DAAsB,eAAe,mBAAA,CAAA;QACrC,8DAAuB,gBAAgB,oBAAA,CAAA;QACvC,uDAAgB,SAAS,aAAA,CAAA;IAC7B,CAAC,EARW,oBAAoB,GAApB,yBAAoB,KAApB,yBAAoB,QAQ/B;AACL,CAAC,EAVgB,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAUpB"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/users.d.ts b/dist/gen/model/accounting/users.d.ts
new file mode 100644
index 000000000..6cc6d8c83
--- /dev/null
+++ b/dist/gen/model/accounting/users.d.ts
@@ -0,0 +1,15 @@
+import { User } from './user';
+export declare class Users {
+ 'users'?: Array;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/users.js b/dist/gen/model/accounting/users.js
new file mode 100644
index 000000000..085654782
--- /dev/null
+++ b/dist/gen/model/accounting/users.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class Users {
+ static getAttributeTypeMap() {
+ return Users.attributeTypeMap;
+ }
+}
+exports.Users = Users;
+Users.discriminator = undefined;
+Users.attributeTypeMap = [
+ {
+ "name": "users",
+ "baseName": "Users",
+ "type": "Array"
+ }
+];
+//# sourceMappingURL=users.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/users.js.map b/dist/gen/model/accounting/users.js.map
new file mode 100644
index 000000000..cfbc34265
--- /dev/null
+++ b/dist/gen/model/accounting/users.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"users.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/users.ts"],"names":[],"mappings":";;AAcA,MAAa,KAAK;IAYd,MAAM,CAAC,mBAAmB;QACtB,OAAO,KAAK,CAAC,gBAAgB,CAAC;IAClC,CAAC;;AAdL,sBAeC;AAZU,mBAAa,GAAuB,SAAS,CAAC;AAE9C,sBAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,aAAa;KACxB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/gen/model/accounting/validationError.d.ts b/dist/gen/model/accounting/validationError.d.ts
new file mode 100644
index 000000000..4555a4c60
--- /dev/null
+++ b/dist/gen/model/accounting/validationError.d.ts
@@ -0,0 +1,14 @@
+export declare class ValidationError {
+ 'message'?: string;
+ static discriminator: string | undefined;
+ static attributeTypeMap: Array<{
+ name: string;
+ baseName: string;
+ type: string;
+ }>;
+ static getAttributeTypeMap(): {
+ name: string;
+ baseName: string;
+ type: string;
+ }[];
+}
diff --git a/dist/gen/model/accounting/validationError.js b/dist/gen/model/accounting/validationError.js
new file mode 100644
index 000000000..23cea110c
--- /dev/null
+++ b/dist/gen/model/accounting/validationError.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ValidationError {
+ static getAttributeTypeMap() {
+ return ValidationError.attributeTypeMap;
+ }
+}
+exports.ValidationError = ValidationError;
+ValidationError.discriminator = undefined;
+ValidationError.attributeTypeMap = [
+ {
+ "name": "message",
+ "baseName": "Message",
+ "type": "string"
+ }
+];
+//# sourceMappingURL=validationError.js.map
\ No newline at end of file
diff --git a/dist/gen/model/accounting/validationError.js.map b/dist/gen/model/accounting/validationError.js.map
new file mode 100644
index 000000000..01478bd25
--- /dev/null
+++ b/dist/gen/model/accounting/validationError.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"validationError.js","sourceRoot":"","sources":["../../../../src/gen/model/accounting/validationError.ts"],"names":[],"mappings":";;AAaA,MAAa,eAAe;IAexB,MAAM,CAAC,mBAAmB;QACtB,OAAO,eAAe,CAAC,gBAAgB,CAAC;IAC5C,CAAC;;AAjBL,0CAkBC;AAZU,6BAAa,GAAuB,SAAS,CAAC;AAE9C,gCAAgB,GAA0D;IAC7E;QACI,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;KACnB;CAAK,CAAC"}
\ No newline at end of file
diff --git a/dist/index.d.ts b/dist/index.d.ts
new file mode 100644
index 000000000..dfb2c97c1
--- /dev/null
+++ b/dist/index.d.ts
@@ -0,0 +1,3 @@
+export * from './gen/api/apis';
+export * from './gen/model/accounting/models';
+export * from './XeroClient';
diff --git a/dist/index.js b/dist/index.js
new file mode 100644
index 000000000..2b0128c63
--- /dev/null
+++ b/dist/index.js
@@ -0,0 +1,9 @@
+"use strict";
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(require("./gen/api/apis"));
+__export(require("./gen/model/accounting/models"));
+__export(require("./XeroClient"));
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/dist/index.js.map b/dist/index.js.map
new file mode 100644
index 000000000..ce18ba5a8
--- /dev/null
+++ b/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAEA,oCAA+B;AAC/B,mDAA8C;AAE9C,kCAA6B"}
\ No newline at end of file
diff --git a/dist/untyped.d.ts b/dist/untyped.d.ts
new file mode 100644
index 000000000..1eb720141
--- /dev/null
+++ b/dist/untyped.d.ts
@@ -0,0 +1,406 @@
+///
+declare module 'openid-client' {
+ import * as http from 'http';
+ import * as https from 'https';
+ import * as http2 from 'http2';
+ import * as tls from 'tls';
+ namespace JWKS {
+ class KeyStore {
+ }
+ }
+ type JSONWebKeySet = any;
+ type RetryFunction = (retry: number, error: Error) => number;
+ interface HttpRequestOptions extends tls.SecureContextOptions {
+ url?: string;
+ headers?: {
+ [key: string]: unknown;
+ };
+ query?: {
+ [key: string]: unknown;
+ };
+ body?: {
+ [key: string]: unknown;
+ };
+ form?: boolean;
+ json?: boolean;
+ timeout?: number | {
+ lookup?: number;
+ connect?: number;
+ secureConnect?: number;
+ socket?: number;
+ response?: number;
+ send?: number;
+ request?: number;
+ };
+ retry?: number | {
+ retries?: number | RetryFunction;
+ methods?: Array<'GET' | 'POST' | 'PUT' | 'HEAD' | 'DELETE' | 'OPTIONS' | 'TRACE'>;
+ statusCodes?: Array<408 | 413 | 429 | 500 | 502 | 503 | 504>;
+ maxRetryAfter?: number;
+ errorCodes?: string[];
+ };
+ followRedirect?: boolean;
+ throwHttpErrors?: boolean;
+ agent?: http.Agent | https.Agent | boolean | {
+ http: http.Agent;
+ https: https.Agent;
+ };
+ [key: string]: unknown;
+ }
+ type CustomHttpOptionsProvider = (options: HttpRequestOptions) => HttpRequestOptions;
+ type TokenTypeHint = 'access_token' | 'refresh_token' | string;
+ const custom: {
+ setHttpOptionsDefaults(params: HttpRequestOptions): void;
+ readonly http_options: unique symbol;
+ readonly clock_tolerance: unique symbol;
+ };
+ type ResponseType = 'code' | 'id_token' | 'code id_token' | 'code token' | 'code id_token token' | 'none';
+ type ClientAuthMethod = 'client_secret_basic' | 'client_secret_post' | 'client_secret_jwt' | 'private_key_jwt' | 'tls_client_auth' | 'self_signed_tls_client_auth' | 'none';
+ interface ClientMetadata {
+ client_id: string;
+ id_token_signed_response_alg?: string;
+ token_endpoint_auth_method?: ClientAuthMethod;
+ client_secret?: string;
+ redirect_uris?: string[];
+ response_types?: ResponseType[];
+ post_logout_redirect_uris?: string[];
+ default_max_age?: number;
+ require_auth_time?: boolean;
+ tls_client_certificate_bound_access_tokens?: boolean;
+ request_object_signing_alg?: string;
+ id_token_encrypted_response_alg?: string;
+ id_token_encrypted_response_enc?: string;
+ introspection_endpoint_auth_method?: ClientAuthMethod;
+ introspection_endpoint_auth_signing_alg?: string;
+ request_object_encryption_alg?: string;
+ request_object_encryption_enc?: string;
+ revocation_endpoint_auth_method?: ClientAuthMethod;
+ revocation_endpoint_auth_signing_alg?: string;
+ token_endpoint_auth_signing_alg?: string;
+ userinfo_encrypted_response_alg?: string;
+ userinfo_encrypted_response_enc?: string;
+ userinfo_signed_response_alg?: string;
+ [key: string]: unknown;
+ }
+ interface ClaimsParameterMember {
+ essential?: boolean;
+ value?: string;
+ values?: string[];
+ [key: string]: unknown;
+ }
+ interface AuthorizationParameters {
+ acr_values?: string;
+ audience?: string;
+ claims?: string | {
+ id_token?: {
+ [key: string]: null | ClaimsParameterMember;
+ };
+ userinfo?: {
+ [key: string]: null | ClaimsParameterMember;
+ };
+ };
+ claims_locales?: string;
+ client_id?: string;
+ code_challenge_method?: string;
+ code_challenge?: string;
+ display?: string;
+ id_token_hint?: string;
+ login_hint?: string;
+ max_age?: string;
+ nonce?: string;
+ prompt?: string;
+ redirect_uri?: string;
+ registration?: string;
+ request_uri?: string;
+ request?: string;
+ resource?: string | string[];
+ response_mode?: string;
+ response_type?: string;
+ scope?: string;
+ ui_locales?: string;
+ [key: string]: unknown;
+ }
+ interface EndSessionParameters {
+ id_token_hint?: TokenSet | string;
+ post_logout_redirect_uri?: string;
+ state?: string;
+ [key: string]: unknown;
+ }
+ interface CallbackParamsType {
+ access_token?: string;
+ code?: string;
+ error?: string;
+ error_description?: string;
+ error_uri?: string;
+ expires_in?: string;
+ id_token?: string;
+ state?: string;
+ token_type?: string;
+ session_state?: string;
+ [key: string]: unknown;
+ }
+ interface OAuthCallbackChecks {
+ response_type?: string;
+ state?: string;
+ code_verifier?: string;
+ }
+ interface OpenIDCallbackChecks extends OAuthCallbackChecks {
+ max_age?: number;
+ nonce?: string;
+ }
+ interface CallbackExtras {
+ exchangeBody?: object;
+ clientAssertionPayload?: object;
+ }
+ interface RefreshExtras {
+ exchangeBody?: object;
+ clientAssertionPayload?: object;
+ }
+ interface GrantBody {
+ grant_type: string;
+ [key: string]: unknown;
+ }
+ interface GrantExtras {
+ clientAssertionPayload?: object;
+ }
+ interface IntrospectExtras {
+ introspectBody?: object;
+ clientAssertionPayload?: object;
+ }
+ interface RevokeExtras {
+ revokeBody?: object;
+ clientAssertionPayload?: object;
+ }
+ interface RequestObjectPayload extends AuthorizationParameters {
+ client_id?: string;
+ iss?: string;
+ aud?: string;
+ iat?: number;
+ exp?: number;
+ jti?: string;
+ [key: string]: unknown;
+ }
+ interface RegisterOther {
+ jwks?: JSONWebKeySet;
+ initialAccessToken?: string;
+ }
+ interface DeviceAuthorizationParameters {
+ client_id?: string;
+ scope?: string;
+ [key: string]: unknown;
+ }
+ interface DeviceAuthorizationExtras {
+ exchangeBody?: object;
+ clientAssertionPayload?: object;
+ }
+ interface UserinfoResponse {
+ sub: string;
+ name?: string;
+ given_name?: string;
+ family_name?: string;
+ middle_name?: string;
+ nickname?: string;
+ preferred_username?: string;
+ profile?: string;
+ picture?: string;
+ website?: string;
+ email?: string;
+ email_verified?: boolean;
+ gender?: string;
+ birthdate?: string;
+ zoneinfo?: string;
+ locale?: string;
+ phone_number?: string;
+ updated_at?: number;
+ address?: {
+ formatted?: string;
+ street_address?: string;
+ locality?: string;
+ region?: string;
+ postal_code?: string;
+ country?: string;
+ [key: string]: unknown;
+ };
+ [key: string]: unknown;
+ }
+ interface IntrospectionResponse {
+ active: boolean;
+ client_id?: string;
+ exp?: number;
+ iat?: number;
+ sid?: string;
+ iss?: string;
+ jti?: string;
+ username?: string;
+ aud?: string | string[];
+ scope: string;
+ token_type?: string;
+ cnf?: {
+ 'x5t#S256'?: string;
+ [key: string]: unknown;
+ };
+ [key: string]: unknown;
+ }
+ class Client {
+ constructor(metadata: ClientMetadata, jwks?: JSONWebKeySet);
+ [custom.http_options]: CustomHttpOptionsProvider;
+ [custom.clock_tolerance]: number;
+ metadata: ClientMetadata;
+ authorizationUrl(parameters?: AuthorizationParameters): string;
+ endSessionUrl(parameters?: EndSessionParameters): string;
+ callbackParams(input: string | http.IncomingMessage | http2.Http2ServerRequest): CallbackParamsType;
+ callback(redirectUri: string | undefined, parameters: CallbackParamsType, checks?: OpenIDCallbackChecks, extras?: CallbackExtras): Promise;
+ oauthCallback(redirectUri: string | undefined, parameters: CallbackParamsType, checks?: OAuthCallbackChecks, extras?: CallbackExtras): Promise;
+ refresh(refreshToken: TokenSet | string, extras?: RefreshExtras): Promise;
+ userinfo(accessToken: TokenSet | string): Promise;
+ grant(body: GrantBody, extras?: GrantExtras): Promise;
+ introspect(token: string, tokenTypeHint?: TokenTypeHint, extras?: IntrospectExtras): Promise;
+ revoke(token: string, tokenTypeHint?: TokenTypeHint, extras?: RevokeExtras): Promise;
+ requestObject(payload: RequestObjectPayload): Promise;
+ deviceAuthorization(parameters?: DeviceAuthorizationParameters, extras?: DeviceAuthorizationExtras): Promise>;
+ static register(metadata: object, other?: RegisterOther): Promise;
+ static fromUri(registrationClientUri: string, registrationAccessToken: string, jwks?: JSONWebKeySet): Promise;
+ static [custom.http_options]: CustomHttpOptionsProvider;
+ [key: string]: unknown;
+ }
+ class DeviceFlowHandle {
+ poll(): Promise;
+ expired(): boolean;
+ expires_at: number;
+ client: TClient;
+ user_code: string;
+ device_code: string;
+ verification_uri: string;
+ verification_uri_complete: string;
+ expires_in: number;
+ }
+ interface IssuerMetadata {
+ issuer: string;
+ authorization_endpoint?: string;
+ token_endpoint?: string;
+ jwks_uri?: string;
+ userinfo_endpoint?: string;
+ revocation_endpoint?: string;
+ end_session_endpoint?: string;
+ registration_endpoint?: string;
+ token_endpoint_auth_methods_supported?: string[];
+ token_endpoint_auth_signing_alg_values_supported?: string[];
+ introspection_endpoint_auth_methods_supported?: string[];
+ introspection_endpoint_auth_signing_alg_values_supported?: string[];
+ revocation_endpoint_auth_methods_supported?: string[];
+ revocation_endpoint_auth_signing_alg_values_supported?: string[];
+ request_object_signing_alg_values_supported?: string[];
+ mtls_endpoint_aliases?: MtlsEndpointAliases;
+ [key: string]: unknown;
+ }
+ interface MtlsEndpointAliases {
+ token_endpoint?: string;
+ userinfo_endpoint?: string;
+ revocation_endpoint?: string;
+ introspection_endpoint?: string;
+ device_authorization_endpoint?: string;
+ }
+ interface TypeOfGenericClient {
+ new (metadata: ClientMetadata, jwks?: JSONWebKeySet): TClient;
+ [custom.http_options]: CustomHttpOptionsProvider;
+ [custom.clock_tolerance]: number;
+ }
+ class Issuer {
+ constructor(metadata: IssuerMetadata);
+ Client: TypeOfGenericClient;
+ metadata: IssuerMetadata;
+ [custom.http_options]: CustomHttpOptionsProvider;
+ keystore(forceReload?: boolean): Promise;
+ static discover(issuer: string): Promise>;
+ static webfinger(input: string): Promise>;
+ static [custom.http_options]: CustomHttpOptionsProvider;
+ [key: string]: unknown;
+ }
+ interface TokenSetParameters {
+ access_token?: string;
+ token_type?: string;
+ id_token?: string;
+ refresh_token?: string;
+ scope?: string;
+ expires_at?: number;
+ session_state?: string;
+ [key: string]: unknown;
+ }
+ interface IdTokenClaims extends UserinfoResponse {
+ acr?: string;
+ amr?: string[];
+ at_hash?: string;
+ aud: string | string[];
+ auth_time?: number;
+ azp?: string;
+ c_hash?: string;
+ exp: number;
+ iat: number;
+ iss: string;
+ nonce?: string;
+ s_hash?: string;
+ sub: string;
+ [key: string]: unknown;
+ }
+ class TokenSet implements TokenSetParameters {
+ access_token?: string;
+ token_type?: string;
+ id_token?: string;
+ refresh_token?: string;
+ expires_in?: number;
+ expires_at?: number;
+ session_state?: string;
+ scope?: string;
+ constructor(input?: TokenSetParameters);
+ expired(): boolean;
+ claims(): IdTokenClaims;
+ [key: string]: unknown;
+ }
+ type StrategyVerifyCallbackUserInfo = (tokenset: TokenSet, userinfo: UserinfoResponse, done: (err: any, user?: TUser) => void) => void;
+ type StrategyVerifyCallback = (tokenset: TokenSet, done: (err: any, user?: TUser) => void) => void;
+ type StrategyVerifyCallbackReqUserInfo